ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:438.09KB ,
资源ID:6773217      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6773217.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(HDL实验报告.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

HDL实验报告.docx

1、HDL实验报告HDL实验报告专业: 学号: 姓名: 指导老师: 实验一:modelsim软件使用.3实验二:简单组合电路设计. 5实验三:二进制全加器设计.7实验四:二进制计数器设计.12实验五:基本IO口硬件实现.16实验一 Modelsim 仿真软件的使用一、实验目的(1)熟悉Modelsim 软件;(2)掌握Modelsim 软件的编译、仿真方法(3)熟练运用Modelsim 软件进行HDL 程序设计开发二、实验步骤(1)学习,练习使用Modelsim软件(2)用 Verilog HDL 程序实现一个异或门,Modelsim 仿真,观察效果三、实验结果 1.程序:module yihuo

2、(a,b,c);input a,b;output c;assign c=ab;endmodule测试文件:module t_yihuo; reg a,b;wire c;initial begin a=1b0;b=1b0; #20 a=1b1;b=1b0; #20 a=1b0;b=1b1; #20 a=1b1;b=1b1; endyihuo u1(a,b,c);endmodule仿真波形:四、心得 1、编程时候要注意不能少了句子末尾的分号;2、initial后面不能有分号;3、程序第一行后面得加上分号,但是末尾不需要。实验二 简单组合电路设计一、 实验目的(1)掌握基于Modelsim 的数字电

3、路设计方法;(2)熟练掌握HDL 程序的不同实现方法二、 实验内容设计一个三人表决器(高电平表示通过),实验内容如下:(1)三个人,一个主裁判,两个副裁判;(2)规则:只要主裁判同意,输出结果为通过;否则,按少数服从多数原则决定是否通过。使用 Verilog HDL 程序实现上述实验内容,并使用modelsim 仿真(要求:至少使用两种方法实现上述实验内容和testbench)。三、 实验结果程序1module one (ina,inb,inc,outc); input ina,inb,inc; output outc; reg outc; always (ina or inb or inc)

4、 outc=ina|inb&inc; endmodule程序2module one (ina,inb,inc,outc); input ina,inb,inc; output outc; asign outc=ina|inb&inc; endmodule测试文件:module t_biaojue; reg a,b,c; wire y; initial begin a=1b0; forever #10 a=a; end initial begin b=1b0; forever #20 b=b; end initial begin c=1b0; forever #40 c=c; end one t

5、(a,b,c,y); endmodule仿真波形如下: 实验心得:第一次独立使用modelsim软件,从一开始的生疏,到做完实验后慢慢地了解如何使用这个软件,并自己做出了基本的仿真,通过仿真验证程序的对与错。并且在老师的讲解下,我懂得了如何找到错误,发现错误,并如何改正错误。实验三 二进制全加器设计一、 实验目的(1)熟悉Verilog HDL 元件例化语句的作用(2)熟悉全加器的工作原理(3)用Verilog HDL 语言设计四位二进制全加器,并仿真,下载验证其功能二、 实验原理(1)一位全加器原理: Ai,Bi 分别是两个二进制位,Ci-1 是前级进位,Ci 是进位,Si 是加法结果。 表

6、达式: Si=AiBiCi-1; Ci-1=Ai&Bi|Ai&Ci-1|Bi&Ci-1;四位全加器: 四个一位全加器串联;三、 实验内容(1)用Verilog HDL 语言描述一位全加器,并使用modelsim 仿真验证结果。(2)用Verilog HDL 元件例化语句实现四位全加器,modelsim 仿真并下载到实验箱, 用按键模拟输入,led 灯模拟输出,验证结果。(3)设计程序将加法结果分开输出,即十位数和个位数分别用四位数组表示。四、 实验结果一位全加器程序:module add_1(a,b,ci,cout,co);input a, b, ci; output cout, co; re

7、g cout;reg co;always ( a or b or ci )begin cout = a b ci; co = (a & b) | (a & ci) | (b & ci);endendmodule四位全加器程序:module add_4(a,b,ci,count,co); input 3:0 a; input 3:0 b; input ci; output 3:0 count; output co;wire c1,c2,c3;begin add_1 add1(a0,b0,ci,count0,c1); add_1 add2(a1,b1,c1,count1,c2); add_1 ad

8、d3(a2,b2,c2,count2,c3); add_1 add4(a3,b3,c3,count3,co); endendmodule四位全加器测试程序;module t_add_4; reg 3:0 ad1,ad2; reg c; wire sc; wire 3:0ss; initial begin ad1=4b0; forever #1 ad1=ad1+4b1; end initial begin ad2=4b0; forever #16 ad2=ad2+4b1; end initial begin c=0; forever #256 c=c; end add_4 u3(ad1,ad2,

9、c,ss,sc);endmodule仿真波形:思考题:二进制加法的十进制个十分离:module B_TO_D(clk,a,b,c0,s0,s1,t1,t0); input3:0a,b; input c0,clk; output 3:0s0,s1,t1,t0; wire 3:0s; reg 3:0t0,t1; wire 4:0S; wire c1,c2,c3,c4; add_1 u1(a0,b0,c0,s0,c1); add_1 u2(a1,b1,c1,s1,c2); add_1 u3(a2,b2,c2,s2,c3); add_1 u4(a3,b3,c3,s3,c4); assign S=c4,

