电子设计自动化基础.ppt_第1页
电子设计自动化基础.ppt_第2页
电子设计自动化基础.ppt_第3页
电子设计自动化基础.ppt_第4页
电子设计自动化基础.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、哈尔滨工业大学微电子中心,1,电子设计自动化基础3,哈尔滨工业大学微电子中心 李晓明,哈尔滨工业大学微电子中心,2,内容,Verilog结构描述 模块调用与端口名对应方式 分级结构(层次式结构)与分级名 Verilog结构描述:门级描述 基本门级元件 基本门与连线延时表示 连线驱动强度,哈尔滨工业大学微电子中心,3,Verilog结构描述,电路描述 行为描述:侧重对模块行为功能的抽象描述 结构描述:侧重对模块内部结构实现的具体描述 门级描述:对由基本逻辑门(and、or)互连而成的具有一定功能的电路模块的描述 结构描述:将上述逻辑门用一个个功能模块替换,就拓展到一般意义的结构描述 结构描述侧重

2、对模块内部结构实现的具体描述,哈尔滨工业大学微电子中心,4,半加器为例,module half_adder (sum, cout, a, b); output sum, cout; input a, b; xor U0(sum, a, b); and U1(cout, a, b); endmoudle,哈尔滨工业大学微电子中心,5,Verilog结构描述,模块调用 模块调用是Verilog结构描述的基本构成方式 通过调用其他模块来搭建新的模块 如果当前模块不再被其他模块调用,此模块即称作顶层模块 模块调用类型 基本门调用 module模块调用,哈尔滨工业大学微电子中心,6,Verilog结构描

3、述,模块调用的基本形式: 模块名 调用名(端口名表项); 调用名是唯一的 模块调的端口名对应方式 位置对应 端口名对应:.定义时的端口名(调用时与之相连的信号名) 允许出现不连接的端口,哈尔滨工业大学微电子中心,7,Verilog结构描述,模块调用(元件例化),哈尔滨工业大学微电子中心,8,EX: module comp(out_port1, out_port2, in_port1, in_port2); output out_port1, out_port2; input in_port1, in_port2; endmodule /调用方式1:位置对应 module demo_top1;

