资源描述:
《Verilog 基本语法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、硬件描述语言和数字系统设计第3章Verilog基本语法主讲教师:郑朝霞华中科技大学电子系郑朝霞主要内容:3.1VerilogHDL基本模块说明3.2VerilogHDL中的词汇约定3.3VerilogHDL数据类型3.4VerilogHDL运算符华中科技大学电子系郑朝霞23.1VerilogHDL基本模块说明module是层次化设计的基本构件逻辑描述放在module内部�module能够表示:�物理块,如IC或ASIC单元�逻辑块,如一个CPU设计的ALU部分�整个系统�每一个模块的描述从关键词module开始,有一个名
2、称(如SN74LS74,DFF,ALU等等),由关键词endmodule结束。华中科技大学电子系郑朝霞3Verilog模块(module)结构基本要素知识点:3.1.1端口信息3.1.2输入/输出说明3.1.3逻辑功能描述华中科技大学电子系郑朝霞43.1.1端口信息2,端口等价于硬件的引脚(pin)1,端口在模块名字后的括号中列出3,端口可以说明为input,output及inout�模块通过端口与外部通信华中科技大学电子系郑朝霞53.1.2端口说明Verilog模块的结构由在module和endmodule关键词之间的
3、四个主要部分组成:-1.端口信息:modulecombination(a,b,c,d);-2.输入/输出说明:inputa,b,c;outputd;-//输入/输出端口信号类型声明,缺省为wire型:-3.内部信号:wirex;-4.功能定义:assignd=a
4、x;assignx=(b&~c);endmodule华中科技大学电子系郑朝霞63.1.3逻辑功能描述两路选择器的RTL级描述1:modulemux2to1(out,a,b,sel);inputa,b,sel;outputout;wireout;assignout
5、=(sel)?b:a;endmodule华中科技大学电子系郑朝霞7两路选择器的RTL级描述2:modulemux2to1(out,a,b,sel);inputa,b,sel;outputout;regout;always@(seloraorb)if(!sel)out=a;elseout=b;endmodule华中科技大学电子系郑朝霞8实例化(moduleinstances):�1.端口信息�2.输入/输出说明�3.逻辑功能描述(实例化实现功能描述)华中科技大学电子系郑朝霞9两路选择器的门级描述-实例化:modulemux
6、2to1(out,a,b,sl);inputa,b,sl;outputout;notu1(nsl,sl);andu2(sela,a,nsl);andu3(selb,b,sl);oru4(out,sela,selb);endmodule华中科技大学电子系郑朝霞10练习:编写VerilogHDL模块�请在下面的空格中填入适当的符号使其成为右图的Verilog模块:moduleblock1(a,b,—,—,—);input—,—,—;a——d,—;dbassignd=a
7、(b&~c);ecassigne=(b&~c);____
8、___华中科技大学电子系郑朝霞11练习答案:编写VerilogHDL模块moduleblock1(a,b,c,d,e);inputa,b,c;outputd,e;assignd=a
9、(b&~c);adassigne=(b&~c);beendmodulec华中科技大学电子系郑朝霞123.2VerilogHDL中的词汇约定知识点:�3.2.1术语及定义�3.2.2空白符和注释�3.2.3Verilog采用的四值逻辑系统�3.2.4整数常量和实数常量�3.2.5字符串�3.2.6标识符�3.2.7系统任务及函数�3.2.8编译
10、指导�3.2.9文本包含�3.2.10文本替换华中科技大学电子系郑朝霞133.2.1术语及定义1.空白符:空格、tabs及换行2.标志符(Identifier):Verilog中对象(如模块或信号)的名字3.LSB:最低有效位(Leasesignificantbit)4.MSB:最高有效位(Mostsignificantbit)华中科技大学电子系郑朝霞143.2.2空白符和注释moduleMUX2_1(out,a,b,sel);格式自由//Portdeclarations单行注释使用空白符提高可读性及代码组outputo
11、ut;到行末结束织。Verilog忽略空白符除非用于inputsel;//controlinput分开其它的语言标记。inputb,a;/*datainputs*/wiresel_,a1,b1;/*Thenetlistlogicselectsinput”a”whensel=0anditselects”b”whense