电子设计自动化
实验报告
电子设计自动化实验报告
实验1 4选1数据选择器的设计
1.1 实验目的
1.学习 EDA软件的基本操作。 2.学习使用原理图进行设计输入。
3.初步掌握器件设计输入、编译、仿真和编程的过程。 4.学习实验开发系统的使用方法。 1.2 实验仪器与器材
1.EDA开发软件 2.微机 3.实验开发系统 1.3 实验说明
本实验通过使用基本门电路完成4选1数据选择器的设计,初步掌握EDA设计方法中的设计输入、编译、综合、仿真和编程的基本过程。实验结果可通过实验开发系统验证,在实验开发系统上选择高、低电平开关作为输入,选择发光二极管显示输出电平值。
本实验使用Quartus II软件作为设计工具,要求熟悉或Quartus II软件的使用环境和基本操作,如设计输入、编译和适配的过程等。
实验中的设计文件要求用原理图方法输入,实验时,注意原理图编辑器的使用方法。例如,元件、连线、网络名的放置方法和放大、缩小、存盘、退出等命令的使用。学会管脚锁定以及编程下载的方法等。 1.4 实验要求
1.完成4选1数据选择器的原理图输入并进行编译; 2.对设计的电路进行仿真验证;
3.编程下载并在实验开发系统上验证设计结果。 1.5 实验报告要求
1.画出编译通过后的原理图; 2.绘出仿真波形图; 3. 管脚分配情况。
1.6实验报告内容:
1、编译通过后的原理图:
一套 一台 一台
2、仿真波形图:
在实验室遇到波形的功能仿真报错问题,解决问题后在自己电脑上仿真波形如上。 3、管脚分配情况列表: d0:SW2 PIN_P25 d1:SW3 PIN_AE14 d2:SW4 PIN_AF14 d3:SW5 PIN_AD13 o:LEDR0 PIN_AE23 s0:SW0 PIN_N25 s1:SW1 PIN_N26
4、生成符号图:
实验2 四位比较器
2.1 实验目的
1.设计四位二进制码比较器,并在实验开发系统上验证。 2. 学习文本输入HDL文件的设计方法。 2.2 实验仪器与器材
1.EDA开发软件 2.微机 3.实验开发系统 4.打印机 2.3 实验说明
本实验实现两个4位二进制码的比较器(功能框图如右图),输入为两个4位二进制码A3 A2 A1 A0 和B3 B2 B1 B0, 输出为M(A=B),G(A>B)和L(AA3 A2 A1 A0
COMP4
一套 一台 一台 一台
G
M
B3
B2
2.4 实验要求
B1
1.用硬件描述语言编写4位二进制码比较器的源文 B0
L
件;
2.对设计进行仿真验证; 3.编程下载并在实验开发系统上进行硬件验证。 2.5 实验报告要求
1.写出比较器的HDL源文件; 2.写出仿真结果; 3.管脚分配情况。
2.6实验报告内容:
1、比较器的VHDL源文件:
library ieee;
use ieee.std_logic_11.all; entity my_compare is
port( A3,A2,A1,A0: in std_logic; B3,B2,B1,B0: in std_logic; G,M,L: out std_logic); end my_compare;
architecture behave of my_compare is begin
p1: process(A3,A2,A1,A0,B3,B2,B1,B0)
variable comb1,comb2: std_logic_vector(3 downto 0); begin
comb1:=A3&A2&A1&A0; comb2:=B3&B2&B1&B0;
if(comb1>comb2) then G<='1'; M<='0'; L<='0';
elsif(comb1 编译: 2、 功能仿真波形: 3、 管脚分配情况: A3:SW7 PIN_C13 A2:SW6 PIN_AC13 A1:SW5 PIN_AD13 A0:SW4 PIN_AF14 B3:SW3 PIN_AE14 B2:SW2 PIN_P25 B1:SW1 PIN_N26 B0:SW0 PIN_N25 G:LEDR2 PIN_AB21 M:LEDR1 PIN_AF23 L:LEDR0 PIN_AE23 实验3 并行加法器设计 3.1 实验目的 1.设计一个4位加法器。 2.体会用HDL进行逻辑描述的优点。 3.2 实验仪器与器材 1.EDA开发软件 一套 2.微机 一台 3.实验开发系统 一台 4.打印机 一台 5.其他器件与材料 若干 3.3 实验说明 本实验实现一个4位二进制数加法器,其功能框图如图8.2所示。实验时用高低电平开关作为输入,用数码管作为输出(或用发光二极管),管脚锁定可根据实验系统自行安排。 图8.2 全加器功能框图 3.4 实验要求 1.用硬件描述语言编写4位二进制数全加器的源文件; 2.对设计文件进行编译; 3.仿真设计文件。 4.编程下载并进行实验验证。 3.5 实验报告要求 1.写出全加器的HDL源文件; 2. 写出仿真和硬件测试结果; 3. 管脚分配情况。 3.6实验报告内容: 1、全加器的VHDL源文件: library ieee; use ieee.std_logic_11.all; entity adder4 is port(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 behave of adder4 is begin p1:process(a,b,cin) variable vsum: std_logic_vector(3 downto 0); variable carry: std_logic; begin carry:=cin(0); for i in 0 to 3 loop vsum(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 behave; 编译: 2.、功能仿真波形和硬件测试结果: 硬件测试: 硬件测试正常,实现全加器逻辑。 4、 管脚分配情况: a[3]:SW7 PIN_C13 a[2]:SW6 PIN_AC13 a[1]:SW5 PIN_AD13 a[0]:SW4 PIN_AF14 b[3]:SW3 PIN_AE14 b[2]:SW2 PIN_P25 b[1]:SW1 PIN_N26 b[0]:SW0 PIN_N25 sum[3]:LEDR3 PIN_AC22 sum[2]:LEDR2 PIN_AB21 sum[1]:LEDR1 PIN_AF23 sum[0]:LEDR0 PIN_AE23 cin:SW17 PIN_V2 count:LEDG7 PIN_Y18 实验4 计数器设计 4.1 实验目的 计数器是实际中最为常用的时序电路模块之一,本实验的主要目的是掌握使用HDL描述计数器类型模块的基本方法。 4.2 实验仪器与器材 1.EDA开发软件 一套 2.微机 一台 3.实验开发系统 一台 4.打印机 一台 5.其他器件与材料 若干 4.3 实验说明 计数器是数字电路系统中最基本的功能模块之一,设计时可以采用原理图或HDL语言完成。 下载验证时的计数时钟可选用连续或单脉冲,并用数码管显示计数值。 4.4 实验要求 1.设计一个带有计数允许输入端、复位输入端和进位输出端的10进制计数器。 2.编制仿真测试文件,并进行功能仿真。 3.下载并验证计数器功能。 4.为上述设计建立元件符号。 5. 选做:在上述基础上设计按8421BCD码计数的100进制同步计数器。 4.5 实验报告要求 1.画出原理图或写出 HDL语言源文件。 2.打印仿真波形。 3.管脚分配情况。 4.6实验报告内容: 1、VHDL语言描述: library ieee; use ieee.std_logic_11.all; use ieee.std_logic_unsigned.all; entity my_count is port(en,reset,clk:in std_logic; q:buffer std_logic_vector(3 downto 0); co:out std_logic); end my_count; architecture behave of my_count is begin process(clk,en) begin if clk'event and clk='1' then if reset='1' then q<=\"0000\"; elsif en='1' then if 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 behave; 编译: 2、仿真波形: 四线七线译码器: library ieee; use ieee.std_logic_11.all; entity decoder4_7 is port( 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 begin process(insign) begin case 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 ; 1、编译: 2、仿真: 十进制计数器: 1、原理图: 2、仿真波形: 3、管脚分配情况: clk KEY[2] PIN_P23 en SW1 PIN_N26 reset SW0 PIN_N25 co LEDG[7] PIN_Y18 outsign [0] HEX0[0] PIN_AF10 outsign [1] HEX0[1] PIN_AB12 outsign [2] HEX0[2] PIN_AC12 outsign [3] HEX0[3] PIN_AD11 outsign [4] HEX0[4] PIN_AE11 outsign [5] HEX0[5] PIN_V14 outsign [6] HEX0[6] PIN_V13 4、生成符号图: 百进制计数器: 1、 原理图: 2、 仿真波形: 3、 管脚分配情况: clk KEY[2] PIN_P23 en SW1 PIN_N26 reset SW0 PIN_N25 ql[0] HEX0[0] PIN_AF10 ql[1] HEX0[1] PIN_AB12 ql[2] HEX0[2] PIN_AC12 ql[3] HEX0[3] PIN_AD11 ql[4] HEX0[4] PIN_AE11 ql[5] HEX0[5] PIN_V14 ql[6] HEX0[6] PIN_V13 qh[0] HEX1[0] PIN_V20 qh[1] HEX1[1] PIN_V21 qh[2] HEX1[2] PIN_W21 qh[3] HEX1[3] PIN_Y22 qh[4] HEX1[4] PIN_AA24 qh[5] HEX1[5] PIN_AA23 qh[6] HEX1[6] PIN_AB24 co LEDG[7] PIN_Y18 4、生成符号图: 实验5 巴克码发生器 5.1 实验目的 1. 实现一个在通信领域中经常使用的巴克码发生器。 2.掌握用大规模可编程逻辑器件实现时序电路的方法。 5.2 实验仪器与器材 1.EDA开发软件 一套 2.微机 一台 3.实验开发系统 一台 4.打印机 一台 5.其他器件与材料 若干 5.3 实验说明 巴克码发生器在数据通信、雷达和遥控领域有相当广泛的应用。它能自动产生周期性的序列码。本实验要求产生的序列码信号为{1110010},可以用寄存器或同步时序电路实现。为了能够通过实验开发系统验证实验结果,可以使用两个输出端,其中一个输出端同时输出巴克码,另一个输出端输出节拍。巴克码发生器的功能框图见图8.4所示。 5.4 实验要求 1.写出全部设计文件。 2.编写测试向量,进行功能仿真。 3. 下载并用实验板验证。 5.5 实验报告要求 1.写出全部设计文件。 2.打印仿真报告和波形。 3.管脚分配情况。 CLK 巴克码输出 节拍指示 图8.4 巴克码发生器 5.6实验报告内容: 在实验中我使用VHDL语言描述来实现巴克马发生器的功能。 1、巴克码发生器VHDL源文件: library ieee; use ieee.std_logic_11.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity back is port(clk,reset:in std_logic; dout1,dout2:out std_logic); end back; architecture behave of back is signal count7:integer range 0 to 6; begin process(clk,reset) begin if reset='1' then count7<=0; elsif clk'event and clk='1' then if count7<6 then count7<=count7+1; else count7<=0; end if; end if; dout2<=clk; end process; process(count7) begin case count7 is when 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; 编译: 2、 仿真波形: 为了将巴克码清楚地显示,在巴克码发生器后的输出端dout1加以一线七线译码器,然后连接到数码管显示,输出时钟用LED灯显示即可。 一线七线译码器VHDL语言描述: library ieee; use ieee.std_logic_11.all; entity decoder1_7 is port( insign: in std_logic_vector (0 downto 0); outsign: out std_logic_vector (6 downto 0)); end decoder1_7; architecture behave of decoder1_7 is begin process(insign) begin case insign is when\"0\"=>outsign<=\"0000001\"; when \"1\"=>outsign<=\"1001111\"; when others=>outsign<=\"1111111\"; end case; end process; end behave ; 仿真: 巴克码发生器总连接图: 总连接图仿真波形: 3、管脚分配情况: clk:KEY[2] PIN_P23 reset:SW0 PIN_N25 dout1 [0] :HEX0[6] PIN_V13 dout1 [1] :HEX0[5] PIN_V14 dout1 [2] :HEX0[4] PIN_AE11 dout1 [3] :HEX0[3] PIN_AD11 dout1 [4] :HEX0[2] PIN_AC12 dout1 [5] :HEX0[1] PIN_AB12 dout1 [6] :HEX0[0] PIN_AF10 dout2:LEDG[7] PIN_Y18 4、生成符号图:
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务