eda实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA技术与VHDL 实验报告
电气工程系
电子信息工程
实验一:1位全加器设计
实验目的:
1.学习QuartusII9.1集成开发环境的使用方法以及如何建立工程和文件;
2.用原理图输入设计法和VHDL 文本输入设计法设计1位全加器;
3.通过电路仿真和硬件验证,进一步了解1位全加器的功能 实验内容:
用原理图输入设计法和VHDL 文本输入设计法分别设计1位全加器,并下载到CH4实验箱上运行。 实验原理:1位全加器可以由两个半加器和一个或门连接而成,因而可根据半加器的电路(如
图3-1所示)或真值表写出或门和半加器的VHDL 描述。然后根据图3-2写出全加器的顶层描述。
I113co
a so
b
1
0101
0110001
100co so b a not
xnor2
and2
图3-1 半加器h_adder 电路图及其真值表
I113
ain cout cout ain bin sum
cin
bin sum
cin
f_adder
or2a
f e d
u3u2u1b
a c
co so
B
co so
B
h_adder A h_adder
A
图3-2 全加器f_adder 电路图及其实体模块 实验步骤:
1.打开实验箱电源;
2.输入移位寄存器VHDL 程序;
3.点击
图标,进行分析和综合;
4. 建立波形文件,进行功能仿真; 5.按接线图配置FPGA 引脚; 6.点击图
标,进行编译;
7.下载****.sof 配置文件到EP3C16Q240C8中;
1 半加器的vhdl 描述有两种,我用的是下面这种,布尔函数描述法:
(1)布尔函数描述方法的VHDL 源程序如下:
LIBRARY IEEE; --半加器描述(1):布尔方程描述方法 USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS
PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC);
END ENTITY h_adder;
ARCHITECTURE fh1 OF h_adder is
BEGIN
so <= NOT(a XOR (NOT b)) ; co <= a AND b ;
END ARCHITECTURE fh1;
(2)或门逻辑描述:
LIBRARY IEEE ; --或门逻辑描述
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY or2a IS
PORT (a, b :IN STD_LOGIC;
c : OUT STD_LOGIC );
END ENTITY or2a;
ARCHITECTURE one OF or2a IS
BEGIN
c <= a OR b ;
END ARCHITECTURE one ;
(3)1位二进制全加器顶层设计描述:
LIBRARY IEEE; --1位二进制全加器顶层设计描述
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY f_adder IS
PORT (ain,bin,cin : IN STD_LOGIC;
cout,sum : OUT STD_LOGIC );
END ENTITY f_adder;
ARCHITECTURE fd1 OF f_adder IS
COMPONENT h_adder --调用半加器声明语句
PORT ( a,b : IN STD_LOGIC;
co,so : OUT STD_LOGIC);
END COMPONENT ;
COMPONENT or2a
PORT (a,b : IN STD_LOGIC;
c : OUT STD_LOGIC);
END COMPONENT;
SIGNAL d,e,f : STD_LOGIC; --定义3个信号作为内部的连接线。
BEGIN
u1 : h_adder PORT MAP(a=>ain,b=>bin,co=>d,so=>e);
--例化语句
u2 : h_adder PORT MAP(a=>e,b=>cin,co=>f,so=>sum);
u3 : or2a PORT MAP(a=>d,b=>f,c=>cout);
END ARCHITECTURE fd1;
实验结果:
实验二:移位寄存器模块
实验目的:
1 设计8位CPU设计中常用的移位寄存器模块
2 用case语句设计并行输入输出的移位寄存器
3 体会信号赋值的特性
实验内容:
编写移位寄存器的VHDL实现程序;通过电路仿真和硬件验证,进一步了解移位寄存器的功能。
设计原理:
Library IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY SHIFT IS
PORT (CLK,C0 : IN STD_LOGIC; --时钟和进位输入
MD : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
--移位模式控制字
D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
--待加载移位的数据
QB : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --移位数据输出
CN : OUT STD_LOGIC); --进位输出