EDA1111试验报告教材_第1页
EDA1111试验报告教材_第2页
EDA1111试验报告教材_第3页
EDA1111试验报告教材_第4页
EDA1111试验报告教材_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验 3 8 位硬件加法器 VHDL设计一、实验目的学习 8 位硬件加法器的设计,进一步学习电路的仿真验证和硬件测试二、实验内容本实验的内容是建立一个 8 位硬件加法器,并在 GW48试验箱上进行测试。三、实验原理 在数字信号处理的快速运算电路中常常用到多位数字量的加法运 算,这时需要用到并行加法器。并行加法器比串行加法器快得多,电路 结构不太复杂,它的原理也很容易理解。现在普遍采用的是超前进位加 法器,只是在几个全加器的基础上增加一个超前进位形成逻辑,以减少 由于逐位信号的传递所造成的延迟。四、实验步骤( VHDL文本设计)步骤一 :为项目设计建立文件夹和工程步骤二 :建立文本编辑文件在创建

2、好一个设计工程后,在 Quartus II6.0 Project 主界面选择 File-New 打开新建文件对话框,在该对话框中选择 VHDL File ,单击 Ok建立一个空的 VHDL文件。在 Quartus II6.0 主界面中选择 File-Save As 改名为 Adder.vhd 并保存。步骤三 :输入 VHDL代码参考实验程序。步骤四 :最后进行器件型号选择、分配引脚、编译、时序仿真、编 程下载。建议选择实验电路的模式 1,。用键 4和3(PIO15-PIO8)接输入 A,用键 2和 1(PIO15-PIO8)接输入 B,用键 8(PIO49)接输入 CIN,用数码管 6和 5(

3、接输入 S),用 D1接输出 COU。T五、VHDL实验参考程序程序清单 adder8.VHDLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_UNSIGNED.ALL;ENTITY adder8 ISPORT(CIN:IN STD_LOGIC;A,B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);S:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);COUT:OUT STD_LOGIC);END adder8;ARCHITECUTRE behave OF adder8 ISSIGNAL sint:S

4、TD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL m:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL n:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGINm=not(not A);n=not(not B);sint=( 0 &m)+n+CIN;S=SINT(7 DOWNTO 0); COUTNew 打开新建文件对话框,在该对话框中选择 VHDL File ,单击Ok 建立一个空的 VHDL 文件。在 Quartus II6.0 主界面中选择 File-Save As 改名为 Adder.vhd 并保存。步骤三 :输入 VHDL代

5、码参考实验程序。步骤四 :最后进行器件型号选择、分配引脚、编译、时序仿真、编 程下载。在本实验的程序中, clk 是扫描时钟; SG为 7 段控制信号,有高位 至低位分别接 g、f、e、d、c、b、a7个段; BT 是位选控制信号,接上 途中的 8 个选通信号: k1、k2、k8.程序 CNT8 是一个 3 位计数器,作 扫描据计数信号,有进程 P2生成:进程 P3是 7 段译码查表输出程序: 进程 p1是对 8 个数码管选通的扫描程序,例如当 CNT8 等于“001时”, k2 对应的数码管被选通,同时, A 杯赋值 3,再由进程 p3 译码输出 “100111,”显示在数码管上即为 “3;

