硬件设计及建模—第12.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《硬件设计及建模—第12.pptx》由会员分享,可在线阅读,更多相关《硬件设计及建模—第12.pptx(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SYSTEM VERILOG HARDWARE DESIGN AND MODLEING Wang JinxiangMicroelectronics Center of HIT第1页/共40页参考书:1.Sauart Sutherland,Simon Davidmann.SystemVerilog 硬件设计及建模.科学出版社,2007年2.IEEE Std 1800-2005,SystemVerilog Language Reference Manual LRM第2页/共40页主要内容:1.简介2.声明的位置3.文本值和数据类型4.用户自定义和枚举数据类型5.数组、结构体和联合体6.过程块、任务
2、和函数7.过程语句8.层次化设计9.接口10.设计实例:状态机、ATM开关11.行为级和交易级建模第3页/共40页 为什么要学习SystemVerilog?SystemVerilog起源 SystemVerilog针对硬件设计关键增强第1章 SystemVerilog 简介第4页/共40页1.1 为什么要学?Verilog,VHDL,SystemC SystemVerilog优点 EDA公司的支持!第5页/共40页1.2 SystemVerilog起源 IEEE 1364-2005 Verilog标准的扩展 整合了SUPERLOG、VERA、C、C+及 VHDL特性,同时包括了OVA和PSL断
3、言 SystemVerilog是设计与验证的统一的语言 SystemVerilog与Verilog向下兼容 SystemVerilog是由Accellera标准机构制定第6页/共40页1.2.1 SystemVerilog标准历程2002年6月:SystemVerilog 3.0(综合)2003年5月:SystemVerilog 3.1(验证)2004年5月:SystemVerilog 3.1a2004年6月:Accellera捐赠给IEEE2005年11月:IEEE 18002005 IEEE13642005(Verilog)第7页/共40页1.2.2 SystemVerilog获得的捐赠
4、SUPERLOG扩展可综合子集CoDesign Automation Open VERA验证语言Synopsys PSL断言IBM Open VERA断言Synopsys DirectC和适用的应用程序设计接口Synopsys 单独编辑和$readmem扩展Mentor Graphics 标签联合体和高层次语言特征BlueSpec第8页/共40页1.3 SystemVerilog关键增强 设计内部的封装通信和协议检查的接口 类似C语言中的数据类型,如int 用户自定义类型(typedef)枚举类型、结构体和联合体 类型转换 package 外部编译单元区域+、-、+=等赋值操作 显式过程块 p
5、riority和unique修饰符 通过引用传送到任务、函数和模块第9页/共40页 package定义及从package中导入定义$unit编译声明空间未命名块中的声明增强的时间单位定义第2章 SystemVerilog 声明的位置 logic、enum、typedef、struct第10页/共40页2.1 package在Verilog中,变量、线网、任务和函数的声明必须在module和endmodule关键字之间,如果一个任务在多个模块中被引用,如何处理?Verilog采用include编译指令和其它编码技巧来解决问题,但同时引入了其它的问题,如设计维护等。SystemVerilog借鉴了
6、VHDL中package的概念,很好地解决了这个问题!第11页/共40页2.1.1 package内容 package中的内容在package和endpackage之间定义,可以包含的可综合结构有:1.parameter和localparam常量定义2.const变量定义3.typedef用户自定义类型4.全自动task和function定义5.import语句6.操作符重载定义第12页/共40页2.1.1 package内容 package definitions;parameter VERSION=“1.1”;typedef enum ADD,SUB,MUL opcodes_t;typed
7、ef 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第13页/共40页2.1.2 package内容的引用 四种引用方式:1.用范围解释操作符直接引用2.将package中特定子项导入到模块或接口中3.用通配符导入package中的子项到模块或接口中4.将package中子项导入到$unit中第14页/共40页2.1.2 package内容的引用方法1:module A
8、LU(input definitions:instruction_t IW,input logic clock,output logic 31:0 result);always_ff(posedge clock)begin 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 end endmodule第15页/共40页2.1.2 package内容的引用方法
9、2: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_ff(posedge clock)begin case(IW.opcode)ADD:result=IW.a+IW.b;SUB:result=IW.a IW.b;MUL:result=multiplier(
10、IW.a,IW.b);endcase end /import definitions:opcodes_t;?endmodule第16页/共40页2.1.2 package内容的引用方法3:module ALU(input definitions:instruction_t IW,input logic clock,output logic 31:0 result);import definitions:*;always_comb begin case(IW.opcode)ADD:result=IW.a+IW.b;SUB:result=IW.a IW.b;MUL:result=multiplie
11、r(IW.a,IW.b);endcase end endmodule通配符导入并不自动导入整个package,只是相当于添加了一条搜索路径!第17页/共40页2.1.3 package综合指导package中的的任务和函数必须说明为自动的才能被综合,并且不能包括静态变量。自动任务或函数的存储区在每次调用时才会分配,引用自动package中的自动任务或函数的每个模块看到的是不被其它模块共享的唯一副本,保证了综合前后行为相同。package中的变量声明是不可综合的!第18页/共40页2.2$unit编译单元声明 内容:1.时间单位和精度声明2.变量、常量声明声明4.用户定义数据类型,使用typed
12、ef、enum和class5.任务和函数编译单元是同时编译的所有源文件。编译单元为软件工具提供了一种对整个设计的各个子块单独编译的方法。SystemVerilog可以在package,模块、接口和程序块的外部进行声明,这些外部声明在“编译单元域”中,对所有同时编译的模块都是可见的。(与后面的例子似乎有些矛盾!)第19页/共40页2.2$unit编译单元声明 parameter VERSION=“1.2a”;reg resetN=1;typedef struct packed reg 31:0 address;reg 31:0 data;reg 31:0 opcode;instruction_w
13、ord_t;function automatic int log2(input int n);if(n 1)begin n=n/2;log2+;end return(log2);endfunction第20页/共40页2.2$unit编译单元声明module register(output instruction_word_t q;input instruction_word_t d;input wire clock);always(posedge clock,negedge resetN)if(!resetN)q=0;else q=d;endmodule第21页/共40页2.2$unit编译
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬件 设计 建模 12
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内