- 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 HDL设计学习记录
1、Verilog HDL 设计流程:
1、文本编辑:文件保存为.v的文件;
2、功能仿真:将.v文件调入HDL仿真软件,逻辑功能是否正确(前仿真);
3、逻辑综合:将源文件调入 逻辑综合软件 进行综合,把语言综合成最简的布尔表达式,生成.edf的EDA工业标准文件;
4、布局布线;
5、时序仿真:验证电路的时序(后仿真)。
2、Verilog 程序包括四部分:
1、端口定义
2、I/O口说明
3、内部信号声明
4、功能定义
3、逻辑功能定义:
三种方法在模块中产生逻辑:
(1)用 assign 声明语句;如 assign a = b c;(描述组合逻辑)
(2)用实例元件;如 and #2 u1(q,a,b);
(3)用always块;如 (既可描述组合逻辑也可描述时序逻辑)
always @ (posedge clk or posedge clr)
begin
if(clr) q = 0;
else if(en) q = d;
end
4、网络类型 变量
两种:wire tri
Wire型变量:用来表示单个门驱动或连续赋值语句驱动的网络类型数据。
Tri 型变量:用来表示多驱动器驱动的网络型数据。
线网类型 两种:wire tri
Tri 主要用于定义三态的线网;
Wire型:代表的是物理连接,不存储逻辑值,要由器件驱动,通常用assign进行赋值
Wire类型的信号没被驱动,缺省值为Z(高阻);信号没有定义数据类型时,缺省为 wire 类型。 (缺省==默认)
Reg型:默认初始值为x,通常用always模块内的指定信号,常代表触发器;
always模块内被赋值的每一个信号都必须定义为reg型。(寄存器类型)
Verilog HDL 有5种寄存器类型:
reg、integer、time、real、realtime
运算符号所带操作数
单目运算符:可带一个操作数,操作数放在运算符右边
双目运算符:可带两个操作数,操作数放在运算符两边
三目运算符:可带3个操作数,用三目运算符分隔开
6、底层模块的调用:底层模块(被测试模块)可由测试模块调用
如: (位置关联方式) :
AND_G2 AND_G2(A,B,F);
第一个 AND_G2 为底层模块名,第二个为实例名,(A,B,F)为参数定义。
语法结构为: 底层模块名 实例名 参数定义
参数定义 重要;A,B,F 相应的在底层模块也有 A,B,F
参数顺序也要注意,与测试模块一一对应,不一定要同名。
(名称关联方式):
AND_G2 AND_G2(.A(Cin),.B(Sum),.F(S1));
排列顺序不重要。
在模块实例化语句中,允许端口出现悬空,可将端口表达式表示为空白来指定悬空端口。
测试模块 (testbench)
模块的定义和调用(实例化)类似于软件中函数的定义和调用,
但二者有本质的区别:
软件的函数调用只是对同一段程序的使用,不管调用多少次,这个函数在程序中只有这么一段;
模块的定义和调用是硬件的实现,每一次调用(实例化)都将产生实现这个模块功能的一组电路。 若调用两次NAND模块,就在AND模块中产生两块实实在在的NAND电路。
监测功能,仿真可显示变量的值;$monitor
如: $monitor(Time=%0d a=%b b=%b out1=%b out2=%b,$time,a,b,out1,out2);
仿真显示:
# Time=0 a=0 b=0 out1=1 out2=0
# Time=1 a=1 b=0 out1=1 out2=0
# Time=2 a=1 b=1 out1=0 out2=1
# Time=3 a=0 b=1 out1=1 out2=0
9、在Verilog HDL程序中,语句空格没有任何意义。只有出现在字符串中的空格才有意义; 在Verilog HDL程序中,区分大小写,sum与SUM代表的意义不同。
预处理指令
`define 、`undef、`ifdef、`else、`endif、`include、`timescale
`define
您可能关注的文档
最近下载
- 皮带硫化知识.doc VIP
- [紧固件]常用紧固件选型设计.pdf VIP
- 高速公路钢筋混凝土盖板涵首件施工方案.doc VIP
- 解读《GB_Z 44526 - 2024无损检测 操作能力鉴定》全面解读.docx VIP
- 本田GX630-660-690发动机维修手册.pdf VIP
- 2025四川成都东部集团有限公司及下属企业招聘产业招商等岗位94人笔试备考题库及答案解析.docx VIP
- (全国通用)01-2023年秋季高一入学分班考试模拟卷地理试题(解析版).docx VIP
- 20210129-中信建投-因子深度研究系列:高频订单失衡及价差因子.pdf VIP
- 发电厂检修规程.docx VIP
- 2024-2025学年度第二学期期末综合素质调研七年级英语试题(含听力材料及答案).docx
文档评论(0)