第2章_Verilog的模块.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:15 大小:250KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第2章_Verilog的模块.pdf

第2章_Verilog的模块.pdf

预览

免费试读已结束,剩余 5 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第2章Verilog的模块2.1概述•VerilogHDL既是一种行为描述语言,也是一种结构描述语言。即:描述电路功能行为的模型或描述元器件或较大部件互连的模型均可以用VerilogHDL实现。•VerilogHDL能够描述电路的5种抽象级别:1)系统级:用高级结构实现外部性能的模型2)算法级:用高级结构实现算法运行的模型3)RTL级:描述数据在寄存器之间的流动和如何处理、控制这些数据流动的模型4)门级:描述逻辑门及其互相之间连接的模型5)开关级:描述器件中三极管和存储节点以及互相之间连接的模型•VerilogHDL特别适合算法级和RTL级的模型设计•提供了一套完整的组合逻辑基本元件、双向通路和电阻器件的原语•可建立MOS器件的电荷分享和衰减动态模型•VerilogHDL与C语言的风格很类似2.2Verilog的模块•Verilog模型(模块)-----Verilog的基本设计单元•一个完整系统的VerilogHDL模型由若干个VerilogHDL模块构成,每个模块又由若干个子模块构成…•层次化的模型例例22--1144选选11多路选择器多路选择器modulemux4_to_1(out,i0,i1,i2,i3,s1,s0);outputout;inputi0,i1,i2,i3,s1,s0;regout;always@(s1ors0ori0ori1ori2ori3)begincase({s1,s0})2'b00:out=i0;2'b01:out=i1;i02'b10:out=i2;i1out2'b11:out=i3;i2default:out=1'bx;i3endcaseends1s0endmodule例例22--2244选选11多路选择器多路选择器modulemux4_to_1(out,i0,i1,i2,i3,s1,s0);outputout;inputi0,i1,i2,i3;inputs1,s0;wires1n,s0n;wirey0,y1,y2,y3;not(s1n,s1);not(s0n,s0);and(y0,i0,s1n,s0n);and(y1,i1,s1n,s0);and(y2,i2,s1,s0n);and(y3,i3,s1,s0);or(out,y0,y1,y2,y3);endmodule分析:♦例2-1模块属于行为描述,例2-2模块属于门级描述。♦通过综合,行为描述的模块可能转化为门级描述的模块。例例22--33加法器加法器moduleadder(count,sum,a,b,cin);input[2:0]a,b;inputcin;outputcount;output[2:0]sum;assign{count,sum}=a+b+cin;endmodule♦说明:求a、b、cin的和sum,count为进位。例例22--44比较器比较器modulecompare(equal,a,b);input[1:0]a,b;outputequal;assignequal=(a==b)?1:0;endmodule例例22--55三态驱动器三态驱动器moduletrist2(out,in,enable);outputout;inputin,enable;bufif1mybuf(out,in,enable);endmodule例例22--66三态驱动器三态驱动器moduletrist1(sout,sin,ena);outputsout;inputsin,ena;mytritri_inst(.out(sout),.in(sin),.enable(ena));endmodulemodulemytri(out,in,enable);outputout;inputin,enable;assignout=enable?in:’bz;endmodule2.3模块的结构模块(block)由两部分组成:端口定义(接口描述)模块内容(逻辑功能描述)例如:moduleblock(a,b,c,d);inputa,b;outputc,d;assignc=a|b;acassignd=a&b;bdendmodule2.3.1模块的端口定义格式:module模块名(口1,口2,……);2.3.2模块的内容:1.I/O说明例如:inputk1,k2,in0;input[7:0]data;output[3:0]out;inout[15:0]db;2.内部信号的说明例如:reg[2:0]