HDL使用简介.课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《HDL使用简介.课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- HDL 使用 简介 课件
- 资源描述:
-
1、Shandy IME of Tsinghua Univ. 10/11/2004数字大规模集成电路讲义数字大规模集成电路讲义Shandy IME of Tsinghua Univ. 2004提纲提纲 什么是Verilog HDL? Verilog HDL vs. VHDL Verilog HDL语法 设计描述层次 设计的测试与验证 可综合的设计 有限状态机(FSM) 一个除法器的设计实例 常用仿真器和综合软件 网络资源Shandy IME of Tsinghua Univ. 2004提纲提纲什么是Verilog HDL? Verilog HDL vs. VHDL Verilog HDL语法 设计
2、描述层次 设计的测试与验证 可综合的设计 有限状态机(FSM) 一个除法器的设计实例 常用仿真器和综合软件 网络资源Shandy IME of Tsinghua Univ. 2004什么是什么是Verilog HDL?Verilog HDL是一种硬件描述语言,用于从算法级、结构级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于开关级电路(例如pmos/nmos)、简单的门(例如库单元描述)和完整的复杂电子数字系统之间(例如CPU)Shandy IME of Tsinghua Univ. 2004什么是什么是Verilog HDL? (cont.)Verilo
3、g HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。提供了编程语言接口(PLI),通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。支持多个设计层次的混合层次建模Shandy IME of Tsinghua Univ. 2004更重要的是更重要的是.Verilog HDL语言与C语言很相似,从C语言中继承了多种操作符和结构,其核心子集非常易于学习和使用而这对大多数建模应用来说这已经足够。Shandy IME of Tsinghua Univ. 2004Verilog HDL的历史的历史
4、最初是于1 9 8 3年由Gateway Design Automation 公司(后被Cadence Design Systems公司收购)为其模拟器产品开发的硬件建模语言。那时它只是一种专用语言,由于他们的模拟、仿真器产品的广泛使用,Verilog HDL 作为一种便于使用且实用的语言逐渐为众多设计者所接受。 Verilog HDL语言于1 9 9 0年被推向公众领域。Open Verilog International(O V I)是促进Ve r i l o g发展的国际性组织,1 9 9 2年, O V I决定致力于推广Verilog OVI标准成为I E E E标准。这一努力最后获得
5、成功, Verilog 语言于1 9 9 5年成为I E E E标准,称为IEEE Std1 3 6 41 9 9 5。完整的标准在Ve r i l o g硬件描述语言参考手册中有详细描述。Shandy IME of Tsinghua Univ. 2004提纲提纲 什么是Verilog HDL? Verilog HDL vs. VHDL Verilog HDL语法 设计描述层次 设计的测试与验证 可综合的设计 有限状态机(FSM) 一个除法器的设计实例 常用仿真器和综合软件 网络资源Shandy IME of Tsinghua Univ. 2004Verilog HDL vs. VHDL Ve
6、rilog HDL 和VHDL 都是用于逻辑设计的硬件描述语言并且都已成为IEEE 标准。VHDL 是在1987 年成为IEEE 标准,Verilog HDL 则在1995 年才正式成为IEEE 标准。 Verilog HDL 和VHDL 共同的特点: 能形式化地抽象表示电路的行为和结构 支持逻辑设计中层次与范围的描述,可借用高级语言的精巧结构来简化电路行为的描述 具有电路仿真与验证机制以保证设计的正确性 支持电路描述由高层到低层的综合转换 硬件描述与实现工艺无关,有关工艺参数可通过语言提供的属性包括进去便于文档管理易于理解和设计重用。Shandy IME of Tsinghua Univ.
7、2004Verilog HDL vs. VHDL (cont.) Verilog HDL 和VHDL 又各有其自己的特点: Verilog HDL 拥有更广泛的设计群体,成熟的资源也远比VHDL 丰富 Verilog HDL 是一种非常容易掌握的硬件描述语言(类C语言),而掌握VHDL 设计技术就相对比较困难(类Ada语言)。 一般认为Verilog HDL 在系统级抽象方面比VHDL 略差一些而在门级开关电路描述方面比VHDL 强得多 大学、研究机构更多使用VHDL,而工业界更多使用Verilog HDLShandy IME of Tsinghua Univ. 2004提纲提纲 什么是Ver
8、ilog HDL? Verilog HDL vs. VHDL Verilog HDL语法 设计描述层次 设计的测试与验证 可综合的设计 有限状态机(FSM) 一个除法器的设计实例 常用仿真器和综合软件 网络资源Shandy IME of Tsinghua Univ. 2004/ sampel_reg.v/ sampel_reg.v 数据采样模块数据采样模块module sample_reg(clk, rst, din, doutmodule sample_reg(clk, rst, din, dout); );input clk, rstinput clk, rst; ;input 3:0 d
9、in;input 3:0 din;output 3:0 doutoutput 3:0 dout; ;regreg 3:0 data; 3:0 data;assign doutassign dout = data; = data;alwaysalways (posedge clk or negedge rst) (posedge clk or negedge rst)beginbeginif(!rstif(!rst) begin) begin data = 4b0; data = 4b0;end else beginend else begin data = din; data , =, =相等
10、操作符:=, !=, =, !=逻辑操作符:&, |, !按位操作符:, &, |, , , 归约操作符:&, &, |, |, , 移位操作符:条件操作符:exp ? exp1 : exp2;连接和复制操作符:exp1, exp2, repexpassign bus3:0 = bus0, bus1, bus2, bus3; /反转assign bus3:0 = 2bus0, 2bus3; /扩展Shandy IME of Tsinghua Univ. 2004Verilog HDL语法语法 过程结构过程结构initial语句:只执行一次,并在模拟开始时执行,即在0时刻开始执行。通常用于初始化
11、(例如赋给寄存器一个初始值)、波形产生和仿真控制always语句:也是在0时刻开始执行,但是在整个仿真期间被反复多次执行initial块和always块内部的语句顺序执行一个模块中可以包含任意多个initial或always语句。这些语句相互并行执行,即这些语句的执行顺序与其在模块中的顺序无关。一个initial语句或always语句的执行产生一个单独的控制流注意#的时延控制用法initialinitialbeginbeginreset = 0;reset = 0;a = 4b0101a = 4b0101b = 4b1010;b = 4b1010;#20#20 reset = 1; reset
12、 = 1;#50#50 $display(“sum $display(“sum is %d”, sum); is %d”, sum);$finish;$finish;endendalways (always (posedgeposedge clk clk or or negedgenegedge reset) reset)beginbeginif(!resetif(!reset) begin) begindata = 0;data = 0;end else beginend else begindata = din;data = din;endendendendShandy IME of Ts
13、inghua Univ. 2004Verilog HDL语法语法 表达式表达式 线网类型使用assign语句赋值,称为连续赋值 寄存器使用“=”或”=“赋值,并只能用于initial、always、task和function块内!注意两者区别:a = b; /执行到此语句后a的值马上更新为b,称为阻塞性赋值a 10) beginresult = 123;end else if(a0) beginroll = roll 1;cnt = cnt - 1;endfor(cnt=0; cnt 1;endShandy IME of Tsinghua Univ. 2004Verilog HDL语法语法 函
14、数与任务函数与任务Verilog HDL还定义了函数(function)和任务(task),可以用于完成复杂的行为描述函数只能有一个输出,而任务可以具有多个输出;两者都可以有多个输入函数和任务必须定义在module内Shandy IME of Tsinghua Univ. 2004Verilog HDL语法语法 顺序执行与并行执行顺序执行与并行执行initial, always, function, task块内部的语句是顺序执行的,所有begin . end之间的语句也是顺序执行的同一个模块内部的所有initial, always块都是并行执行的fork . join块之间的语句是并行执行的
15、(略)Shandy IME of Tsinghua Univ. 2004Verilog HDL语法语法 编译指令编译指令以(反引号)开始的某些标识符是编译器指令。在Verilog 语言编译时,特定的编译器指令在整个编译过程中有效(编译过程可跨越多个文件),直到遇到其它的不同编译程序指令。完整的标准编译器指令如下:define, undef define, undef 宏定义,类似于宏定义,类似于#define #undef#define #undef,例如:,例如: define MAX_BUS_SIZE define MAX_BUS_SIZE3232. . . . .reg MAX_BUS_
16、SIZE-1:0 AddReg; reg MAX_BUS_SIZE-1:0 AddReg; 注意引用时要加注意引用时要加 ifdef, else, endififdef, else, endif 类似于类似于#ifdef #else #endif#ifdef #else #endifinclude include 类似于类似于#include#include,用于包含另外一个,用于包含另外一个verilogverilog文件文件timescale timescale resetalldefault_nettypeunconnected_drive, nounconnected_drivecel
17、ldefine, endcelldefineShandy IME of Tsinghua Univ. 2004Verilog HDL语法语法 编译指令编译指令(cont.) timescale timescale 定义定义时延时延单位和精度单位和精度在Verilog HDL 模型中,所有时延都用单位时间表述。使用该指令将时间单位与实际时间相关联。指令格式为: timescale timescale time_unit / time_precision time_unit 和 time_precision由值1、10、和100以及单位s、ms、us、ns、ps和fs组成。例如:timescale
18、 timescale 1ns / 100ps表示时延单位为1ns, 时延精度为100ps。timescale 编译器指令在模块说明外部出现, 并且影响后面所有的时延值。Shandy IME of Tsinghua Univ. 2004Verilog HDL语法语法 系统函数系统函数以$字符开始的标识符表示系统任务或系统函数。任务提供了一种封装行为的机制,可在设计的不同部分被调用。任务可以返回0个或多个值。函数除只能返回一个值以外与任务相同。此外,函数在0时刻执行,即不允许延迟,而任务可以带有延迟。$display $monitor $strobe $time $stime $realtime
19、$printtimescale $timeformat $stop $finish $fopen $fclose $fdisplay $fwrite $fmonitor $fstrobe $readmemb $readmemh$rtoi $itor $realtobits $bittoreal$random例如:$display display (“hello world!”); /打印输出hello world$time /time /该系统任务返回当前的模拟时间。Shandy IME of Tsinghua Univ. 2004提纲提纲 什么是Verilog HDL? Verilog HD
20、L vs. VHDL Verilog HDL语法设计描述层次 设计的测试与验证 可综合的设计 有限状态机(FSM) 一个除法器的设计实例 常用仿真器和综合软件 网络资源Shandy IME of Tsinghua Univ. 2004设计描述层次设计描述层次算法(行为)级描述结构级描述寄存器传输级(RTL)描述开关级(门级)描述混合层次描述Shandy IME of Tsinghua Univ. 2004设计描述层次设计描述层次 - 算法(行为)级描述算法(行为)级描述 主要用于快速验证算法的正确性 不一定可以综合成实际电路结构实例:n位整数除法器, D = A/B, R = A%Bmodul
21、e div (A, B, D, R);parameter n = 32;input n-1:0 A, B;output n-1:0 D, R;reg n-1:0 D, R;always (A or B)begin D = 0; for(R=A; RB; R = R - B) begin D = D + 1; endendendmoduleShandy IME of Tsinghua Univ. 2004设计描述层次设计描述层次 结构级描述结构级描述 更接近电路的实际结构 电路的层次化描述 类似于电路框图module HA(A , B , S , C)module HA(A , B , S ,
22、C);input A, B;input A, B;output S, C;output S, C;parameter AND_DELAY = 1, XOR_DELAY = 2;parameter AND_DELAY = 1, XOR_DELAY = 2;assign #XOR_DELAYS = A Bassign #XOR_DELAYS = A B;assign #AND_DELAYC = A & Bassign #AND_DELAYC = A & B;endmoduleendmodulemoduleFA(P, Q, Cin, Sum, CoutmoduleFA(P, Q, Cin, Sum,
23、 Cout ) ; ) ;input P, Q, Cininput P, Q, Cin; ;output Sum, Coutoutput Sum, Cout; ;parameter OR_DELAY = 1;parameter OR_DELAY = 1;wire S1, C1, C2;wire S1, C1, C2;/两个模块实例语句两个模块实例语句HA h1 (P, Q, S1, C1); /HA h1 (P, Q, S1, C1); /通过位置关联。通过位置关联。HA h2 ( .A(C i n), .S(S u m), .B(S 1), .C(C 2); /HA h2 ( .A(C i
24、n), .S(S u m), .B(S 1), .C(C 2); /通过端口通过端口与信号的名字关联。与信号的名字关联。/门实例语句:门实例语句:or #OR_DELAYO1 (Coutor #OR_DELAYO1 (Cout, C1, C2) ;, C1, C2) ;endmoduleendmodule使用两个半加器模使用两个半加器模块构造的全加器块构造的全加器Shandy IME of Tsinghua Univ. 2004设计描述层次设计描述层次 - RTL级描述级描述 贴近实际电路结构的描述 描述的细节到寄存器内容传输级别 可以精确描述电路的工作原理、执行顺序 细化到寄存器级别的结构描
25、述也就是RTL级描述,并无绝对划分标准module sample_reg(clk, rst, din, dout);input clk, rst;input 3:0 din;output 3:0 dout;reg 3:0 data;assign dout = data;always (posedge clk or negedge rst)beginif(!rst) begin data = 4b0;end else begin data = din;endendendmoduleShandy IME of Tsinghua Univ. 2004设计描述层次设计描述层次 开关级(门级)描述开关级
展开阅读全文