EDA实验报告四选一四位比较器加法器计数器巴克码发生器.docx
试验14 选 1 数据选择器的设计一、试验目的1. 学习 EDA 软件的根本操作。2. 学习使用原理图进展设计输入。3. 初步把握器件设计输入、编译、仿真和编程的过程。4. 学习试验开发系统的使用方法。二、试验仪器与器材1. EDA 开发软件一套2. 微机一台3. 试验开发系统一台4. 打印机一台三、试验说明本试验通过使用根本门电路完成 4 选 1 数据选择器的设计,初步把握EDA 设计方法中的设计输入、编译、综合、仿真和编程的过程。试验结果可通过试验开发系统验证,在试验开发系统上选择高、低电平开关作为 输入,选择发光二极管显示输出电平值。本试验使用 Quartus II 软件作为设计工具,要求生疏 Quartus II 软件的使用环境和根本操作,如设计输入、编译和适配的过程等。试验中的设计文件要求用原理图方法输入,试验时,留意原理图编辑器的使用方法。例如,元件、连线、网络名的放置方法和放大、缩小、存 盘、退出等命令的使用。学会管脚锁定以和编程下载的方法等。四、试验要求10 / 171. 完成 4 选 1 数据选择器的原理图输入并进展编译;2. 对设计的电路进展仿真验证;3. 编程下载并在试验开发系统上验证设计结果。五、试验结果4 选 1 数据选择器的原理图:仿真波形图:管脚安排:试验2四位比较器一、试验目的 1设计四位二进制码比较器,并在试验开发系统上验证。2学习层次化设计方法。二、试验仪器与器材1. EDA 开发软件一套2. 微机一台3. 试验开发系统一台4. 打印机一台5. 其它器件与材料假设干三、试验说明本试验实现两个 4 位二进制码的比较器,输入为两个 4 位二进制码A A A A 和B B B B ,输出为 MA=B,GA>B和 LA<B如32103210图所示。用凹凸电平开关作为输入,发光二极管作为输出,具体管脚安 排可依据试验系统的实际状况自行定义。四、试验要求GCOMP4MA31. 用硬件描述语言编写四位二进制码A2比较器的源文件;A12. 对设计进展仿真验证;A03. 编程下载并在试验开发系统上进展B3硬件验证。B2LB1能框图五、试验结果四位比较器 VHDL 源文件:library ieee;use ieee.std_logic_1164.all; entity comp4 isB0四位比较器功port( A3,A2,A1,A0: in std_logic; B3,B2,B1,B0: in std_logic; G,M,L: out std_logic);end comp4;architecture behave of comp4 is beginp1: process(A3,A2,A1,A0,B3,B2,B1,B0)variable comb1,comb2: std_logic_vector(3 downto 0); begincomb1:=A3&A2&A1&A0; comb2:=B3&B2&B1&B0;if(comb1>com2) then G<=1; M<=0; L<=0; elsif(comb1<comb2) then M<=1; G<=0; L<=0;elseL<=1; G<=0; M<=0;end if;end process p1; end behave;仿真波形图:管脚安排:试验3并行加法器设计一、试验目的1. 设计一个 4 位加法器。2. 体会用 VHDL 进展规律描述的优点。3,生疏层次化设计方法。二、试验仪器与器材1. EDA 开发软件一套2. 微机一台3. 试验开发系统一台4. 打印机一台5. 其他器材和材料假设干三、试验说明本试验实现一个 4 位二进制数加法器,其功能框图如以下图。试验时用凹凸电平开关作为输入,用数码管作为输出或用发光二极管,管脚 a3锁定可依据试验系统自行安排。a2 a1a0s3 s2 s1s0b3 b2 b1b0adder4cico全加器功能框图四、试验要求1. 用硬件描述语言编写 4 位二进制数全加器的源文件;2. 对设计文件进展编译;3. 仿真设计文件;4. 编程下载并进展试验验证。五、试验结果4 位二进制全加器的源文件: library ieee;use ieee.std_logic_1164.all; entity adder4 isport(a,b: in std_logic_vector(3 downto 0); cin: in std_logic_vector(3 downto 0); sum: out std_logic_vector(3 downto 0); count: out std_logic);end adder4;architecture behavioral of adder4 is beginp1:process(a,b,cin)variable vsum: std_logic_vector(3 downto 0); variable carry: std_logic;begin carry:=cin;for i in 0 to 3 loopvsum(i):=(a(i) xor b(i) xor carry;carry:=(a(i) and b(i) or (carry and (a(i) or b(i); end loop;sum<=vsum; count<=carry; end process p1;end behavioral; 仿真波形图:管脚安排:试验4计数器设计一、试验目的计数器是实际中最为常用的时序电路模块之一,本试验的主要目的是 把握使用 HDL 描述计数器类型模块的根本方法。二、试验仪器与器材1. EDA 开发软件一套2. 微机一台3. 试验开发系统一台4. 打印机一台5. 其他器材与材料假设干三、试验说明计数器是数字电路系统中最重要的功能模块之一,设计时可以承受原理图或 HDL 语言完成。下载验证时的计数时钟可选连续或单脉冲,并用数码管显示计数值。四、试验要求1. 设计一个带有计数允许输入端、复位输入端和进位输入端的十进制计数器。2. 编制仿真测试文件,并进展功能仿真。3. 下载并验证计数器功能。4. 为上述设计建立元件符号。5. 在上述根底上分别设计按 8421BCD 码和二进制计数的 100 进制同步计数器。五、试验结果十进制计数器程序: library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity counter10 isport(en,reset,clk:in std_logic;q:buffer std_logic_vector(3 downto 0); co:out std_logic);end counter10;architecture behav of counter10 is beginprocess(clk,en) beginif clk”event and clk=”1” thenif reset=”1” then q<=“0000“; elsif en=”1” thenif q<“1001“ then q<=q+”1”;else q<=“0000“;end if; end if; end if;end process;co<=”1” when q=“1001“ else ”0”; end behav;仿真波形图:管脚安排:4_7 译码器程序: library ieee;use ieee.std_logic_1164.all; entity decoder4_7 isport( insign: in std_logic_vector (3 downto 0); outsign: out std_logic_vector (6 downto 0);end decoder4_7;architecture behave of decoder4_7 is beginprocess(insign) begincase insign is when“0000“=>outsign<=“0000001“; when “0001“=>outsign<=“1001111“; when “0010“=>outsign<=“0010010“; when “0011“=>outsign<=“0000110“; when “0100“=>outsign<=“1001100“; when “0101“=>outsign<=“0100100“; when “0110“=>outsign<=“1100000“; when “0111“=>outsign<=“0001111“; when “1000“=>outsign<=“0000000“; when “1001“=>outsign<=“0001100“; when OTHERS=>outsign<=“1111111“; end case;end process; end behave ;100 进制计数器原理图:仿真波形图:管脚安排:试验5巴克码发生器一、试验目的 1实现一个在通信领域中常常使用的巴克码发生器。2把握用大规模可编程规律器件实现时序电路的方法。 二、试验仪器与器材1. EDA 开发软件一套2. 微机一台3. 试验开发系统一台4. 打印机一台5. 其它器件与材料假设干三、试验说明巴克码发生器在数据通信、雷达和遥控领域有相当广泛的应用。它能自动产生周期性的序列码。本试验要求产生的序列码信号为1110010,可以用存放器或同步时序电路实现。为了能够通过试验开发系统验证试验结果,可以使用两个输入端,其中一个输出端同时输出巴克码,另一个输出端输出节拍。巴克码发生器的功能框图如以下图。四、试验要求 1写出全部设计文件。2. 编写测试向量,进展功能仿真。3. 下载并用试验板验证。五、试验结果巴克码发生器程序: library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all; entity back isport(clk,reset:in std_logic; dout1,dout2:out std_logic);end back;architecture behave of back is signal count7:integer range 0 to 6;beginprocess(clk,reset) beginif reset=”1” then count7<=0; elsif clk”event and clk=”1” thenif count7<6 then count7<=count7+1; else count7<=0;end if; end if; dout2<=clk;end process; process(count7)begincase count7 iswhen 0=>dout1<=”1”; when 1=>dout1<=”1”;when 2=>dout1<=”1”; when 3=>dout1<=”0”; when 4=>dout1<=”0”; when 5=>dout1<=”1”; when 6=>dout1<=”0”; when others=>dout1<=”0”; end case;end process; end behave;仿真波形图:管脚安排: