- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
硬件描述语言及其在数字系统中的应用;第二讲 Verilog语法;2.1 模块module;module能够表示:
物理块,如IC或ASIC单元
逻辑块,如一个CPU设计的ALU部分
整个系统
每一个模块的描述从关键词module开始,有一个名称(如SN74LS74,DFF,ALU等等),由关键词endmodule结束。;2.端口(Terminal);端口列表和端口声明;module adder ( cout,sum,a,b,cin );
input [2:0] a,b;
input cin;
output cout;
output [2:0] sum;
assign {cout,sum}=a+b+cin;
endmodule;例SR触发器模块;D触发器模块;高层次模块对低层次模块的调用称为模块实例化。
可以将模块的实例通过端口连接起来构成一个大的系统或元件。
实例名是每个对象唯一的标记,通过这个标记可以查看每个实例的内部。
实例中端口的次序与模块定义的次序相同。
模块实例化与调用程序不同。每个实例都是模块的一个完全的拷贝,相互独立、并行。;在调用模块时,??以用顺序连接和按名连接把模块定义的端口与外部信号连接起来
顺序连接:需要连接的信号需要与模块声明的端口列表一致;;当设计大规模系统时,端口太多,记住端口顺序不大可能,可以采用按名连接方法。;2.2 Verilog 语法要素;1.标识符(identifiers);合法和非法标识符 ;2.关键词;3.空白符和注释;4.整数常量和实数常量;5.字符串(string);6.延时说明#;7. 操作符;2.3 Verilog的数据类型及逻辑系统;1.Verilog采用的四值逻辑系统;2.主要数据类型;(1)net类的类型(线网);;(2)寄存器类的类型;Verilog中register声明语法;(3)Verilog中net和register区别;寄存器类型通常用于对存储单元的描述,如D型触发器、ROM等。存储器类型的信号当在某种触发机制下分配了一个值,在分配下一个值之时保留原值。 reg 是最常用的寄存器类型,表示无符号整数变量。
但必须注意的是,reg 类型的变量,不一定都是存储单元,如在always 语句中进行描述的必须用reg 类型的变量。
寄存器类型的值可取负数,但若该变量用于表达式的运算中,则按无符号类型处理;(4)参数(parameters);(5)寄存器数组(Register Arrays);例如:reg [7:0] Areg; //8bit寄存器;存储器寻址(Memory addressing)
文档评论(0)