10、s; always(posedge clk or posedge S) if(S5b1010) begin t1=4b0; t0=s; end else if(5b1010=S5b10100) begin t1=4b1; t0=S-5b1010; end else if(5b10100=S5b11110) begin t1=4b10; t0=S-5b10100; end else begin t1=4b11; t0=S-5b11110; end D D1(s1,clk,t1); D D0(s0,clk,t0); endmodulemodule D(q,clk,d); input clk; in

11、put 3:0d; output 3:0q; reg 3:0q; always(posedge clk) q=d;endmodule仿真程序:module T_B_TO_D; reg 3:0a,b; reg c0,clk; wire 3:0s0,s1,t1,t0; initial begin clk=1b0; forever #10 clk=clk; end initial begin a=4b0; forever #10 a=a+4b1; end initial begin b=4b0; forever #160 b=b+4b1; end initial begin c0=1b0; fore

12、ver #2560 c0=c0; end B_TO_D u1(clk,a,b,c0,s0,s1,t1,t0);endmodule5、心得体会1、可以把复杂的问题分解为数个小问题,逐个解决,最终达到目的,就像数全加器,整体复杂,其实单个全加器就简单得多。2、要熟悉掌握数电知识并且灵活运用。六、思考题在仿真时,输出结果会有毛刺,采用什么方法可以消除毛刺?答:利用D触发器可以消除毛刺实验四 二进制计数器设计一、 实验目的(1)熟悉Verilog HDL 时序电路的设计方法;(2)了解清零和使能的概念,以及同步清零和异步清零的区别(3)用Verilog HDL 语言设计二进制计数器,并仿真;二、实验原

13、理 一般计数器可以分为两类:加法计数器和减法计数器。加法计数器每来一个脉冲计数值加1;减法计数器每来一个脉冲计数器值减1;有时将两者做在一起称可逆计数器。三、实验内容及步骤(1)编程实现二进制计数器并仿真。按实验原理要求编写一个二进制计数器,并仿真。实验步骤:(1)编程实现十进制计数器,含同异步清零端和进位输出端,编程实现,并modelsim仿真。(2)增加预置功能(增加五位输入引脚),实现任意的五位二进制数的计数器。四、实验结果计数器程序:module counter (count,cout,clk,rst); input clk,rst; output 3:0 count; output

14、cout; reg 3:0 count; reg cout; always(posedge clk or posedge reset) begin if(!reset) begin count = 4b0000; cout = 1b0; end else if(count = 4b1111) begin count = 4b0000; cout = 1b1; end else begin count = count +4b0001; cout = 1b0; end endendmodule测试程序module t_count;reg clk,rst;wire 3:0count;wire sta

15、te;parameter time_=320;initial begin clk=0;forever #(time_/32)clk=clk;endinitialbegin rst=0;forever #(time_)rst=rst;endcounter u1(count,state,clk,rst);endmodule 四、仿真效果图带有预置功能的任意五位二进制计数器程序:module yuzhi_jishu(clk,rst,ina,count,co); input clk,rst; input 4:0 ina; output 4:0 count; output co; reg 4:0 cou

16、nt; reg co; always (posedge clk or negedge rst) if (!rst) begin count = ina; co = 1b0; end else if(count = 5b11111) begin count = ina; co = 1b1; end else begin count = count+1b1; co Tcl Scripts,选中刚才编辑的Script 文件:Setup,并点击Run4、编译按主工具栏上的编译按钮即开始编译5、下载(1) 下载设置:如果第一次使用下载线下载配置文件到FPGA,则需要在Q2 软件设置下载线的型号等信息。先

17、将ByteBlasterII 下载线的一头接到PC的并口,执行菜单ToolsProgrammer在Hardware type 下拉列表选择“ByteBlasterMV or ByteBlasterII”,点OK 返回“HardwareSetup”对话框,从“Currently selected hardware:”下拉列表选择ByteBlasterIILPT1,点击“Close”返回下载界面,可看到下载线已经被添加(2) 将ByteBlasterII下载线一头与PC连接,另一头插入到JTAG口或EPCS4的下载口。(3) FPGA 核心板接上5V 电源。(4) 如果只是调试一下设计是否成功,可通过JTAG 口把芯片的配置信息下载到FPGA 芯片内,掉电后配置信息丢失。此时,下载界面的“Mode:”下拉列表应选择“JTAG”,并选择工程中.sof 后缀的文件进行下载四、实验结果 在本例的设计中,我们利用一个常开按钮(实验板上的KEY1)作为输入(常开时输入1,闭合时输入0),经过一个反向器后输出到核心板的第一个LED;因此按下(闭合)实验板上的KEY1,该LED 灭。五、实验心得 通过本次实验,加深了对FPGA设计流程的理解及QuartusII 软件的基本用法,对FPGA实验开发板有了一定的认识,为以后的课程设计打下了一定的基础。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2