EDA实验报告(1).docx

上传人:牧羊曲112 文档编号:3156087 上传时间:2023-03-11 格式:DOCX 页数:17 大小:43.46KB
返回 下载 相关 举报
EDA实验报告(1).docx_第1页
第1页 / 共17页
EDA实验报告(1).docx_第2页
第2页 / 共17页
EDA实验报告(1).docx_第3页
第3页 / 共17页
EDA实验报告(1).docx_第4页
第4页 / 共17页
EDA实验报告(1).docx_第5页
第5页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《EDA实验报告(1).docx》由会员分享,可在线阅读,更多相关《EDA实验报告(1).docx(17页珍藏版)》请在三一办公上搜索。

1、EDA实验报告EDA实验 实验一 用原理图输入法设计半加器 一、实验目的: v 1.熟悉利用Quartus的原理图输入方法设计简单组合电路; v 2.通过一个半加器的设计把握利用EDA软件进行电子线路设计的详细流程; v 3.学会对实验板上的FPGA/CPLD进行编程下载,硬件验证自己的设计项目。 二、实验器材: 1、计算机及操作系统 2、QUARTUS II软件 三、实验要求: v 1. 利用原理图输入法对半加器电路进行描述; v 2. 进行波形仿真测试; v 3. 严格按照实验步骤进行实验; v 4. 管脚映射按照芯片的要求进行。 四、实验原理 v 1.根据真值表写出电路的逻辑表达式 输入

2、 a 0 0 1 1 b 0 1 0 1 输出 So 0 1 1 0 Co 0 0 0 1 其中a, b 为输入端口,So 与Co 分别为半加器 和与进位。其逻辑表达式为: So=ab+ab=ab Co=ab v 2. 根据逻辑表达式进行原理图输入。 五、实验步骤: v 1. 为本项工程设计建立文件夹。注意文件夹 名不能用中文,且不可带空格。 v 2. 输入设计项目并存盘。 v 3. 将设计项目设计为工程文件。 v 4. 选择目标器件并编译。 v 5. 时序仿真。 v 6. 引脚锁定。 v 7. 编程下载。 实验二 用原理图法设计一位、四位全加器 一、实验目的: v 1. 熟悉利用Quartu

3、s 的原理图输入方法设计简单组合电路; v 2. 通过一个半加器的设计把握利用EDA 软件进行电子线路设计的详细流程; v 3. 学会对实验板上的FPGA/CPLD 进行编程下载,硬件验证自己的设计项目。 二、实验器材: 1、计算机及操作系统 2、QUARTUS II软件 三、实验要求: v 1.利用原理图输入法对一位全加器电路进行描述; v 2. 进行波形仿真测试; v 3. 严格按照实验步骤进行实验; 四、实验原理: v 利用实验一所设计的半加器设计一位全加器;利用设计封装好的一位全加器进行四位全加器的设计。 五、实验步骤: 与实验一相同。 六、实验报告: v 1. 要求画出一位、四位全加

4、器的真值表; v 2. 分析用半加器实现一位全加器的优点; v 3. 对波形进行分析,并绘制波形图。 实验三 用文本输入法设计D触发器和锁存器 一、实验目的: v 1. 熟悉Quartus 的VHDL 文本设计过程。 v 2. 学习简单时序电路的设计、仿真和硬件测试。 二、实验器材: 1、计算机及操作系统 2、Quartus II软件 三、实验要求: v 1.利用文本输入法对D触发器和锁存器电路进行描述; v 2.进行波形仿真测试; v 3.严格按照实验步骤进行实验; 四、实验原理: v 1. D 触发器的设计 设计源程序如下所示: LIBRARY IEEE; USE.IEEE.STD_LOG

5、IC_1164. ALL; ENTITY DFF1 IS PORT(CLK: IN STD_LOGIC ; D: IN STD_LOGIC ; Q: OUT STD_LOGIC ) ; END DFF1 ; ARCHITECTURE BHV OF DFF1 IS SIGNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = D ; END IF ; END PROCESS ; Q = Q1 ; END BHV ; v 2.锁存器的设计 设计源程序如下: LIBRARY IEEE; USE I

6、EEE. STD_LOGIC_1164. ALL; ENTITY DFF2 IS PORT (CLK: IN STD_LOGIC ; D: IN STD_LOGIC ; Q: OUT STD_LOGIC ) ; END DFF2 ; ARCHITECTURE BHV OF DFF2 IS BEGIN PROCESS (CLK, D) BEGIN IF CLK = 1 THEN Q = D ; END IF; END PROCESS; EDN BHV; 五、实验步骤: 与原理图输入法的步骤基本相同。 六、实验报告: 分析两个实验的仿真和测试结果,说明这两个电路的异同点。 实验四 含异步清0和同步

