EDA实验报告
更新时间:2024-03-07 12:11:01 阅读量: 综合文库 文档下载
EDA实验报告
电科133-27-李玲玲
实验一:“四选一“多路选择器
一、实验目的
通过实验让用户逐步了解、熟悉和掌握FPGA开发软件Quartus Ⅱ的使用方法及
VHDL的编程方法。
二、实验内容
描述一个“四选一“多路选择器,通过实验实现一个四选一的多路选择器,观察其波形图,实现四选一的原理
三、实验原理
a,b,c,d是四个输入端口,s1和s0为通道选择控制信号端,y为输出端。当s1和s0取值分别为00,01,10和11时,输出端y将分别输出来自输入口a,b,c,d4个输入口分别输入不同频率信号时,针对选通控制端s1,s0的不同电平选择,则输出端y有对应的信号输出。
四、实验步骤
1)使用Quartus Ⅱ建立工程
打开Quartus Ⅱ软件并建立工程;建立图形设计文件;建立文本编辑文件; 2)Quartus Ⅱ工程设计 在VHDL文件中编写源程序,从设计文件创建模块,将led.bsf模块添加到Quartus Ⅱ顶层模块,添加引脚和其他基本单元 3)设置编译选项并编译硬件系统
设置编译选项,编译硬件系统,查看编译报告,下载硬件设计到目标FPGA
五、实验参考程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY led IS
PORT(a,b,c,d:IN STD_LOGIC; s0,s1:IN STD_LOGIC; y:OUT STD_LOGIC); END ENTITY led;
ARCHITECTURE BHV OF led IS
SIGNAL S:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN
S <= s1 & s0 ; PROCESS(s1,s0) BEGIN
CASE (S) IS
WHEN \ WHEN \ WHEN \ WHEN \ WHEN OTHERS=>NULL; END CASE; END PROCESS;
END ARCHITECTURE BHV ;
六、实验总结
实验二:I/O控制实验
一、实验目的
通过此实验让用户进一步了解、熟悉和掌握CPLD/FPGA开发软件的使用方法及VHDL的编程方法,并熟悉以VHDL文件为顶层模块的设计;学好并体会分支条件语句case的使用方法及FPGA I/O的输入/输出控制。
二、实验内容
SmartSOPC 实验箱上完成8个按键KEY1-KEY8和8个发光二极管LED1-LED8。本实验内容是要求在SmartSOPC 实验箱上完成对8个按键KEY1-KEY8进行监控,一旦有键入则判断其键值,并点亮相应的发光二极管。例如:若KEY3按下,则点亮LED1-LED3发光管。
三、实验原理
SmartSOPC 实验箱8个发光二极管LED1-LED8的电路原理如图2.44所示,芯片输出后通过串连一个限流电阻和一个发光二极管组成,发光管采用共阳接法,降低芯片引脚的输出功率。控制引脚为低电平时,LED点亮;控制引脚为高电平时,LED不亮;
SmartSOPC 实验箱8个按键KEY1-KEY8的电路原理图如图2.45所示,芯片输入通过串联一个限流电阻和一个按键开关组成,开关采用共阴接法,降低系统的运行功率。按钮按下时,输入引脚为低电平,度数为0;按钮悬空时,输入引脚为高电平,度数为1。
FPGA的所有I/O引脚单独配置为输入口,不过这种配置是系统自动完成的。当该I/O口被设置为输入口使用时,该I/O控制模块将直接使三态缓冲区的控制端接地,使得该I/O引脚对外呈高阻态,这样该I/O引脚即可用作专用输入引脚。正确分配并锁定引脚后,一旦在KEY1-KEY8中有键输入,即可在检测到键盘输入的情况下,继续判断其键盘值并作出相应的处理。
四、实验步骤
1)建立一个新的工程,编写VHDL程序代码;
2)实验箱配置引脚如表2.2,在引脚适配过程中配置相应的引脚;
表2.2引脚锁定方法 引 脚 信 号 IC6 IC12 EDA led[0] 50 50 50 led[1] 53 53 53 led[2] 54 54 54 led[3] 55 55 55 led[4] 176 176 176 led[5] 47 47 47 led[6] 48 48 48 led[7] 49 49 49 key[0] 121 121 121 key[1] 122 122 122 key[2] 123 123 123 key[3] 124 124 124 key[4] 143 143 143 key[5] 141 141 141 key[6] 158 158 158 key[7] 156 156 156 3)点击综合按键,对系统进行综合; 4)取出SmartSOPC实验箱,将实验箱上的JP6的LED0-LED7、LED1-LED8分别与FPGA引脚50、53-55、176和47-49相连,并接通电源;
5)将程序下载到实验箱,并进行试验,观察试验结果,并分析其原因。
五、实验参考程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_Arith.ALL; USE IEEE.STD_LOGIC_Unsigned.ALL; ENTITY keyled IS PORT(
key:IN STD_LOGIC_VECTOR(7DOWNTO 0); led:OUT STD_LOGIC_VECTOR(7DOWNTO 0)); END;
ARCHITECTURE one OF keyled IS
SIGNAL led_r: STD_LOGIC_VECTOR(7DOWNTO 0); SIGNAL buffer_r:STD_LOGIC_VECTOR(7DOWNTO 0); BEGIN
led<=led_r;
PROCESS(key,buffer_r) BEGIN
buffer_r<=key; CASE buffer_r IS
WHEN\
WHEN\ WHEN\ WHEN\ WHEN\ WHEN\ WHEN\ WHEN\ WHEN OTHERS=> led_r<=\END CASE; END PROCESS; END;
六、实验思考
1)通过按键单独控制对应的LED灯,例如Key1按下,LED1点亮;Key1松开,LED1熄灭。
参考程序如下: LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_Arith.ALL; USE IEEE.STD_LOGIC_Unsigned.ALL; ENTITY keyled IS PORT(
key:IN STD_LOGIC_VECTOR(7 DOWNTO 0); led:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END;
ARCHITECTURE one OF keyled IS
SIGNAL led_r: STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL buffer_r:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN
led<=led_r;
PROCESS(key,buffer_r) BEGIN
buffer_r<=key;
IF (buffer_r(0)='0') THEN led_r(0)<='0'; else led_r(0)<='1'; END IF; IF (buffer_r(1)='0') THEN led_r(1)<='0'; else led_r(1)<='1'; END IF; IF (buffer_r(2)='0') THEN led_r(2)<='0'; else led_r(2)<='1'; END IF; IF (buffer_r(3)='0') THEN led_r(3)<='0'; else led_r(3)<='1'; END IF; IF (buffer_r(4)='0') THEN led_r(4)<='0'; else led_r(4)<='1'; END IF; IF (buffer_r(5)='0') THEN led_r(5)<='0'; else led_r(5)<='1'; END IF; IF (buffer_r(6)='0') THEN led_r(6)<='0'; else led_r(6)<='1'; END IF; IF (buffer_r(7)='0') THEN led_r(7)<='0'; else led_r(7)<='1'; END IF; END PROCESS; END;
七、实验总结
实验三:数码管显示实验
一、实验目的
学习7段数码管显示译码器的设计,进一步了解、熟悉和掌握FPGA开发软件Quartus Ⅱ的使用方法及VHDL的编程方法。
二、实验内容
SmartSOPC 实验箱上有两个4位动态共阳数码管LED12和LED13。本实验的内容是建立7段译码显示模块,用于控制LED数码管的动态显示。要求在SmartSOPC 实验箱上的数码管循环依次显示0-9,A-F共16个字符。
三、实验原理
数码管LED显示是工程项目中使用较广的一种输出显示显示器件。常见的数码管有共阴和共阳两种。共阴数码管是将8个发光二极管的阴极连接在一起作为公共端,而共阳数码管是将8个发光二极管的阳极连接在一起作为公共端。公共端常称为位码,而其他8位称为段码。
如图2.46所示为共阳数码管及其电路,数码管有8个段分别为:h、g、f、e、d、c、b、a和a(h为小数点),只要公共端为高电平“1”,某个段输出低电平“0”则相应的段就亮。例如,数码管的8个段h、g、f、e、d、c、b、a分别接,1、0、1、0、0、1、0、0数码管就显示“2”。
其硬件原理图如图2.46所示。其中8个位码DIG0—DIG7和8位段码SEGO-SEG7分别与FPGA相应的引脚相连。这样,只要DIG0-DIG7上一直输出低电平“0\则8个数码管将显示相同的数码(因为8个LED数码管的段码线分别接到了同一引脚上),这样8位动态LED数码管变成了静态LED。
本实验通过分频进程int_div分频得到1hz的频率信号,分频后的信号触发4位计数器的时钟输入端,计数循环输出0一9、A一F共16个数。最后通过七段译码进程译码后在数码管上显示出来。
四、实验步骤
1)建立一个新的工程,编写VHDL程序代码;
2)实验箱配置引脚如表2.3,在引脚适配过程中配置相应的引脚;
表2.3引脚锁定方法 引脚 信 号 IC6 IC12 EDA seg[0] 169 169 169 seg[1] 170 170 170 seg[2] 167 167 167 seg[3] 168 168 168 seg[4] 165 165 165
seg[5] seg[6] seg[7] dig[0] dig[1] dig[2] dig[3] dig[4] dig[5] dig[6] dig[7] clock 166 163 164 160 159 152 161 204 199 198 205 28 166 163 164 160 159 162 161 236 237 238 239 28 166 163 164 160 159 162 161 215 216 213 214 28
3)点击综合按键,对系统进行综合; 4)取出SmartSPOC实验箱,接通电源;
5)将程序下载到实验箱,并进行试验,观察试验结果,并分析其原因。
五、实验参考程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY SLEDs IS
PORT(clk: IN STD_LOGIC;
dig: OUT STD_LOGIC_VECTOR (7 DOWNTO 0); seg: OUT STD_LOGIC_VECTOR (7 DOWNTO 0)); END;
ARCHITECTURE ONE OF SLEDs IS
SIGNAL Counter:Integer RANGE 0 TO 48000000; SIGNAL clk1:STD_LOGIC;
SIGNAL d:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL seg_r:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN
PROCESS(clk) BEGIN
IF(clk'EVENT AND clk='1') THEN
IF Counter=48000000-1 THEN counter<=0; clk1<=Not clk1; ELSE Counter<=Counter+1; END IF; END IF;
END PROCESS;
PROCESS(clk1) BEGIN
IF(CLK1'EVENT AND clk1='1') THEN d<=d+1; END IF;
END PROCESS;
PROCESS(d) BEGIN
CASE d IS
WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN OTHERS=> SEG_R<=X\ END CASE; END PROCESS; seg<=seg_r;
DIG<=\END;
六、思考题
实现数码管的动态显示,即8个数码管分别显示0-7共八个数。 参考程序如下: LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY SLEDs IS
PORT(clk: IN STD_LOGIC;
dig: OUT STD_LOGIC_VECTOR (7 DOWNTO 0); seg: OUT STD_LOGIC_VECTOR (7 DOWNTO 0)); END;
ARCHITECTURE ONE OF SLEDs IS
SIGNAL Counter:Integer RANGE 0 TO 24000000; SIGNAL clk1:STD_LOGIC;
SIGNAL d:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL f:STD_LOGIC_VECTOR(3 DOWNTO 0):=\SIGNAL seg_r:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN
PROCESS(clk) BEGIN
IF(clk'EVENT AND clk='1') THEN
IF Counter=24000000-1 THEN counter<=0; clk1<=Not clk1; ELSE Counter<=Counter+1; END IF; END IF;
END PROCESS;
PROCESS(clk1) BEGIN
IF(CLK1'EVENT AND clk1='1') THEN d<=d+1; f<=f+1; END IF;
END PROCESS; PROCESS(f) BEGIN
CASE f IS
WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\
WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN OTHERS=> SEG_R<=X\ END CASE; END PROCESS; PROCESS(d) BEGIN
CASE d IS
WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN OTHERS=> dig<=X\ END CASE; END PROCESS; seg<=seg_r; END;
七、实验总结
实验四:计数器实验
一、实验目的
学习计数器的设计、方阵、和硬件测试,进一步熟悉VHDL的编程方法。
二、实验内容
本实验的内容是利用Quartus Ⅱ建立一个含计数使能、异步复位的4位加法计数器,并进行仿真测试。最后在SmartSOPC实验箱上进行硬件测试,由KEY1控制计数器使能ena并由LED1指示,KEY2控制复位端rst并由LED2指示。今晚ie输出由LED8指示,计数值由数码管指示。时钟clk由分频模块int_div分频得到4hz的信号。
三、实验原理
如图2.47所示是一个含计数使能、异步复位的4位加法计数器,图中间是4位锁存器;key2是异步清零信号,低电平有效;clk是锁存信号;当key2为1时使能锁存器。
四、实验步骤
1)建立一个新的工程,编写VHDL程序代码;
2)实验箱配置引脚如表2.4,在引脚适配过程中配置相应的引脚;
表2.4引脚锁定方法 引 脚 信 号 IC6 IC12 EDA seg[0] 169 169 169 seg[1] 170 170 170 seg[2] 167 167 167 seg[3] 168 168 168 seg[4] 165 165 165 seg[5] 166 166 166 seg[6] 163 163 163 seg[7] 164 164 164 dig[0] 160 160 160 dig[1] 159 159 159 dig[2] 162 162 162 dig[3] 161 161 161 dig[4] 204 236 215 dig[5] 199 237 216 dig[6] 198 238 213 dig[7] 205 239 214 led1 50 50 50 led2 53 53 53 led8 49 49 49 key1 121 121 121 key2 122 122 122 clock 28 28 28 3)点击综合按键,对系统进行综合;
4)取出SmartSPOC实验箱,将led1、led2、led8、key1、key2的短路帽接上,接通电源;
5)将程序下载到实验箱,并进行试验,观察试验结果,并分析其原因。
五、实验参考程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_Unsigned.ALL; USE IEEE.STD_LOGIC_Arith.ALL; ENTITY cnt_4b IS
PORT(clock,rst,ena: IN STD_LOGIC;
dout: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); cout: OUT STD_LOGIC); END;
ARCHITECTURE one OF cnt_4b IS
SIGNAL cnt: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN
dout<=cnt;
cout<=cnt(3)and cnt(2) and cnt(1) and cnt(0); PROCESS(clock,rst,ena) BEGIN
IF rising_edge(clock) THEN IF rst='0' THEN cnt<=\ ELSif ena='1' THEN CNT<=cnt+1; END IF; END IF; END PROCESS;
END ARCHITECTURE ONE;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_Unsigned.ALL; USE IEEE.STD_LOGIC_Arith.ALL; ENTITY decl7s IS
PORT(d: IN STD_LOGIC_VECTOR(3 DOWNTO 0); seg: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END;
ARCHITECTURE ONE OF decl7s IS
SIGNAL seg_r: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN
seg<=seg_r; PROCESS(d) BEGIN
CASE d IS
WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\
WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN X\ WHEN OTHERS=> seg_r<=X\ END CASE; END PROCESS; END;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_Arith.ALL; USE IEEE.STD_LOGIC_Unsigned.ALL;
ENTITY int_div IS
GENERIC(N:Integer:=3); Port(Clockin:IN STD_LOGIC; ClockOut:OUT STD_LOGIC); END;
ARCHITECTURE Devider OF int_div IS
SIGNAL Counter:Integer RANGE 0 TO N-1; SIGNAL Temp1,Temp2:STD_LOGIC; BEGIN
PROCESS(Clockin) BEGIN
IF RISING_EDGE(Clockin)THEN IF Counter=N-1 THEN counter<=0;
Temp1<=Not Temp1; ELSE
Counter<=Counter+1; END IF; END IF;
IF falling_EDGE(clockin)THEN IF Counter=N/2 THEN Temp2<=NOT Temp2; END IF; END IF; END PROCESS;
ClockOut<=Temp1 XOR Temp2; END;
七、实验总结
正在阅读:
EDA实验报告03-07
HCNR200 HCNR201数据手册05-13
山茶花作文600字06-28
辣椒炒肉记作文400字06-27
海南旅游纪念品市场现状的调研分析05-27
档案调档函模板02-12
仓库保管员岗位职责06-05
高速公路的一些线路坐标、高程计算公式(缓和曲线、竖曲线、圆曲04-21
七年级英语词汇竞赛试题105-22
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 实验
- 报告
- EDA
- 07-12国考资料分析及10-12福建省考资料分析真题
- 语总复习第二部分语法点击专题(十)常考动词词组综合演练人教新
- 2019年高考语文仿真模拟试卷(一)
- 四年级数学思维训练导引(奥数)第03讲 还原问题与年龄问题
- 郓城县体育馆建筑节能方案
- 酒与酒文化模板
- 室外停车场地磁车位引导方案 - 图文
- 核安全文化试题库
- 功率谱估计MATLAB实现 - 图文
- 世界各国国家简称
- 最新广东省深圳市2018届高三年级第一次调研考试理综试题(有答案
- 新人教版(PEP)小学英语三年级下册精品教案Unit 3 B Lets learn(1
- 武汉市江岸区2010-2011学年八年级(上)期末数学试卷(含答案)
- 七年级上册期末复习练习题
- 2010届高考英语语法考点
- 德州市第二届“未来之星”少儿艺术节系列活动方案 doc
- 大石头社区2018年度农村精神文明建设工作计划
- 人教版小学数学知识点总结大全
- 企业易燃易爆物品管理办法
- 2018年幼儿园小班下学期班务总结 doc