EDA实验报告姓名:学号:班级:实验14选1数据选择器的设计一、实验目的1.学习EDA软件的基本操作。
2.学习使用原理图进行设计输入。
3.初步掌握器件设计输入、编译、仿真和编程的过程。
4.学习实验开发系统的使用方法。
二、实验仪器与器材1.EDA开发软件一套2.微机一台3.实验开发系统一台4.打印机一台三、实验说明本实验通过使用基本门电路完成4选1数据选择器的设计,初步掌握EDA设计方法中的设计输入、编译、综合、仿真和编程的过程。
实验结果可通过实验开发系统验证,在实验开发系统上选择高、低电平开关作为输入,选择发光二极管显示输出电平值。
本实验使用Quartus II 软件作为设计工具,要求熟悉Quartus II 软件的使用环境和基本操作,如设计输入、编译和适配的过程等。
实验中的设计文件要求用原理图方法输入,实验时,注意原理图编辑器的使用方法。
例如,元件、连线、网络名的放置方法和放大、缩小、存盘、退出等命令的使用。
学会管脚锁定以及编程下载的方法等。
四、实验要求1.完成4选1数据选择器的原理图输入并进行编译;2.对设计的电路进行仿真验证;3.编程下载并在实验开发系统上验证设计结果。
五、实验结果4选1数据选择器的原理图:仿真波形图:管脚分配:实验2 四位比较器一、实验目的1.设计四位二进制码比较器,并在实验开发系统上验证。
2.学习层次化设计方法。
二、实验仪器与器材1.EDA 开发软件 一套2.微机 一台3.实验开发系统 一台4.打印机 一台5.其它器件与材料 若干三、实验说明本实验实现两个4位二进制码的比较器,输入为两个4位二进制码0123A A A A 和0123B B B B ,输出为M (A=B ),G (A>B )和L (A<B )(如图所示)。
用高低电平开关作为输入,发光二极管作为输出,具体管脚安排可根据试验系统的实际情况自行定义。
四、实验要求1.用硬件描述语言编写四位二进制码 比较器的源文件; 2.对设计进行仿真验证; 3.编程下载并在实验开发系统上进行 硬件验证。
四位比较器功能框图五、实验结果四位比较器VHDL 源文件:library ieee;use ieee.std_logic_1164.all;entity comp4 isport( 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 isbeginp1: process(A3,A2,A1,A0,B3,B2,B1,B0)variable comb1,comb2: std_logic_vector(3 downto 0);begincomb1:=A3&A2&A1&A0;3A 2A 1A 0A B B Bcomb2:=B3&B2&B1&B0;if(comb1>com2) then G<=’1’; M<=’0’; L<=’0’;elsif(comb1<comb2) then M<=’1’; G<=’0’; L<=’0’;else L<=’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位二进制数加法器,其功能框图如图所示。
试验时用高低电平开关作为输入,用数码管作为输出(或用发光二极管),管脚锁定可根据试验系统自行安排。
四、实验要求1234五、试验结果4library ieee;entity adder4 iscin: 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 isbeginp1:process(a,b,cin)variable vsum: std_logic_vector(3 downto 0);variable carry: std_logic;begincarry:=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; co全加器功能框图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 isbeginprocess(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 isbeginprocess(insign)begincase insign iswhen"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 issignal count7:integer range 0 to 6;beginprocess(clk,reset)beginif reset='1' then count7<=0;elsif clk'event and clk='1' thenif count7<6 thencount7<=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;仿真波形图:管脚分配:用VHDL设计七人表决器实验原理用个开关作为表决器的7个输入变量,输入变量为‘1’时表示“赞同”;输入变量为‘0’时表示不赞同。