- 1、本文档共65页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
文件包含示例【例2-9】文件包含示例文件one.v`defineaaa+b`defineccc+`aa文件two.v`includeone.vmoduletwo(a,b,cout);inputa,b,c;outputout;assignout=`cc;endmodule`defineaaa+b`defineccc+`aamoduletwo(a,b,cout);inputa,b,c;outputout;assignout=`cc;endmodule→2.5小结在本章,我们讨论了以下知识点:VerilogHDL程序是由模块构成的。每个模块的内容都是嵌在module和endmodule两个语句之间。每个模块实现特定的功能。详细讨论了数字电路设计中两种基本的设计方法:自底向上和自顶向下设计方法。模块实例化是实现自顶向下设计的一种重要途径。模块实例化是可以多层次的,一个调用了较低层次模块的模块,可以被更高层次的模块调用。在模块实例化中,可以使用两种方法将模块定义的端口与外部环境中的信号连接起来:位置关联法和名称关联法。数据类型是用来表示数字电路硬件中的数据储存和传送元素的,其中reg型、wire型、integer型、parameter型是几个最基本的数据类型。VerilogHDL语言中也有常量和变量之分,它们分别属于以上这些类型。通过使用参数,用户可以更加灵活地对模块进行说明。用户不但可以根据参数来定义模块,还可以方便地通过参数值重定义来改变模块的行为。编译预处理命令以符号“`”开头,其有效作用范围为定义命令之后到本文件结束或到其它命令定义替代该命令之处。本章重点介绍了两种常用的预编译命令:`define和`include。P42T1、2、3、4、5作业4.仿真QuartusII设计流程图2-28时序仿真设置界面4.仿真QuartusII设计流程图2-29时序仿真波形输出5.引脚锁定QuartusII设计流程图2-30引脚锁定对话框图6.把程序下载到硬件上进行测试QuartusII设计流程图2-31设置USB硬件端口6.把程序下载到硬件上进行测试QuartusII设计流程图2-32下载界面6.把程序下载到硬件上进行测试QuartusII设计流程图2-33选择下载文件2.2层次建模图2-34全加器f_adder电路图2.2层次建模【例2-3】实现一个1位全加器//*以下为全加器顶层模块*/modulef_adder(ain,bin,cin,cout,sum);outputcout,sum;inputain,bin,cin;wireain,bin,cin,cout,sum;wired,e,f;h_adderu0(ain,bin,d,e);h_adderu1(e,cin,f,sum);or2au2(d,f,cout);endmodule2.2层次建模【例2-3】实现一个1位全加器/*以下为半加器模块*/moduleh_adder(a,b,co,so);outputco,so;inputa,b;wirea,b,co,so,bbar;andand2(co,a,b);notnot1(bbar,b);xnorxnor2(so,a,bbar);endmodule/*以下为或门模块*/moduleor2a(a,b,c);outputc;inputa,b;wirea,b,c;assignc=a|b;endmodule图2-35半加器h_adder电路图2.2层次建模图2-36一位全加器功能仿真波形2.2层次建模图2-37自顶向下设计方法2.2层次建模图2-38自底向上设计方法2.2层次建模图2-41全加器的设计层次模块实例化与端口关联在模块实例化中,可以使用两种方法将模块定义的端口与外部环境中的信号连接起来:位置关联法和名称关联法。(1)位置关联h_adderu0(ain,bin,d,e);h_adderu1(e,cin,f,sum);or2au2(d,f,cout);(2)名称关联h_adderu0(.a(ain),.b(bin),.co(d),.so(e));//替换h_adderu0(ain,bin,d,e);h_adderu1(.a(e),.b(cin),.co(f),.
文档评论(0)