6、”当 CNT8 扫完时,将能在 8 个数码 管上显示数据: 13579BDF。五 VHDL实验参考程序程序清单 scan_led.VHDLLibrary ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity scan_led isPort(clk:in std_logic;sg:out std_logic_vector(6 downto 0); bt:out std_logic_vector(7 downto 0);end; architecture one of scan_led issignal cn

7、t8:std_logic_vector(2 downto 0);signal a:integer range 0 to 15; begin p1:pricess(cnt8)begincase cnt8 iswhen ”000” = bt bt bt bt bt bt=00000001”;a=1;0000;0a01=03”;00000100”;a=5;00001000”;a=7;00010000”;a=9;00100000”;a bt= ”01000000”;a bt= ”10000000”;a null;end case;end process p1;p2:process(clk)begini

8、f clk event and clk= end if ;end process p2; p3:process(a)bengincase a iswhen 0=sgsgsgsgsgsgsgsgnull;end case; end process p3; end; 1-cthnet8n+ c1n; t8sgsgsgsgsgsgsgsgNew 打开新建文件对话框,在该对话框中选择 VHDL File ,单击 Ok 建立一个空的 VHDL 文件。在 Quartus II6.0 主界面中选择 File-Save As 改名为 Adder.vhd 并保存。步骤三 :输入 VHDL代码参考实验程序。步骤四

9、 :最后进行器件型号选择、分配引脚、编译、时序仿真、编程下载建议选实验电路模式 1,键 2/键 1(PIO7-PIO1)负责输入 8 为位预 置数 D:CLK 由 clock0输入,频率可选 65536Hz 或更高(确保分频后落 在音频范围);输出 FOUT 接扬声器(SPEAk)。改变键 2/键 1 的输入值, 可听到不同音调的声音。五 VHDL实验参考程序程序清单 pulse.VHDLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY pulse ISPORT(CLK:IN STD_

10、LOGIC;D :IN STD_LOGIC;FPUT: OUT STD_LOGIC);ARCHITECTURE one OF pulse ISSIGNAL FULL :STD_LOGIC;BEGINP_REG:PROCESS(CLK)VARIABLE CNT8:STD_LOGIC_VECTOR(7 DOWNTPO 0);BEGINIF CLKEVENT AND CLK= 1 THENIF CNT8= “11111111”THENCNT8:=D;FULL=1;ELSE CNT8:=CNT8+1;FULL=0;END IF;END IF;END PROCESS P_REG;P_DIV:PROCES

11、S(FULL)VARIABLE CNT2:STD_LOGIC;BEGINIF FULL EVENTAND FULL=1THEN CNT2:=NOT CNT2IF CNT2= 1 THEN FOUT=1 ELSE FOUTNew 打开新建文件对话框,在该对话框中选择 VHDL File ,单击 Ok 建立一个空的 VHDL 文件。在 Quartus II6.0 主界面中选择 File-Save As 改名为 Adder.vhd 并保存。步骤三 :输入 VHDL代码参考实验程序。步骤四 :最后进行器件型号选择、分配引脚、编译、时序仿真、编 程下载。建议选择实验电路模式 8,用键 7(PIO11)控

12、制复位信号 CLR ; 键 6(PIO9)控制状态机工作时钟 CLK ;待检测的串行序列数输入 DIN 接 PIO10(左移,最高位在前 ) ;指示输出 AB 接 PIO39-PIO36(显示于数 码管 6)。下载后, 1、按实验板 “系统复位”键; 2、用键 2和键 1输入 2 位十六进制数待则序列数 “11100101;”3、按键 7 复位(平时数码 6 显示“B”);4、按键 6(CLK )8次,这时若串行输入的 8位二进制序列码 (显 示于数码 2/1和发光管 D8-D0)与预置码“11100101相”同,则数码 6应从 原来的 “B”变成“A”表示序列检测正确,否则仍为 “B五、VH

13、DL实验参考程序程序清单 schk.VHDLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY schk ISPORT(DIN,CLK,CLR:IN STD_LOGIC;AB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END schk;ARCHITECTURE behave OF schk ISSIGNAL Q:INTEGER RANGE 0 TO 8;SIGNAL D:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIND=”11100101”;PROCESS(CLK,CLR)BEGINIF CLR= 1 T

14、HEN Q IF DIN=D(7) THEN Q=1; ELSE Q IF DIN=D(6) THEN Q=2; ELSE Q IF DIN=D(5) THEN Q=3; ELSE Q IF DIN=D(4) THEN Q=4; ELSE Q IF DIN=D(3) THEN Q=5; ELSE Q IF DIN=D(2) THEN Q=6; ELSE Q IF DIN=D(1) THEN Q=7; ELSE Q IF DIN=D(0) THEN Q=8; ELSE QQ=0;END CASE;END IF;END PROCESS;PROCESS(Q)BEGINIF Q=8 THEN AB= ”1010”;ELSE AB=” 1011”;END IF;END PROCESS;END behave;六 实验结果截图1. 程序截图:2. 时序仿真波形学生实验心得本学期我们对 EDA 技术实用教程 VHDL 版一书进行了较 为深入的理论学习。同时,我们也进行进行了相关实验,将所学的理 论知识与实践相结合在一起,在实践中继续学习,不断总结,不断反 思,逐步完善,有所创新,并在实践中提高自己,在现有的实验条件 下,我们有选择的从众多实验中挑选并进行了 4 项实验来检验一学期 所学,这四项实验分别是 8 位硬件加法器 VHDL设计、动态数码管显示, 数控分频器的设计,用状态机实现序列

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论