当前位置: 首页 > news >正文

湖南岳阳网站开发网络公司贵州建设职业技术学院网站

湖南岳阳网站开发网络公司,贵州建设职业技术学院网站,优秀网站的链接,秦皇岛网站建设价格文章目录 包定义SystemVerilog 数据类型结构体 SystemVerilog 过程块可嵌套模块接口 System Verilog 的优点 提高了硬件建模能力、编码效率和抽象能力#xff1b;RTL 级、系统级行为描述#xff1b; 增强了验证能力和为大规模复杂设计编写有效、无竞争测试程序的断言功能RTL 级、系统级行为描述 增强了验证能力和为大规模复杂设计编写有效、无竞争测试程序的断言功能 相比 Verilog有助于编写可综合硬件模型的特点 设计内部的封装通信和协议检查的接口支持数据类型 int、用户自定义类型 typedef、枚举类型、类型转换结构体、联合体、可共享的定义包 package -- 赋值操作显式过程块、priority、unique 修饰符编程语句增强、通过引用传送到任务、函数和模块。 包定义 包 package ... endpackage独立的声明空间多个模块共享用户定义类型。包中可包含的可综合的结构 parameter 和 localparam 常量定义const 定义变量为常数typedef 用户定义类型automatic task、function 定义从其它包中 import 语句操作符重载定义。 包定义示例 package definitions;parameter Version1.1;typedef enum{ADD, SUB, MUL} opcodes_t;typedef struct{logic[31:0] a,b;opcodes_t opcode;} instruction_t;function automatic[31:0] multiplier(input[31:0] a,b);return a*b;endfunction endpackage包可独立放在一个文件中用 include 包名 引入。 如何引用包的内容 用范围解析操作符 :: 直接引用 module ALU (input definitions::instruction_t IW,input logic clock,output logic[31:0] result);always_ff(posedge clock)case(IW.opcode)definitions::ADD: result IW.a IW.b;definitions::SUB: result IW.a - IW.b;definitions::MUL: result definitions::multiplier(IW.a, IW.b);endcase endmodule将包中特定子项导入到模块或接口中 module ALU (input definitions::instruction_t IW,input logic clock,output logic[31:0] result);import definitions::ADD; import definitions::SUB; import definitions::MUL; import definitions::multiplier;always_comb begincase(IW.opcode)ADD: result IW.a IW.b;SUB: result IW.a - IW.b;MUL: result multiplier(IW.a, IW.b);endcase end endmodule用通配符 * 导入包中的子项到模块或接口中 import definitions::*; module tb_ALU; instruction_t test_word; logic[31:0] alu_out; logic clock 0;ALU dut(.IW(test_word), .result(alu_out), .clock(clock)); always #10 clock ~clock; initial begin(negedge clock)test_word.a 5;test_word.b 7;test_word.opcode ADD;(negedge clock)$display(alu_out%d(expected 12), alu_out);$finish; end endmodule将包中子项导入到 $unit 声明域中。 SystemVerilog 数据类型 增加 bit byte(8) int(32) shortint(16) longint(64) 变量类型logic 定义变量代替 reg四态 0 1 Z Xvoid 类型表示无存储var 关键字表示对象是一个变量比如 var logic[7:0] a静态变量 static自动变量 automatic用户自定义类型 typedef枚举数据类型 enum 以有限状态机为例说明枚举类型的使用 module FSM(input logic clock, resetN, output logic[3:0] control); enum logic[2:0] {WAITE3b001, LOAD3b010, READY3b100} State, Next;always(posedge clock, negedge resetN)if(!resetN) State WAITE;else State Next;always_comb begin$display(\n Current state is %s(%b), State.name, State);case(State)WAITE: Next LOAD;LOAD; Next READY;READY: Next WAITE;endcase$display(\n Next state will be %s(%b), Next.name, Next); end assign control State; endmodule结构体 结构体 struct、联合体 union 数据类型一种变量集表示。 结构体 struct 可以包括任何数据类型可以集合不同类型和大小的变量、常量、自定义等 struct{int a,b;opcode_t opcode;logic[23:0] address;bit error; } Instruction_Word /* 结构体名 */引用结构体结构体名.变量名如 Instruction_Word.address32h00ff00ff SystemVerilog 过程块 always_comb组合逻辑过程块不需要指明敏感表always_ff时序逻辑过程块always_latch锁存逻辑过程块unique case / if...else if...只有且必须有一个条件匹配否则报告运行错误priority case / if...else if...至少有一个条件匹配多个匹配则执行第一个匹配分支 module traffic_light(output logic green_light, yellow_light, red_light,input sensor, input[15:0] green_downcnt, yellow_downcnt, input clock, resetN); enum {RED, GREEN, YELLOW} State, Next;/* 时序电路 */ always_ff(posedge clock, negedge resetN)if(!resetN) State RED;else State Next;/* 组合电路 */ always_comb begin:set_next_stateNext State;unique case(State)RED: if(sensor) Next GREEN;GREEN: if(green_downcnt0) Next YELLOW;YELLOW: if(yellow_downcnt0) Next RED;endcase end:set_next_state/* 组合电路 */ always_comb begin:set_outputs{green_light, yellow_light, red_light} 3b000;unique case(State)RED: red_light 1b1;GREEN: green_light 1b1;YELLOW: yellow_light 1b1;endcase end:set_outputs endmodule可嵌套模块 只能在父模块中实例化 module ip_core(input logic clock);sub u1(.*);sub u2(.*);module sub1(...)...endmodule:sub1module sub2(...)...endmodule:sub2 endmodule:ip_core例用 SystemVerilog 实现以下结构图主模块名 chip地址位宽 32bits module chip(input_master_clock, master_reset); logic[31:0] address, new_address, next_address;ROM u1(.address(address), .data(new_address), .clk(master_clock));program_count u2(.jump_address(new_address), .clock(master_clock), .reset_n(master_reset), .next_address(next_address));address_reg(.next_addr(next_address), .current_addr(address), .clk(master_clock), .rstN(master_reset));module ROM(output logic[31:0] data, input logic[31:0] address, input logic clk); endmodule:ROMmodule program_count(...) endmodule:program_countmodule address_reg(...) endmodule:address_regendmodule:chip接口 接口 interface ... endinterface 是一种功能强大的端口类型可以简化复杂设计的建模和验证。可在 module 外单独定义。 支持多个信号组成一个端口只需声明 1 次。接口中可以包括端口、任务 task、函数 function、过程块、程序块也可参数化。 interface main_bus;logic[15:0] data;logic[15:0] address;logic[7:0] bus_request; endinterfacemodule top()main_bus bus() /* 接口实例化 */slave slave1(.bus(bus)); endmodule
http://www.zqtcl.cn/news/128588/

