Verilog HDL 实验报告完整版.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 Modelsim 仿真软件的使用 一、实验目的 (1)熟悉Modelsim 软件 (2)掌握Modelsim 软件的编译、仿真方法 (3)熟练运用Modelsim 软件进行HDL 程序设计开发 二、实验内容 1、实验要求 用Verilog HDL 程序实现一个异或门,Modelism仿真,观察效果。 2、步骤 1、建立工程 2、添加文件到工程 3、编译文件 4、查看编译后的设计单元 5、将信号加入波形窗口 6、运行仿真 3、方法 module yihuo (a,b,c); input a,b; output c; assign c=a^b; endmodule 测试程序: module t_yihuo; reg a,b; wire c; initial begin a=0; forever #20 a=~a; end initial begin b=0; forever #30 b=~b; end yihuo u1(a,b,c); endmodule 实验结果 波形图: 分析和心得 通过这次的实验,我基本熟悉Modelsim 软件,掌握了Modelsim 软件的编译、仿真方法。同时在编写程序的过程中,加深了我对课上所讲的HDL的语法的认识。 实验二 简单组合电路设计 一、实验目的 (1)掌握基于Modelsim 的数字电路设计方法 (2)熟练掌握HDL 程序的不同实现方法 二、实验内容 1、实验要求 设计一个三人表决器(高电平表示通过),实验内容如下: (1)三个人,一个主裁判,两个副裁判; (2)规则:只要主裁判同意,输出结果为通过;否则,按少数服从多数原则决定是否通过。 使用 Verilog HDL 程序实现上述实验内容,并使用modelsim 仿真。 2、方法 module test(a,b,c,s); input a,b,c; output s; assign s=c|(ba); endmodule module t_test; reg a,b,c; wire s; initial begin a=0; forever #10 a=~a; end initial begin b=0; forever #20 b=~b; end initial begin c=0; forever #40 c=~c; end test u1(a,b,c,s); endmodule 三、实验结果 分析和心得 通过本次实验,我掌握基于Modelsim 的简单数字电路设计方法,且尝试了用不同方法实现功能,三人表决器可以通过testbench测试程序实现,也可以利用always模块实现,可见程序的设计思想是很重要的。 实验三 二进制全加器设计 一、实验目的 (1)熟悉Verilog HDL 元件例化语句的作用 (2)熟悉全加器的工作原理 (3)用Verilog HDL 语言设计四位二进制全加器,并仿真,下载验证其功能 二、实验内容 1、实验要求 (1)用 Verilog HDL 语言描述一位全加器,并使用 modelsim仿真验证结果。 (2)用 Verilog HDL 元件例化语句实现四位全加器,modelsim仿真验证结果。 (3)设计程序将加法结果分开输出,即十位数和个位数分别用四位数组表示。 2、方法 module add1(a,b,c,s,sc); input a,b,c; output s,sc; assign {s,sc}=a+b+c; endmodule module add4(ad1,ad2,c,ss,sc); input [3:0] ad1,ad2; input c; output [3:0]ss; output sc; wire c1,c2,c3; add1 u1(ad1[0],ad2[0],c,ss[0],c1); add1 u2(ad1[1],ad2[1],c1,ss[1],c2); add1 u3(ad1[2],ad2[2],c2,ss[2],c3); add1 u4(ad1[3],ad2[3],c3,ss[3],sc); endmodule 测试程序: module t_add4; reg [3:0] ad1,ad2; reg c; wire sc; wire [3:0]ss; initial begin ad1=4b0; forever #10 ad1=ad1+4b1;

文档评论(0)

135****0879 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档