7、时钟使能的4位加法计数器 一、实验目的: v 学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。 二、实验器材: v 1、计算机及操作系统 2、QUARTUS II软件 三、实验要求: v 1.利用文本输入法对含异步清0和同步时钟使能的4位加法计数器进行描述; v 2.进行波形仿真测试; v 3.严格按照实验步骤进行实验; 四、实验原理 实验图中含计数使能、异步复位和计数值并行预置功能4位加法计数器 v 图中间是4位锁存器;rst是异步清信号,高电平有效;clk是锁存信号;D3.0是4位数据输入端。当ENA为1时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为0时将00

8、00加载于锁存器。 v 建议选“实验电路模式5”,用键8控制RST;用键7控制ENA;计数溢出COUT接发光管D8;OUTY是计数输出,接数码1;时钟CLK接clock0,通过短路帽选择4Hz信号。引脚锁定窗后进行编译、下载和硬件测试实验。将实验过程和实验结果写进实验报告。 v 参考程序如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT4B IS PORT (CLK : IN STD_LOGIC; RST : IN STD_LOGIC; ENA : IN STD_L

9、OGIC; OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT4B; ARCHITECTURE behav OF CNT4B IS SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN P_REG: PROCESS(CLK, RST, ENA) BEGIN IF RST = 1 THEN CQI = 0000; ELSIF CLKEVENT AND CLK = 1 THEN IF ENA = 1 THEN CQI = CQI + 1; END IF; END

10、 IF; OUTY = CQI ; END PROCESS P_REG ; -进位输出 COUT LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S NULL ; END CASE ; END PROCESS ; END ; 引脚锁定以及硬件下载测试。建议选实验电路模式6,用数码8显示译码输出,键8、键7、键6、键5四位控制输入,硬件验证译码器的工作性能。注意,在仿真中,4位输入A必须用总线方式给数据。 五、实验报告 根据以上的实验内容写出实验报告,包括程

11、序设计、软件编译、仿真分析、硬件测试和实验过程。 实验六 状态机对ADC0809的采样控制电路实现 一、实验目的: 学习用状态机对A/D转换器ADC0809的采样控制电路的实现。 二、实验器材: 1、计算机及操作系统 2、QUARTUS II软件 三、实验要求: v 1.利用状态机队ADC0809的采样控制电路进行描述; v 2.进行波形仿真测试; v 3.严格按照实验步骤进行实验; 四、实验原理 v ADC0809是CMOS的8位A/D转换器,片内有8路模拟开关,可控制8个模拟量中的一个进入转换器中。ADC0809的分辨率为8位,转换时间约100us,含锁存控制的8路多路开关,输出有三态缓冲

12、器控制,单5V电源供电。 主要控制信号说明:如图所示,START是转换启动信号,高电平有效;ALE是3位通道选择地址信号的锁存信号。当模拟量送至某一输入端,由3位地址信号选择,而地址信号由ALE锁存;EOC是转换情况状态信号,当启动转换约100us后,EOC产生一个负脉冲,以示转换结束;在EOC的上升沿后,若使输出使能信号OE为高电平,则控制打开三态缓冲器,把转换好的8位数据结果输至数据总线。至此ADC0809的一次转换结束了。 实验源程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADCINT IS PORT ( D: IN STD

13、_LOGIC_VECTOR(7 DOWNTO 0); -0809的8位转换数据输出 CLK ,EOC: IN STD_LOGIC; -CLK是转换工作时钟 LOCK1, ALE, START, OE, ADDA : OUT STD_LOGIC; Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END ADCINT; ARCHITECTURE behav OF ADCINT IS TYPE states IS (st0, st1, st2, st3,st4,st5,st6) ;-定义各状态子类型 SIGNAL current_state, next_state: s

14、tates :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK : STD_LOGIC;;- 转换后数据输出锁存时钟信号 BEGIN ADDA = 1; LOCK1 ALE=0;START=0;OE=0;LOCK=0 ; next_state ALE=1;START=0;OE=0;LOCK=0 ; next_state ALE=0;START=1;OE=0;LOCK=0 ; next_state ALE=0;START=0;OE=0;LOCK=0; IF (EOC=1) THEN next_state = st3; -

15、测试EOC的下降沿 ELSE next_state ALE=0;START=0;OE=0;LOCK=0; ; IF (EOC=0) THEN next_state = st4; -测试EOC的上升沿,=1表明转换结束 ELSE next_state ALE=0;START=0;OE=1;LOCK=0;next_state ALE=0;START=0;OE=1;LOCK=1;next_state ALE=0;START=0;OE=0;LOCK=0;next_state = st0; END CASE ; END PROCESS PRO ; PROCESS (CLK) BEGIN IF ( CLK

16、EVENT AND CLK=1) THEN current_state = next_state; - 在时钟上升沿,转换至下一状态 END IF; END PROCESS; - 由信号current_state将当前状态值带出此进程,进入进程PRO PROCESS (LOCK) - 此进程中,在LOCK的上升沿,将转换好的数据锁入 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL = D ; END IF; END PROCESS ; Q BT = “000000001” ; A BT = “000000010” ; A BT = “000000100” ; A

17、 BT = “000001000” ; A BT = “000100000” ; A BT = “001000000” ; A BT = “010000000” ; A BT = “1000000010” ; A NULL; END CASE; END PROCESS P1; P2: PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=1 THEN CNT8 SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG NULL; END CASE; END PROCESS P3; END; 2 提高部分 修改程序中的进程P1中的显示

18、数据直接给出的方式,增加8个4位锁存器,作为显示数据缓冲器,使得所有8个显示数据都必须来自缓冲器。缓冲器中的数据可以通过不同方式锁存,如来自A/D采样的数据、来自分时锁入的数据、来自串行方式输入的数据,或来自单片机等。 实验八 数控分频器的设计 一、实验目的 学习数控分频器的设计、分析和测试方法。 二、实验原理 数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比,例6-22的数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可。 三、实验内容 1:根据下图的波形提示,分析源程序中的各语句功能、设计原理、逻辑功能,

19、并详述进程P_REG和P_DIV的作用。 2:输入不同的CLK时钟频率和预置值D,并给出时序波形。 源程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY PULSE IS PORT ( CLK: IN STD_LOGIC; D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); FOUT: OUT STD_LOGIC ); END; ARCHITECTURE one OF PULSE IS SIGNAL FULL : STD_LOGIC; BEGIN P_RE

20、G: PROCESS(CLK) VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLKEVENT AND CLK = 1 THEN IF CNT8 = 11111111 THEN CNT8 := D; -当CNT8计数计满时,输入数据D被同步预置给计数器CNT8 FULL = 1; -同时使溢出标志信号FULL输出为高电平 ELSE CNT8 := CNT8 + 1;-否则继续作加1计数 FULL = 0; -且输出溢出标志信号FULL为低电平 END IF; END IF; END PROCESS P_REG ; P_DIV: P

21、ROCESS(FULL) VARIABLE CNT2 : STD_LOGIC; BEGIN IF FULLEVENT AND FULL = 1 THEN CNT2 := NOT CNT2;-如果溢出标志信号FULL为高电平, D触发器输出取反 IF CNT2 = 1 THEN FOUT = 1; ELSE FOUT = 0; END IF; END IF; END PROCESS P_DIV ; END; 四、思考题 怎样利用本实验中的源程序给出的模块设计一个电路,使其输出方波的正负脉宽的宽度分别由两个8位输入数据控制? 实验九 用状态机实现序列检测器的 设计 一、实验目的: 用状态机实现序列

22、检测器的设计,并对其进行仿真和硬件测试。 二、实验原理: 序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。源程序中描述的电路完成对序列数11100101的。当这一串序列数高位在前串行进入检测器后,若此数与预置的密码数相同,则输出“A”,否则仍然输出“B”。 源程序 LIBRA

23、RY IEEE ; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SCHK IS PORT( DIN,CLK,CLR : IN STD_LOGIC; AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END SCHK; ARCHITECTURE behav OF SCHK IS SIGNAL Q : INTEGER RANGE 0 TO 8 ; SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN D = 11100101 ; PROCESS( CLK, CLR ) BEGIN IF CLR = 1

24、THEN Q IF DIN = D(7) THEN Q = 1 ; ELSE Q IF DIN = D(6) THEN Q = 2 ; ELSE Q IF DIN = D(5) THEN Q = 3 ; ELSE Q IF DIN = D(4) THEN Q = 4 ; ELSE Q IF DIN = D(3) THEN Q = 5 ; ELSE Q IF DIN = D(2) THEN Q = 6 ; ELSE Q IF DIN = D(1) THEN Q = 7 ; ELSE Q IF DIN = D(0) THEN Q = 8 ; ELSE Q Q = 0 ; END CASE ; EN

25、D IF ; END PROCESS ; PROCESS( Q ) -检测结果判断输出 BEGIN IF Q = 8 THEN AB = 1010 ; ELSE AB = 1011 ; END IF ; END PROCESS ; END behav ; 提示:若对于D = 11100101 ,电路需记忆:初始状态、1、11、111 、 1110 、11100、111001、1110010、11100101 共9种状态。 三、实验内容 1:说明源程序的代码表达的是什么类型的状态机,它的优点是什么?详述其功能和对序列数检测的逻辑过程;根据源程序写出由两个主控进程构成的相同功能的符号化moore型有限状态机,画出状态图,并给出其仿真测试波形; 2:利用QuartusII对源程序进行文本编辑输入、仿真测试并给出仿真波形,了解控制信号的时序。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号