基于原理图和HDL的12进制计数器设计_第1页
基于原理图和HDL的12进制计数器设计_第2页
基于原理图和HDL的12进制计数器设计_第3页
基于原理图和HDL的12进制计数器设计_第4页
基于原理图和HDL的12进制计数器设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字逻辑电路大型试验报告2016计算机+自动化1402 傅攀 陆佳峰浙江工业大学计算机学院2016/5/15试验二 基于原理图和HDL的12进制计数器设计一、 实验目的1) 了解电子设计自动化(EAQ)、复杂可编程逻辑器件(CPLD/FPGA)的发展。2) 掌握利用Altera公司的Quartus II 13.0 开发软件实现完整的EDA开发。3) 加强对数字逻辑电路理论内容的理解,培养学生的硬件设计能力和全局思维能力。二、 试验内容完成基于原理图和HDL的12进制计数器设计:图1 12进制计数器框图图2 12进制计数器状态转换图方案二所采用的设计方法实际上是一种“自顶向下”的设计方法。先设计

2、顶层原理图,后设计底层模块。由于底层模块采用VHDL语言描述,在设计原理图时,没有必要担心元件库中能否找到底层模块对应的元件。当完成原理图和底层模块设计以后,就需要用Quartus II软件将电路用FPGA来实现。从Quartus II操作流程来看,应先输入底层模块,后输入原理图。因为先要将底层模块的VHDL代码通过念一生成对应的逻辑符号,才能为顶层原理图所调用。12进制计数器的Quartus II操作流程可分为以下步骤。u 建立设计工程;u 底层模块输入(文本输入);u 底层模块的变异和符号生成;u 底层模块仿真;u 顶层设计的输入(原理图输入);u 顶层设计的编译;u 引脚锁定和下载测试。

3、三、 实验原理采用原理图设计和HDL设计。该设计方案原理框图如图3 原理图和VHDL设计方案 所示。顶层设计采用原理图描述,底层设计采用VHDL语言描述。12进制计数器包括两个底层模块,一个模块为12进制计数器count12,一个为BCD-7段显示译码器LED7S。这两个模块均用VHDL语言描述。根据数字电路所学的知识,画出12进制计数器的逻辑图即可完成设计。采用原理图设计法时,EDA软件必须能提供所需的底层原件。对于12进制计数器需要的74192和7447两种元件必须有EAD软件自带原件库提供。而HDL设计法具有效率高,可移植性好的优点,所以采用混合输入的方法完成设计。图3 原理图和VHDL

4、设计方案(一) FPGA的基本设计流程 由于12进制计数器采用FPGA实现,因此,需要了解FPGA的基本设计流程。1.逻辑设计及输入 Quartus II软件对HDL语言和原理图都有很好的支持。Quartus II软件包含原理图变假期和文本编辑器,操作十分方便。2.设计综合 像C语言程序在执行之前需要编译工具将C代码翻译成机器语言一样,综合工具需要讲原理图和HDL的设计输入转化成由与、或、非门和触发器等基本逻辑单元组成的逻辑连接。3.适配与布线 综合后得到的网表与FPGA/CPLD 芯片实际配置情况还有较大的差异,适配和布线就是将网表文件适配到具体的FPGA/CPLD 芯片中。4.设计仿真仿真

5、是指检查综合后的结果是否有原设计一致。5.下载验证将生成的配置文件写入芯片进行测试。(二) 7段LED数码管的设计通过输入信号A3.0,控制输出信号Yg.a,以驱动数码管显示,如下表: 表1 BCD-7段译码液晶驱动器驱动真值表LED数码管相应编号图4 LED数码管相应编号根据真值表及编写相应的VHDL代码,并制作相应的底层元件led7s,实现LED数码管的驱动,根据输入显示相应的数字。(三) Count2计数模块的设计为了将计数值在LED数码管上显示,计数气的计数值应该用8421BCD码表示。图2所示的状态转换图中的每一个状态均可以用8位二进制编码表示,高4位表示十位8421BCD码,低4位

