《EDA实验报告(四选四位比较器、加法器、计数器、巴克码发生器).docx》由会员分享,可在线阅读,更多相关《EDA实验报告(四选四位比较器、加法器、计数器、巴克码发生器).docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、EDA 试验报告试验14 选 1 数据选择器的设计一、试验目的1. 学习EDA 软件的根本操作。2. 学习使用原理图进展设计输入。3. 初步把握器件设计输入、编译、仿真和编程的过程。4. 学习试验开发系统的使用方法。二、试验仪器与器材1. EDA 开发软件一套2. 微机一台3. 试验开发系统一台4. 打印机一台三、试验说明本试验通过使用根本门电路完成 4 选 1 数据选择器的设计,初步把握EDA 设计方法中的设计输入、编译、综合、仿真和编程的过程。试验结果可通过试验开发系统验证,在试验开发系统上选择高、低电平开关作为输入,选择发光二极管显示输出电平值。本试验使用Quartus II 软件作为设
2、计工具,要求生疏 Quartus II 软件的使用环境和根本操作,如设计输入、编译和适配的过程等。试验中的设计文件要求用原理图方法输入,试验时,留意原理图编辑器的使用方法。 例如,元件、连线、网络名的放置方法和放大、缩小、存盘、退出等命令的使用。学会管脚锁定以及编程下载的方法等。四、试验要求1. 完成 4 选 1 数据选择器的原理图输入并进展编译;2. 对设计的电路进展仿真验证;3. 编程下载并在试验开发系统上验证设计结果。五、试验结果4 选 1 数据选择器的原理图:仿真波形图:管脚安排:试验2四位比较器一、试验目的1. 设计四位二进制码比较器,并在试验开发系统上验证。2. 学习层次化设计方法
3、。二、试验仪器与器材1. EDA 开发软件一套2. 微机一台3. 试验开发系统一台4. 打印机一台5. 其它器件与材料假设干三、试验说明本试验实现两个 4 位二进制码的比较器,输入为两个 4 位二进制码 A A A A 和3210B B B B ,输出为 MA=B,GAB和 LAB) then G=”1”;M=”0”;L=”0”;elsif (AB) then G=”0”;M=”0”;L=”1”;elsif (A=B) then G=”0”;M=”1”;L=”0”;else G=”1”;M=”1”;L=”1”;end if; end process p1;end behave;仿真波形图:管脚
4、安排:试验3并行加法器设计一、试验目的1. 设计一个 4 位加法器。2. 体会用VHDL 进展规律描述的优点。3,生疏层次化设计方法。二、试验仪器与器材1. EDA 开发软件一套2. 微机一台3. 试验开发系统一台4. 打印机一台5. 其他器材和材料假设干三、试验说明本试验实现一个 4 位二进制数加法器,其功能框图如以下图。试验时用凹凸电平开关作为输入,用数码管作为输出或用发光二极管,管脚锁定可依据试验系统自行安排。3a2a1 a0s3 s2 s1s0b3 b2 b1b0adder4ciaco全加器功能框图四、试验要求1. 用硬件描述语言编写 4 位二进制数全加器的源文件;2. 对设计文件进展
5、编译;3. 仿真设计文件;4. 编程下载并进展试验验证。五、试验结果4 位二进制全加器的源文件:library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all; entity add4 isport (a:in std_logic_vector(3 downto 0);end add4;b:in std_logic_vector(3 downto 0); ci:in std_logic;s:out std_logic_vector(3 downto 0)
6、; co:out std_logic);architecture behave of add4 issignal aa,bb,sum: std_logic_vector(4 downto 0); beginaa=”0”& a; bb=”0”& b; sum=aa+bb+ci; s=sum(3 downto 0); co=sum(4);end behave;仿真波形图:管脚安排:试验4计数器设计一、试验目的计数器是实际中最为常用的时序电路模块之一,本试验的主要目的是把握使用HDL 描述计数器类型模块的根本方法。二、试验仪器与器材1. EDA 开发软件一套2. 微机一台3. 试验开发系统一台4.
7、打印机一台5. 其他器材与材料假设干三、试验说明计数器是数字电路系统中最重要的功能模块之一,设计时可以承受原理图或HDL 语言完成。下载验证时的计数时钟可选连续或单脉冲,并用数码管显示计数值。四、试验要求1. 设计一个带有计数允许输入端、复位输入端和进位输入端的十进制计数器。2. 编制仿真测试文件,并进展功能仿真。3. 下载并验证计数器功能。4. 为上述设计建立元件符号。5. 在上述根底上分别设计按 8421BCD 码和二进制计数的 100 进制同步计数器。五、试验结果十进制计数器程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_
8、logic_unsigned.all;entity counter10 is port(reset,clk,en: in bit; co: out bit;q: out std_logic_vector(0 to 3);end entity counter10;architecture ar_counter10 of counter10 is signal cq: std_logic_vector(0 to 3);beginp1:process (clk,en,reset)variable cnt: integer range 0 to 10 :=0 ; beginif (reset=”0”)
9、 thenif (clk”event and clk=”1”) then if ( en=”1” ) thencnt:=cnt+1;cq =cq+1;if (cnt=10) then co=”1”;cnt:=0; cq=“0000“;else co=”0”;end if; end if;end if;elsecnt:=0; co=”0”; cq=“0000“;end if; q=cq;end process p1;end architecture ar_counter10;仿真波形图:管脚安排:4_7 译码器程序:library ieee;use ieee.std_logic_1164.all
10、; use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all; entity BCD isport (a:in std_logic_vector(3 downto 0); b:out std_logic_vector(6 downto 0);end BCD;architecture rt of BCD issignal indata:std_logic_vector(3 downto 0); beginindata b b b b b b b b b b b =“1111111“; end case;end process; en
11、d rt;BCD 引脚安排BCD 仿真波形分频器程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpinqi is port(clk: in bit;oclk: out bit);end entity fenpinqi;architecture ar_fpq of fenpinqi is signal inclk: bit;signal number: integer range 0 to 30000000 :=0; beginp0:process (clk) beginif
12、 (clk”event and clk=”1”) thenif (number=24999999) then number=0; inclk=not inclk;else number=number+1; inclk=inclk;end if; end if; oclk=inclk; end process p0;end architecture ar_fpq;10 进制计数器原理图100 进制计数器原理图:仿真波形图:管脚安排:100 进制计数器的另一种做法:100 进制计数器程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_l
13、ogic_unsigned.all;entity counter100 is port(reset,clk,en: in bit; co: buffer bit;coo: out bit;qb: out std_logic_vector(0 to 3); qa: out std_logic_vector(0 to 3);end entity counter100;architecture ar_counter of counter100 is signal bq: std_logic_vector(0 to 3); signal cq: std_logic_vector(0 to 3); be
14、ginp1:process (clk,en,reset)variable cnt: integer range 0 to 10 :=0 ; beginif (reset=”0”) thenif (clk”event and clk=”1”) then if ( en=”1” ) thencnt:=cnt+1; cq =cq+1;if (cnt=10) then co=”1”;cnt:=0; cq=“0000“;else co=”0”;end if; end if;end if;else cnt:=0; co=”0”;cq=“0000“;end if; qa=cq;end process p1;
15、 p3:process(co)variable cnt1: integer range 0 to 10 :=0 ;beginif (reset=”0”) thenif (co=”1”) thencnt1:=cnt1+1; bq =bq+1;if (cnt1=10) then coo=”1”; cnt1:=0; bq=“0000“;else coo=”0”; end if;else cnt1:=0; coo=”0”;end if;bq=“0000“;end if; qb=bq;end process p3;end architecture ar_counter;100 进制计数器原理图试验5巴克
16、码发生器一、试验目的1. 实现一个在通信领域中常常使用的巴克码发生器。2. 把握用大规模可编程规律器件实现时序电路的方法。二、试验仪器与器材1. EDA 开发软件一套2. 微机一台3. 试验开发系统一台4. 打印机一台5. 其它器件与材料假设干三、试验说明巴克码发生器在数据通信、雷达和遥控领域有相当广泛的应用。它能自动产生周期性 的序列码。本试验要求产生的序列码信号为1110010,可以用存放器或同步时序电路实现。为了能够通过试验开发系统验证试验结果,可以使用两个输入端,其中一个输出端同时输出 巴克码,另一个输出端输出节拍。巴克码发生器的功能框图如以下图。四、试验要求1. 写出全部设计文件。2
17、. 编写测试向量,进展功能仿真。3. 下载并用试验板验证。五、试验结果巴克码发生器程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity BAKE is port (reset,clk : in bit; bakemaout : out bit);end entity BAKE;architecture ar_bakema of BAKE is signal con: integer range 0 to 8 :=0; beginprocess (clk,reset) beginif (reset=”1”) then con=0;elsif (clk”event and clk=”1”) then if (con7) then con=con+1;elseend if;con bakemaout bakemaout bakemaout bakemaout bakemaout bakemaout bakemaout bakemaout null;end case; end process;end architecture ar_bakema;巴克码原理图仿真波形图:管脚安排:
限制150内