- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三讲 常用Verilog 语法之一
;3.1 模块的结构;模块的结构; Verilog 模块的结构由在module和endmodule 关键词之间的四个主要部分组成:
- 端口定义: module block1(a, b, c, d );
- I/O说明 : input a, b, c ;
output d ;
- 内部信号声明: wire x;
- 功能定义: assign d = a | x ;
assign x = ( b ~c );
endmodule ;3.1 模块的结构;3.1 模块的结构;3.1 模块的结构;3.1 模块的结构;3.1 模块的结构;3.2 数据类型及其常量及变量;3.1.2 数值
1. Verilog HDL中的数值可取下面的四类值:
; 下划线符号“_”除了不能放于数值的首位以外,可以随意用在整型数与实型数中,他们对数值的大小没有任何改变,只是为了提高可读性。
1)整型数及其表示
Verilog HDL的整数可以使二进制(b或B)、十进制(d或D)、十六进制(h或H)与八进制(o或O),有下面三种书写形式
(1)简单的十进制格式;
(2)缺省位宽的基数格式;
(3)指定位宽的基数格式。;(1)简单的十进制格式:
用0~9的数字串组成的十进制数,可以用符号“+”或“-”来表示数的正负.
(2)缺省位宽的基数格式;
表示形式为:`base_formatnumber
符号“`”为基数格式表示的固有字符,该字符不能省略,否则为非法表示形式;参数base_format用于说明数值采用的进制格式;参数number为相应进制格式下的一串数字.这种格式未指定位宽,其缺省值至少为32位.
(3)指定位宽的基数格式:
表示形式为:<size>`<base_format><number>
参数<size>用来指定所表示数字的位宽.当位宽小于数值的实际大小时,相应的高位部分被忽略;当位宽大于数值的实际位数,且数值的最高位是0或1时,相应的高位部分补0;而当位宽大于数值的实际位数,但数值的最高位是x或z时,相应的高位部分补X或Z.;;;例;三种格式的整数表示法; Verilog HDL中的实数可以用十进制与科学计数法两种格式来表示,如果采用十进制格式,小数点两边必须都有数字,否则为非法的表示形式.
实数表示法的实例
1.8 //十进制计数法
3.8e10 //科学计数法
2.1E-9 //科学计数法可用e或E表示,其结果相同
3_2387.3398_3047 //使用下划线提高可读性
3. //非法表示,小数点两遍都必须有数
.2e6 //非法表示,小数点两遍都必须有数
.12 //非法表示,小数点两遍都必须有数;3.2 数据类型及其常量及变量;3.2 数据类型及其常量及变量;3.2 数据类型及其常量及变量;3.2 数据类型及其常量及变量;3.2 数据类型及其常量及变量;3.2 数据类型及其常量及变量;module top;
wire y;
reg a, b;
DUT u1(y,a,b);
initial
begin
a = 0; b = 0;
#10 a =1; ….
end
endmodule ;输入口(input)可以由寄存器或网络连接驱动,但它本身只能驱动网络连接。
输出口 (output)可以由寄存器或网络连接驱动,但它本身只能驱动网络连接。
输入/输出口(inout)只可以由网络连接驱动,它本身也只能驱动网络连接。
如果信号变量是在过程块 (initial块 或 always块)中被赋值的,必须把它声明为寄存器类型变量
;如何选择正确的数据类型
原创力文档


文档评论(0)