6、表示个位8421BCD码。由于十位的BCD码中高3位总为0,因此,count12的状态可以用5位编码表示,以简化电路。图5 count2 电路模型四、 试验步骤1.建立工作文件夹和设计工程在E盘建立一个工程文件夹,路径为E:cnt12hdl。建立设计工程,根据DE2实验板上的FPGA型号选择CycloneII系列的EP2C35G672C8器件型号。2.底层模块的设计输入选择新建VHDL File 在VHDL文本编辑窗口中输入count12模块的VHDL程序。图6 count12模块的VHDL程序将输入的文件保存存放到工作文件夹中,保存类型为VHDL File(*.vhd),存盘文件名为coun

7、t12.vhd与VHDL代码中的实体名一致。3.底层模块的编译和符号创建将count12.vhd 文件置位顶层文件,通过菜单对其进行编译,编译通过后为该模块创建逻辑符号。符号生成后,可以打开相关的符号文件(*.bsf)。在输入顶层设计原理图时可以直接调用底层模块逻辑符号。图7 count12模块逻辑符号4.底层模块的仿真模块编译通过后,应对其功能和时序进行仿真,以判断是否符合设计要求的逻辑功能。通过创建Vector Waveform File文件,打开空白波形编辑器。通过菜单及按钮的选择,在波型编辑器中输入信号节点。在“Nodes Found”窗口中列出了count12的所有端口引脚。将q0q

8、4的组合q拉到波形编辑器中,并添加cp。在设置仿真时间,网格宽度后,给输入信号赋值,确保输入时钟信号周期数大于12。将波形文件存盘count12.vwf。设置仿真参数,并选中count12.vwf。选择Start Simulation 开始仿真模拟,直到出现“Simulation was success ful”。观察仿真结果,如下图。说明count12模块功能复合设计要求。图8 count12模块的仿真结果5.重复上述24步骤创建LED7S模块重复之前步骤,创建底层模块LED7S模块,用以驱动LED数码管,创建过程及结果如下图:图9 LED7S模块逻辑符号图10 LED7S模块仿真结果6.顶

9、层原理图的输入打开原理图编辑器,选择Block Diagram/Schematic File菜单,打开空白的原理图编辑器。通过Quartus II 软件自带元件库选择相应元件及之前手动创建的元件count12、led7s元件绘制原理图。通过直接相连或逻辑相连完成原理图创建并对相应的端口引脚进行命名。保存原理图cnt12.bdf。图11 顶层原理图cnt127.顶层原理图的编译将cnt12.bdf文件置顶后,对其进行编译。编译的进程包括记错和逻辑综合、适配、装配(生成配置文件)、时序分析等。编译过程必须排除错有错误,以通过编译。编译结束后,程序会给出编译小结,如下图:图12 cnt12.bdf编

10、译小结8.引脚锁定和编程下载通过选择Assignments->Pin命令,打开引脚锁定窗口,通过设置“Location”栏,选择对饮端口信号名的器件引脚号。依次将说有计数器输出锁定到相应的引脚。表2 CNT12引脚锁定表图12 CNT12引脚锁定将DE2实验板魏永引脚设为“输入高阻”,完成上述工作后,对工程重新编译,以将引脚关系存入设计。左后通后USB下载电缆将PC机与DE2试验版BLASTER接口连接,合上电源开关。通过Programmer菜单打开下载和编程窗口。图13 下载和编程窗口下载结束后,DE2实验板即被写入相应程序,每按一次key0键,试验板上的HEX1、HEX0数码管一次显示01->02->->12->01。图14试验结果显示02图15试验结果显示05五、 问题与总结1.问题一试验过程中,绘制原理图时,为端口输入的名称未与端口绑定,导致模拟仿真时无法得到结果。修改方案:将名称与端口绑定重新编译并仿真观察结果。2.问题二仿真过程中由于周期或结束时间或输入信号设置不当,导致观察到的结果不完整或错误。修改方案:调整仿真时间及信号周期,重新进行仿真,观察结果。3.问

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论