相关文章:

  • 佛山网站建设哪家评价高系统开发报价清单
  • 东莞道滘网站建设做h游戏视频网站
  • 江西营销网站建设公司网站建设 意义
  • 公司网站怎么自己做织梦品牌集团公司网站模板(精)
  • 西安市高陵区建设局网站产品网站做营销推广
  • 网站开发费是无形资产吗深圳网站建设简介
  • 网站开发架构mvc重庆巫山网站设计哪家专业
  • 广州高档网站建设电子商务网站建设的期中考试
  • 九江建设公司网站新网 网站空间
  • 网站开发时的闭包写法手机网站创建站点成功
  • 中山做网站联系电话可以做全景的网站
  • 南京网站开发推南京乐识网络站点推广的方法有哪些
  • 沧州企业网站深圳建筑招聘网
  • 汽车网站开发的需求分析怎样策划一个营销型网站
  • 网站建设公司彩铃网站模板是怎么制作
  • 代做毕设网站推荐一键安装微信
  • 网站建设评比标准人工智能的网站
  • 网站 提示建设中计算机网站建设和维护
  • 网站菜单分类怎么做wordpress黄页插件
  • 安防网站下载营销型网站建设 高校邦
  • 一个几个人做网站的几个故事电影网站开发设计的完成情况
  • 如何开个人网站网站建设技能考试试题三
  • 做网站都要学什么工程造价询价网站
  • 东莞市官网网站建设企业福田做商城网站建设哪家服务周到
  • 网站界面设计技巧宁波seo排名优化价格
  • 做外贸经常用的网站需要优化的网站有哪些
  • 俄语网站建设注意事项seo公司优化排名
  • jsp做的当当网站的文档专业电子科技网站建设
  • 有免费的微网站是什么推广普通话调查问卷
  • 滁州市南谯区住房和建设局网站网站服务器规划 用户数