硬件描述语言2_第1页
硬件描述语言2_第2页
硬件描述语言2_第3页
硬件描述语言2_第4页
硬件描述语言2_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

2020/5/22,GUETSchoolofInformationinput2:0a,b;inputcin;outputcout;output2:0sum;assigncout,sum=a+b+cin;endmodule,例设计三位全加器,这个例子描述了一个三位的加法器。从例子中可以看出整个VerilogHDL程序是嵌套在module和endmodule声明语句里的,只出现了一个assign语句。,模块名,端口列表,端口声明,数据流语句,2020/5/22,GUETSchoolofInformationoutputQ,Q_n;/端口声明inputS,R;nandn1(Q,S,Q_n);nandn2(Q_n,R,Q);endmodule,模块中的5个部分并没全部出现,只出现在低层次模块实例化,nand为verilog中的与非门门级原语部件,2020/5/22,GUETSchoolofInformationoutputq,qb;inputd,clk,clr;regq,qb;/输出端口q,qb值保存always(posedgeclk)beginif(clr)q=1b0;elseq=d;endnot(qb,q);endmodule,该模块内包括always行为块语句,always块行为描述语句,2020/5/22,GUETSchoolofInformationD_FFd1(d1,clk,clr,q1,qb1);D_FFd2(d2,clk,clr,q2,qb2);D_FFd3(d3,clk,clr,q3,qb3);,调用模块名,例化名,2020/5/22,GUETSchoolofInformation,D_FFd0(.d(d0),.clk(clk),.clr(clr),.q(q0);,2020/5/22,GUETSchoolofInformationoutputout;inputa,b,sel;notnot1(sel_,sel);andand1(a1,a,sel_);andand2(b1,b,sel);oror1(out,a1,b1);endmodule,Verilog标识符,2020/5/22,GUETSchoolofInformation/Portdeclarationsoutputout;inputsel,/controlinputb,/*datainputs*/a;/*Thenetlistlogicselectsinput”a”whensel=0anditselects”b”whensel=1.*/not(sel_,sel);and(a1,a,sel_),(b1,b,sel);/Whatdoesthis/linedo?or(out,a1,b1);endmodule,格式自由使用空白符提高可读性及代码组织。Verilog忽略空白符除非用于分开其它的语言标记。,多行注释,在/*/内,2020/5/22,GUETSchoolofInformationoutputout;inputa,b,sel;not#1not1(sel_,sel);and#2and1(a1,a,sel_);and#2and2(b1,b,sel);or#1or1(out,a1,b1);endmodule门延时有很多类名字:门延时(gatedelay),传输延时(propagationdelay),固有延时(intrinsicdelay),对象内在延时(intra-objectdelay),2020/5/22,GUETSchoolofInformationnet_type:net类型range:矢量范围,以MSB:LSB格式delay:定义与net相关的延时net_name:net名称,一次可定义多个net,用逗号分开。,举例:wirea;tri15:0busa;/16位三态总线wire0:31w1,w2;/两个32位wire,MSB为bit0,2020/5/22,GUETSchoolofInformation/一个标量寄存器reg3:0v;/从MSB到LSB的4位寄存器向量reg7:0m,n;/两个8位寄存器integerA,B,C;/3个整数型寄存器,寄存器声明range,reg_name;reg_type:寄存器类型range:矢量范围,以MSB:LSB格式。只对reg类型有效reg_name:寄存器名称,一次可定义多个寄存器,用逗号分开,2020/5/22,GUETSchoolofInformation可一次定义多个参数,用逗号隔开。在使用文字(literal)的地方都可以使用参数。参数的定义是局部的,只在当前模块中有效。参数定义可使用以前定义的整数和实数参数。,modulemod1(out,in1,in2);.parametercycle=20,prop_del=3,setup=cycle/2-prop_del,p1=8,x_word=16bx,file=/usr1/jdough/design/mem_file.dat;.wirep1:0w1;/Awiredeclarationusingparameter.endmodule,注意:参数file不是string,而是一个整数,其值是所有字母的扩展ASCII值。若file=“AB”,则file值为8h4142。用法:$fopen(file);$display(“%s”,file);,2020/5/22,GUETSchoolofInformation/包含8个整数数组变量timet_vals3:0;/4个时间数组变量reg类型的数组通常用于描述存储器其语法为:regMSB:LSBfirst_addr:last_addr;MSB:LSB定义存储器字的位数first_addr:last_addr定义存储器的深度例如:reg15:0MEM0:1023;/1Kx16存储器reg7:0PREPhFFFE:hFFFF;/2x8存储器描述存储器时可以使用参数或任何合法表达式parameterwordsize=16;parametermemsize=1024;regwordsize-1:0MEM3memsize-1:0;,2020/5/22,GUETSchoolofInformation/8bit寄存器,regAmem7:0;/8X1存储器,reg7:0Cmem0:3;/4X8存储器,2020/5/22,GUETSchoolofInformationreg8:1mema0:255;/declarememorycalledmemareg8:

温馨提示

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

评论

0/150

提交评论