Verilog HDL设计学习记录.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

mww666 + 关注
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档