EDA实验报告
姓名:
学号:
班级:
实验1 4选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位二进制码和,输出为M(A=B),G(A>B)和L(A<B)(如图所示)。用高低电平开关作为输入,发光二极管作为输出,具体管脚安排可根据试验系统的实际情况自行定义。
四、实验要求 1.用硬件描述语言编写四位二进制码 比较器的源文件; 2.对设计进行仿真验证; 3.编程下载并在实验开发系统上进行 硬件验证。四位比较器功能框图
五、实验结果
四位比较器VHDL源文件:
library ieee;
use ieee.std_logic_1164.all;
entity comp4 is
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
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>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位二进制数加法器,其功能框图如图所示。试验时用高低电平开关作为输入,用数码管作为输出(或用发光二极管),管脚锁定可根据试验系统自行安排。四、实验要求
1.用硬件描述语言编写4位二进制数全加器的源文件;
2.对设计文件进行编译;
3.仿真设计文件;
4.编程下载并进行试验验证。
五、试验结果
4位二进制全加器的源文件:
library ieee;
use ieee.std_logic_1164.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 behavioral of adder4 is
begin
p1: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 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 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 is
port(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
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 behav;
仿真波形图:
管脚分配:
4_7译码器程序:
library ieee;
use ieee.std_logic_1164.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 ;
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 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;
仿真波形图:
管脚分配:
以一位二进制全加器为基本元件,用例化语句写出8位并行二进制全加器的顶层文件,并讨论此加法器的电路特性。
电路结构图或原理图
电路功能描述
定义了8位二进制全加器顶层设计元件端口信号,输入端口:AIN, BIN,是八个二进制数,数据类型被定义为STD_LOGIC_VECTOR。 CIN是输入的进位,数据类型IN STD_LOGIC;输出端口:SUM为和,数据类型IN STD_LOGIC COUT为输出的进位。
程序1:一位二进制全加器设计顶层描述
功能:程序功能简介
程序2:8位并行二进制全加器顶层文件
功能:程序功能简介
选用器件型号cyclone
编译后使用器件资源情况、引脚配置情况(硬件实验)
仿真结果显示:
该 设计是成功的。输入的进位也要加上去。 0---255 全加器的COUNT 没有进位,而当加到256,COUNT=1,SUM输出0.
.1 编译不通过,检查后发现在建立工程时,同一工程的所有文件都必须放在同一文件夹中,而这一步没做。
2 程序中没有将文件名与实体名保持一致出错。输入半加器的VHDL程序保存文件,将输入的VHDL语言程序保存为h _adder.vhd.
3不知道如何将输入/输出引脚号都添加到矢量波形编辑窗口中。
解决办法:view—utility window—noder finder 将需要引脚拖拽。
实验4计数器及其应用一实验目的1学习用集成触发器构成计数器的方法2掌握中规模集成计数器的使用及功能测试方法二实验原理计数器是一个用…
实验四计数器的设计实验室实验台号日期专业班级姓名学号一实验目的1通过实验了解二进制加法计数器的工作原理2掌握任意进制计数器的设计方…
试验七计数器李*电子信息科学与技术一、试验目的1.掌握中规模集成计数器74LS160,161的逻辑功能及使用方法。2.掌握74LS…
四川大学电气信息学院电气工程及其自动化网络专升本实验报告实验课程:电工电子综合实践实验名称:计数器班级:05秋电气工程及其自动化姓…
计数器实验报告一实验内容1静态测试芯片74LS90的逻辑功能2动态测试芯片73LS90的芯片功能画出clk与其中一个输出的波形图3…
武汉轻工大学数学与计算机学院计算机组成原理实验报告题目4位二进制计数器实验专业软件工程班级130X班学号1305110XXX姓名X…
深圳大学实验报告实验课程名称数字电路与逻辑设计实验项目名称学院专业软件工程报告人学号班级指导教师实验时间实验报告提交时间教务处制实…
四位全加器11微电子黄跃1117426021实验目的采用modelsim集成开发环境利用verilog硬件描述语言中行为描述模式结…
4位全加器的设计实验报告班级通信122班学号120xx216姓名韦建萍一实验目的熟悉利用QuartusII的原理图输入方法设计简单…
EDA技术及应用实验报告一位全加器VHDL的设计班级XXX姓名XXX学号XXX一位全加器的VHDL设计一实验目的1学习MAXPLU…