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

加入VIP,省得不是一点点
 

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

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

下载须知

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

版权提示 | 免责声明

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

实验考试FPGA实验代码.doc

1、备注:FPGA 实验的源程序要与相应的电路结合看并有一定的理解,务必要熟练知道引脚的分配,软件的基本操作详见实验指导书的实验一。实验二:12 选 1 的数据选择器 具体步骤: 第1步:新建一个Quartus 项目。 第2步:在Quartus 项目中新建一个VHDL文件,并命名为mux_2to1.vhd,实现2选1的电路功能,其真值表和电路符号如下图所示。即当s1时,输出my;当s 0时,输出mx。 代码一:VHDL程序代码如下。 library ieee; use ieee.std_logic_1164.all; entity mux_2to1 is port( s,x,y:in std_lo

2、gic; m:out std_logic); end mux_2to1; architecture behave_mux_2to1 of mux_2to1 is begin m=x when s=0 else y ; end behave_mux_2to1; 2、 28 位宽 2 选 1 的数据选择器 在完成2选1数据选择器之后,将信号x和y的位宽由1位扩展为8位。更改后的电路图如下: 实验代码如下: library ieee; use ieee.std_logic_1164.all; entity mux_2to1_8bit is port( s:in std_logic;x,y:in st

3、d_logic_vector(7 downto 0); m:out std_logic); end mux_2to1_8bit; architecture behave_mux_2to1_8bit of mux_2to1_8bit is begin m=x when s=0 else y; end behave_mux_2to1_8bit;第 2 步:接着把 mux_2to1_8bit.vhd 设定为项目的顶层设计文件。实现方法如下图所示,在项目浏览器(Project Navigator)中选择文件(Files )页,选中 mux_2to1_8bit.vhd,单击右键,选择“Set as To

4、p-Level Entity”命令即可。34 选 1 的数据选择器 在完成2选1电路之后,将电路扩展为4选1数据选择器,电路及其真值表如下图所示。 代码修改如下: library ieee; use ieee.std_logic_1164.all; entity mux_4to1 is port( s:in std_logic_vector(1 downto 0); u,v,w,x:in std_logic; m:out std_logic ); end mux_4to1; architecture behave_mux_4to1 of mux_4to1 is begin m=u when s

5、=“00“ else v when s=“01“ else w when s=“10“ else x; end behave_mux_4to1; 文件另存为mux_4to1.vhd。 接着将mux_4to1.vhd设定为项目的顶层设计文件,再进行语法检查和引脚分配。 4实现 3 位宽的 4 选 1 数据选择器。 电路如下图所示。代码完成后,另存为mux_4to1_3bit.vhd。 library ieee; use ieee.std_logic_1164.all; entity mux_4to1_3bit is port( s:in std_logic_vector(1 downto 0);

6、 u,v,w,x:in std_logic_vector(2 downto 0); m:out std_logic_vector(2 downto 0) ); end mux_4to1_3bit; architecture behave_mux_4to1_3bit of mux_4to1_3bit is begin m=u when s=“00“ else v when s=“01“ else w when s=“10“ else x; end behave_mux_4to1_3bit;实验三:七段数码管显示 1显示简单字符 七段数码管显示电路如下图所示: 图中包含一个七段解码器模块,c2c0

