VerilogHDL第五讲Verilog实例.ppt
《VerilogHDL第五讲Verilog实例.ppt》由会员分享,可在线阅读,更多相关《VerilogHDL第五讲Verilog实例.ppt(38页珍藏版)》请在三一办公上搜索。
1、第五讲 门电路的描述和设计实例,5.1基本门电路的描述,一个逻辑电路是由许多逻辑门和开关所组成,因此用逻辑门的模型来描述逻辑电路结构是最直观的。VerilogHDL提供了一些描述门类型的关键字,可以用于门级结构建模。VerilogHDL内含的基本元件模型共有26种,其中14种为基本门级元件,12种为开关级元件,,门电路列表,门与开关的说明语法可以用标准的声明语句格式和一个简单的实例引用加以说明基本格式如下:,门的类型是门声明语句所必须的,它可以是VerilogHDL语法规定的26门类型中的任意一种。驱动能力和延时是可选的,可根据不同的情况选不同的值或不选。门实例1是在本模块中引用的第一个这种类
2、型的门的名称及端口定义,而门实例n是引用的第n个这种类型的门的名称及端口定义。例:nand#10nd1(a,data,clock,clear);这个例子说明在模块中使用了一个名为nd1的与非门,输入为clock,data,clear 输出为a,输出与输入得延时为10个单位时间,基本门的逻辑真值表,Nand和nor真值表,Xor和xnor真值表,门级延时的说明,门级延时反映的是信号的变化从门级元件的任意输入端口流动到任一输出端口所经历的传输延迟主要可以分为:上升延时 下降延时 截至延时 到不定态的延时,门级延时量的基本表示方式,当门级延时量只包含一个延时值时,也就是说当门级延时说明部分是#d形式
3、时,延时值d将同时代表元件实例的上升延时值,下降延时值,截至延时值,到不定态的延时值,当门级延时量包含两个延时值是,也就是当门级延时说明部分是#(d1,d2)形式时,元件实例的上升延时值,下降延时值将指定,同理,当有3个延时值,前三个将指定,5.2组合逻辑电路设计实例(1)加法器,module adder_8(cout,sum,a,b,cin);output cout;output 7:0 sum;input cin;input7:0 a,b;assign cout,sum=a+b+cin;endmodule,module compare(equal,a,b);parameter size=1
4、;output equal;input size-1:0 a,b;assign equal=(a=b)?1:0;endmodule,(2)比较器,(3)3-8译码器,module decoder(out,in);output 7:0 out;input 2:0 in;assign out=1b1in;/*把最低位的1左移 in(根据从in口输入的值)位,并赋予out*/endmodule,(4)BCD/七段译码器,module bin7seg(data_in,EN,data_out);input 3:0 data_in;input EN;output 6:0 data_out;reg 6:0
5、data_out;always(data_in or EN)begindata_out=7b1111111;if(EN=1)case(data_in)4b0000:data_out=7b1000000;/04b0001:data_out=7b1111001;/14b0010:data_out=7b0100100;/24b0011:data_out=7b0110000;/34b0100:data_out=7b0011001;/44b0101:data_out=7b0010010;/5,(续)BCD/七段译码器,4b0110:data_out=7b0000011;/64b0111:data_out
6、=7b1111000;/74b1000:data_out=7b0000000;/84b1001:data_out=7b0011000;/94b1010:data_out=7b0001000;/A4b1011:data_out=7b0000011;/b4b1100:data_out=7b0100111;/c4b1101:data_out=7b0100001;/d4b1110:data_out=7b0000110;/E4b1111:data_out=7b0001110;/Fdefault:data_out=7b1111111;endcaseendendmodule,(5)多路器,module mu
7、x2(out,a,b,sel);output out;input a,b,sel;reg out;/用电平触发的always块来设计多路器的组合逻辑always(a or b or sel)begin/*检查输入信号sel的值,如为1,输出out为a,如为0,输出out为b.*/case(sel)1b1:out=a;1b0:out=b;default:out=bx;endcaseendendmodule,(6)用门级结构描述D触发器,moduleflop(data,clock,clear,q,qb);inputdata,clock,clear;outputq,qb;nand#10nd1(a,d
8、ata,clock,clear),nd2(b,ndata,clock),nd4(d,c,b,clear),nd5(e,c,nclock),nd6(f,d,nclock),nd8(qb,q,f,clear);nand#9nd3(c,a,d),nd7(q,e,qb);not#10iv1(ndata,data),iv2(nclock,clock);endmodule,设计示例二,include“flop.v”modulehardreg(d,clk,clrb,q);inputclk,clrb;input3:0 d;output3:0q;flopf1(d0,clk,clrb,q0,),f2(d1,clk
9、,clrb,q1,),f3(d2,clk,clrb,q2,),f4(d3,clk,clrb,q3,);endmodule,5.3时序电路设计实例(1)触发器,module dff(q,data,clk);output q;input data,clk;reg q;always(posedge clk)beginq=data;endendmodule,(2)带置位和复位端的电平敏感型锁存器,module latch2(q,data,clk,set,reset);output q;input data,clk,set,reset;assign q=reset?0:(set?1:(clk?data:
10、q);endmodule,(3)移位寄存器,module shifter(din,clk,clr,dout);input din,clk,clr;output 7:0 dout;reg 7:0 dout;always(posedge clk)begin if(clr)/清零 dout=8b0;else begin dout=dout1;/左移一位 dout0=din;/把输入信号放入寄存器的最低位 end endendmodule,(4)计数器,module counter1(out,cout,data,load,cin,clk);output 7:0 out;output cout;inpu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VerilogHDL 第五 Verilog 实例
链接地址:https://www.31ppt.com/p-5576398.html