数字电路大型实验实验报告.docx
- 文档编号:3857349
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:13
- 大小:785.74KB
数字电路大型实验实验报告.docx
《数字电路大型实验实验报告.docx》由会员分享,可在线阅读,更多相关《数字电路大型实验实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
数字电路大型实验实验报告
数字电路大型实验—实验报告
实验题目
基于原理图和HDL的12进制计数器设计
日期:
2016、5、11
基于原理图和HDL的12进制计数器设计
一、实验目的
设计具有异步复位、 同步使能的12进制计数器, 其计数结果可以通过七段数码管、 发光二极管等进行显示。
二、实验设备和
QUartusII
DE2实验板
三、实验内容和要求
♦建立设计工程
♦底层模块输入(文本输入)
♦底层模块的编译和符号生成
♦底层模块的仿真
♦顶层设计的输入(原理图输入)
♦顶层设计的编译
♦引脚锁定和下载测试
四、实验步骤
1.建立工作文件夹和设计工程
建立一个工程文件夹,命名后选择器件型号。
2.底层模块的设计输入
在VHDL文本编辑窗口中设计输入ccount12和led7s的VHDL程序
进行编译,没有错误。
结果见下图
代码见附录
、
Count12的VHDL截图
LED7S的VHDL截图
3.底层模块的编译和符号创建
分别将count12和led7s置顶为顶层文件,然后进行编译
编译通过以后,生成对应的VHDL程序逻辑符号。
打开相关符号文件,查看符号,结果见下图。
Count12的VHDL逻辑符号
Led7s的VHDL逻辑符号
4.底层模块的仿真
分别对通过编译的count12和led7s其功能和时序进行仿真,一判断是否符合设计要求的逻辑功能
分别设置仿真时间、网格宽度并输入信号复制,最后进行始终设置。
开始仿真,结果如图
仿真过程及结果
5.顶层原理图的输入
新建一个空白原理图编辑器,添加两个led7s,一个count12,两个output,一个input,一个GND,一个wipe
根据实验手册上的图放置元件,排列整齐,双击命名区,输入引脚名,进行逻辑相连。
保存原理图,见下图
原理图
6.顶层原理图的编译
将原理图置顶,进行编译
编译通过(上图为已经通过的编译图)
7.引脚锁定和编程下载
根据count12引脚锁定表,打开引脚锁定串口,进行锁定。
锁定前后见下图
锁定前
锁定后
锁定后进行编程下载:
打开device进行设置
把工程重新进行编译,以将引脚对应关系存入设计。
用usb下载电缆将PC机与DE2实验班BLASTER接口连接
合上电源开关选择Tool->Programmer上的快捷键进入下载编程窗口。
改为USB-Blaster模式单机START开始下载。
下载成功,见下图
结果:
下载成功后,每按一次KEY0键,实验板上的HEX1和HEX0数码管一次显示01->02->……………11->12->01->02……………………
7.小结
一般的数字系统总是分为顶层设计和底层设计,这与程序设计中的主程序和子程序非常类似,12进制的计数器的层次结构如图所示,需要注意的是,顶层设计和底层设计的文件名不能相同。
顶层设计和底层设计的所有文件应放在同一个工作文件夹下,对每一个设计只需要建立一个工程。
五.实验体会
通过这次实验,我们大致学会了使用应用VHDL进行设计元件,仿真进行判断逻辑功能判断,并把设计好的电路原理图的程序下载到硬件里,通过学习与实践的结合,使我们的经验增加,提高了实践操作及动手能力,在实验过程中遇到了许多问题,通过合作。
查询相关资料和请教老师一一进行了解决,并且完成了实验,收获了许多。
六.附录
Count12.vhd(代码)
libraryieee;
useieee.std_logic_1164.all;
entitycount12is
port(cp:
instd_logic;
q:
bufferstd_logic_vector(4downto0));
endcount12;
architecturebehavofcount12is
signalcurrent_state,next_state:
std_logic_vector(4downto0);
constantst0:
std_logic_vector:
="00001";
constantst1:
std_logic_vector:
="00010";
constantst2:
std_logic_vector:
="00011";
constantst3:
std_logic_vector:
="00100";
constantst4:
std_logic_vector:
="00101";
constantst5:
std_logic_vector:
="00110";
constantst6:
std_logic_vector:
="00111";
constantst7:
std_logic_vector:
="01000";
constantst8:
std_logic_vector:
="01001";
constantst9:
std_logic_vector:
="10000";
constantst10:
std_logic_vector:
="10001";
constantst11:
std_logic_vector:
="10010";
begin
com1:
process(current_state)
begin
casecurrent_stateis
whenst0=>next_state<=st1;
whenst1=>next_state<=st2;
whenst2=>next_state<=st3;
whenst3=>next_state<=st4;
whenst4=>next_state<=st5;
whenst5=>next_state<=st6;
whenst6=>next_state<=st7;
whenst7=>next_state<=st8;
whenst8=>next_state<=st9;
whenst9=>next_state<=st10;
whenst10=>next_state<=st11;
whenst11=>next_state<=st0;
whenothers=>next_state<=st0;
endcase;
endprocesscom1;
reg:
process(cp)
begin
if(cp'eventandcp='1')then
current_state<=next_state;
endif;
endprocessreg;
q<=current_state;
endbehav;
Led7s.vhd(代码)
libraryIEEE;
useIEEE.std_logic_1164.all;
entityLED7Sis
port(DIN:
instd_logic_vector(3downto0);
Y:
outstd_logic_vector(6downto0));
end;
architectureoneofLED7Sis
begin
process(DIN)
begin
caseDINis
when"0000"=>Y<="1000000";
when"0001"=>Y<="1111001";
when"0010"=>Y<="0100100";
when"0011"=>Y<="0110000";
when"0100"=>Y<="0011001";
when"0101"=>Y<="0010010";
when"0110"=>Y<="0000010";
when"0111"=>Y<="1111000";
when"1000"=>Y<="0000000";
when"1001"=>Y<="0010000";
when"1010"=>Y<="0001000";
when"1011"=>Y<="0000011";
when"1100"=>Y<="1000110";
when"1101"=>Y<="0100001";
when"1110"=>Y<="0000110";
when"1111"=>Y<="0001110";
whenothers=>Y<=null;
endcase;
endprocess;
end;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字电路 大型 实验 报告