7、 是解码器的 3个输入,当输入值不同时,输出不同的字符。如表中所示,当输入值为100111时,输出空格,即数码管全暗。七段数码管的不同段位用数字06表示,注意七段数码管是共阳极的,即各管段输入低电平时,数码管亮;否则数码管暗。 具体实验步骤如下: 第1步:新建一个Quartus 项目。 第2步:新建一个VHDL文件,实现上述七段解码器。具体代码如下: library ieee; use ieee.std_logic_1164.all; entity char_7seg is port( c:in std_logic_vector(2 downto 0); hex:out std_logic_v

8、ector(6 downto 0); end char_7seg; architecture behave_char_7seg of char_7seg is begin with c(2 downto 0) select hex= “0001001“ when “000“ , -“H“ “0000110“ when “001“ , -“E“ “1000111“ when “010“ , -“L“ “1000000“ when “011“ , -“O“ “1111111“ when others; -“ “ end behave_char_7seg; 保存VHDL文件,并命名为char_7se

9、g.vhd 。 第3步:语法检查,通过后,进行引脚分配,分配表如下: 信号 DE2上的器件 C2.0 SW2SW0 hex6.0 HEX06.0 2显示 09 数字 在完成简单字符显示电路之后,设计一个用于显示09数字的七段数码管电路。电路图如下图所示,c3c0 是七段数码器的输入,当输入 00001001时,则输出09,如表中所示;当输入10101111时,输出空格。 对上述代码进行相应的修改,并将文件另存为num_7seg.vhd 。 接着将num_7seg.vhd设定为项目的顶层设计文件,再进行语法检查和引脚分配。 引脚分配表如下表所示,具体的FPGA引脚可通过查找附录表获取。分配完后重

10、新编译项目文件,并下载验证。 信号 DE2上的器件 C3.0 SW3SW0 hex6.0 HEX06.0 library ieee; use ieee.std_logic_1164.all; entity num_7seg is port( c:in std_logic_vector(3 downto 0); hex:out std_logic_vector(6 downto 0); end num_7seg; architecture behave_num_7seg of num_7seg is begin with c(3 downto 0) select hex= “1000000“ w

11、hen “0000“ , -“0“ “1111001“ when “0001“ , -“1“ “0100100“ when “0010“ , -“2“ “0110000“ when “0011“ , -“3“ “0011001“ when “0100“ , -“4“ “0010010“ when “0101“ , -“5“ “0000010“ when “0110“ , -“6“ “1111000“ when “0111“ , -“7“ “0000000“ when “1000“ , -“8“ “0010000“ when “1001“ , -“9“ “1111111“ when others

12、; -“ “ end behave_num_7seg;3循环显示 4 个字符 循环显示4个字符的电路图如下: 电路的工作原理是,输入端 U、V 、W 和 X 的输入值分别是 000、001、010 和 011,通过s1 和 s0 选择四个输入端其中一个作为七段解码器的输入值,从而显示 H、L、E 和 O 任一字符。方法二: 通过VHDL代码实现,这里需要用到元件的概念。整个文件的代码如下: library ieee; use ieee.std_logic_1164.all; entity char_4to1_7segv is port( s:in std_logic_vector(1 down

13、to 0); U,V,W,X:in std_logic_vector(2 downto 0); hex0:out std_logic_vector(6 downto 0); end char_4to1_7segv; architecture behave_char_4to1_7segv of char_4to1_7segv is component char_7seg is port( c:in std_logic_vector(2 downto 0); hex:out std_logic_vector(6 downto 0); end component; component mux_4to

14、1_3bit is port( s:in std_logic_vector(1 downto 0); u,v,w,x:in std_logic_vector(2 downto 0); m:out std_logic_vector(2 downto 0); end component; signal mout:std_logic_vector(2 downto 0); begin u1:mux_4to1_3bit port map(s,U,V,W,X,mout); u2:char_7seg port map(mout,hex0) ; end behave_char_4to1_7segv; 代码中

15、用红色标识出来的就是元件的定义和调用部分。将文件另存为char_4to1_7segv.vhd,并将其设定为项目的顶层设计文件。再进行语法检查、引脚分配和编译下载。 实验四:BCD 码显示及运算 1二进制码到 BCD 码的转换 二进制码与BCD 码之间的转换关系见下表: 表中将 4 位二进制输入 V=v3v2v1v0转换成 2 位十进制 Dd1d0,实现办法是用 SW3.0作为二进制输入,而用 HEX1 和 HEX0 作为十进制输出的显示。从上述表中可以看出,当V=9 时, d1 0、d0V;反之,d11、d0V 10。 1、BCD 二进制转换为十进制library ieee; use ieee

16、.std_logic_1164.all; use ieee.std_logic_unsigned.all;entity bin_bcd isport(v:in std_logic_vector( 3 downto 0);hex0,hex1:out std_logic_vector( 6 downto 0);end entity bin_bcd;architecture behave_bin_bcd of bin_bcd issignal d0,d1:std_logic_vector(3 downto 0);component num_7seg is port( c:in std_logic_v

17、ector(3 downto 0); hex:out std_logic_vector(6 downto 0); end component;begin process(v)beginif(v=9)then d1=“0000“;d0=v;else d1=“0001“;d0=v-10;end if;end process;dd0:num_7seg port map(d0,hex0);dd1:num_7seg port map(d1,hex1);end behave_bin_bcd;2 1 位 BCD 加法器 电路原理是输入两个BCD码A和B以及1位进位输入cin,输出是BCD码的和sum以及 1位进位输出cout。例如当A1001(9)、 B1001(9)、cin 1时,cout1,sum1001(9)。电路的输出最大值也就是19。 1位BCD加法器可以利用两个二进制加法器实现,其原理如下图所示。在VHDL中,二进制加法可以直接用A+B实现。不过前提是需要使用std_logic_unsigned.all这个程序包。 2、1 位 BCD 加法

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。