4、comp gate1(Q, R, J, K); endmodule /调用方式2:端口名对应 module demo_top2; comp gate2(.in_port2(K), .out_port1(Q), .out_port2(R), .in_port1(J); endmodule,/调用方式3:不连接端口 module demo_top3; comp gate3(Q, , J,K); endmodule,哈尔滨工业大学微电子中心,9,Verilog结构描述,如果从逻辑电路图开始 给电路图每个输入输出引脚赋以端口名 给电路图每条内部连线取连线名 给电路图每个逻辑单元取单元名(调用名) 给本

5、电路模块取模块名 用module定义相应模块名的结构描述,并将图中所有输入输出端口名列入端口名列表中,再完成对各端口输入输出类型说明 依照图中连接关系,确定单元之间端口信号连接,哈尔滨工业大学微电子中心,10,Verilog结构描述,注意: 对于位宽大于1位的内部连线,需补充相应连线类型说明 对于Verilog内含的基本门级元件调用,可以省略调用名,仿真系统在模拟过程中会给其自动赋予“基本门名$序列号”的缺省名 对于Verilog内含的基本门级元件调用,允许在调用同时给出门的延时参数和驱动强度,哈尔滨工业大学微电子中心,11,Verilog结构描述,例:全加器 /行为描述vs 结构描述,(b)

6、门级,哈尔滨工业大学微电子中心,12,Verilog结构描述,(C)行为级 当a、b或cin逻辑状态发生变化,采用如下等式得到sum及cout: sum = abc cout = ab+bc+ca,哈尔滨工业大学微电子中心,13,Verilog结构描述,全加器行为描述实例: module fadder (sum, cout, a, b, cin); / - 端口声明 output sum, cout; input a, b, cin; / - 数据类型声明 reg sum, cout; / - 行为级描述 always (a or b or cin)/过程语句 begin /过程块 sum =

7、 abcin; /过程赋值语句 cout = (a /- 端口声明 output sum, cout; input a, b, cin; / - 门级互连 xor U0(sum, a, b, cin); and U1(net1, a, b); and U2(net2, a, cin); and U3(net3, b, cin); or U4(cout, net1, net2, net3); endmodule,哈尔滨工业大学微电子中心,15,Verilog结构描述,分级结构(层次式结构)与分级名(Hierarchical Name) 顶层模块次级模块 不单以模块为分级依据:module、tas

8、k、function、有名块,每一个都可作为分枝 分级名:任何模块中的调用元件、task、function以及连线,都可依据从根出发经各个中间分枝的一条路径确定它在此设计中独有的标识名。,哈尔滨工业大学微电子中心,16,module bottom(in); input in; always (posedge in) begin: keep reg hold; hold=in; end endmodule module middle(stim1,stim2); input stim1,stim2; bottom amod(stim1), bmod(stim2); endmodule module

9、 top; reg stim1,stim2; middle a(stim1,stim2);,initial begin:block1 #100 begin: block2 reg hold; end #100 begin stim1=0; end end endmodule,哈尔滨工业大学微电子中心,17,本例子中完整的分级名: 模块单元名:top top.a top.a.amod top.a.bmod 有名块名: top.block1 top.block1.block2 top.a.amod.keep top.a.bmod.keep 信号线名: top.stim1 top.stim2 top

10、.block1.block2.hold top.a.stim1 top.a.stim2 top.a.amod.in top.a.amod.keep.hold top.a.bmod.in top.a.bmod.keep.hold,哈尔滨工业大学微电子中心,18,系统结构描述 /top module module test; /模块例化 fadder U0 (sum,cout,a,b,cin); fadder_stim stim1(a,b,cin); endmodule,/应用激励 module fadder_stim(a,b,cin); output a,b,cin; reg a,b,cin;

11、initial begin a = 0;b = 0;cin = 0; #5 cin = 1; #5 cin = 0;b = 1; #5 cin = 1; #5 a = 1;b = 0;cin = 0; #5 cin = 1; #5 cin =0;b = 1; #5 cin = 1; #10 $finish;/结束仿真 end endmodule,哈尔滨工业大学微电子中心,19,Verilog结构描述:门级描述,基本元件(Basic Primitives):26种 门级元件(gate-level primitives):14种 开关级元件(switch-level primitives):12种

12、,哈尔滨工业大学微电子中心,20,Verilog结构描述:门级描述,基本逻辑门级元件(Primitive cell),哈尔滨工业大学微电子中心,21,Verilog结构描述:门级描述,一、and、nand、or、nor、xor、nxor 门名 (输出,输入1,输入2,); 特点:只有一个输出 二、buf、not 门名 (输出1,输出2,输入) 特点:只有一个输入,哈尔滨工业大学微电子中心,22,Verilog结构描述:门级描述,三、bufif1、bufif0、notif1、notif0 门名 (输出,输入,使能控制端); 特点:带有使能控制端三态输出 四、pullup、pulldown 门名

13、(输出); 特点:只有输出端,哈尔滨工业大学微电子中心,23,基本门元件调用的完整格式: 门名 (对1驱动强度,对0驱动强度)(延迟)调用名 (端口名表项);,and (out, a, b);,or (out, in1, in2, in3); / a primitive instance without / instance name buf U0 (out, in); / specify the instance name notif0 #5 n0(out, in, enable); / specify the delay 注意端口名列表次序为先 output 再 input。,哈尔滨工业大

14、学微电子中心,24,基本门元件的传播延迟表示法:,哈尔滨工业大学微电子中心,25,Verilog结构描述:门级描述,基本门与连线的延时表示 门级延时:输入端发生变化到输出发生变化的门传输延时 assign语句延时:左端发生变化到右端发生变化的延时 连线延时:信号在连线上的传输延时 延时基本表示法: #(d1,d2,d3) d1:上升延时 d2:下降延时 d3:关断延时针对三态输出,哈尔滨工业大学微电子中心,26,(上升, 下降, 关断) 延迟表示法,0, x, or Z to 1,1, x, or Z to 0,0 or 1 to Z,t_rise,t_fall,t_turnoff,哈尔滨工业

15、大学微电子中心,27,and #(3, 2) (out, in1, in2);/基本门延时 assign #(3, 2) out = in1 /连线定义,in1,in2,out,3,2,t,t,t,1,注意:如果只出现一个延时值,表示统一代表所有状态转移的延时; 如果出现2个值,则代表d1,d2,哈尔滨工业大学微电子中心,28,bufif1 #(3, 4, 7) (out, in, ctrl);,in,1,ctrl,out,t,t,t,Z,3,4,3,7,哈尔滨工业大学微电子中心,29,Verilog结构描述:门级描述,assign连续赋值语句的完整格式: assign (对1驱动强度,对0驱

16、动强度)(延迟)赋值; 连线类型说明的完整格式: 连线类型 (对1驱动强度,对0驱动强度)(延迟)连线名表项; trireg (电荷模式说明) (延迟)连线名表项; 基本门元件调用的完整格式: 门名 (对1驱动强度,对0驱动强度)(延迟)调用名 (端口名表项);,哈尔滨工业大学微电子中心,30,哈尔滨工业大学微电子中心,31,当两个驱动强度不同的连线相连时,会以强度等级较高的 连线输出为结果,例如:,当没有使用强度时,Verilog的缺省值是Strong Drive,即(strong0,strong1),哈尔滨工业大学微电子中心,32,Verilog系统函数,为了方便对仿真过程的控制与仿真结果

17、的分析,Verilog提供了系统函数,统一以“$”开头 输出控制:$display,$write,$monitor 模拟时标:$time,$realtime 进程控制:$finish,$stop 文件读写:$readmem 其它: $random,哈尔滨工业大学微电子中心,33,Verilog系统函数,$display与 $write $write和$display列出所指定信号的值,它们的功能都相同,唯一不同点在$display输出结束后会自动换行,而$write不会换行。 EX: $write (%b t %h t %d t %on, a, b, c, d); $display (%b t

18、 %h t %d t %o, a, b, c, d);,哈尔滨工业大学微电子中心,34,输出格式说明符以及转义字符,哈尔滨工业大学微电子中心,35,Verilog系统函数,$monitor:输出变量的任何变化,都会输出一次结果;而$write和$display每调用一次执行一次 EX: module monitor_test; reg in; wire out; not #1 U0(out, in); initial $monitor($time, out = %b in = %b, out, in); initial begin in = 0; # 10 in = 1; # 10 in = 0; end endmodule,哈尔滨工业大学微电子中心,36,Verilog系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论