实验四FPGA时序逻辑设计_第1页
实验四FPGA时序逻辑设计_第2页
实验四FPGA时序逻辑设计_第3页
实验四FPGA时序逻辑设计_第4页
实验四FPGA时序逻辑设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、可编辑实验四 FPGA 时序逻辑设计学习目标 1、 了解可编程数字系统设计的流程 2、 掌握 Quartus II 软件的使用方法 3、 掌握原理图输入方式设计时序逻辑电路的方法和流程必做实验1、 实验内容: 设计一个电路,用 44 矩阵键盘输入一个 4 位数,并在数码管上显示,要求如下: (1)输入时,数字顺序是从左到右。例如,顺序输入 0、1、2、3 应该在数码管上显示“0123” 。 (2)比较输入数值,比较结果用 1 个 LED 显示。如果输入值和你的学号后 4 位相等,则LED灯亮,不等LED灭。 (3)实验箱上的数码管内部已译码, 44 键盘上拉电阻也已连接好。 2、 实验要求:

2、1、 根据设计要求划分设计层次、单元模块和接口信号,在预习报告上记录设计过程,绘制系统框图, 每个模块的状态转移图或 ASM 图,并设计验证方案。 2、 用原理图输入法设计所有单元模块并编译,分析编译时产生的错误和警告信息 3、 对所有的单元模块进行功能仿真,并记录和分析全部仿真结果 4、 在顶层文件中连接全部单元模块并编译、综合、分配管脚和适配。 5、 对整个系统进行时序仿真,并记录和分析仿真结果。 6、 将仿真正确的设计下载到实验箱上,连接输入输出设备和示波器进行板级验证实验内容 设计原理矩阵式键盘,将I/O线分别组成行、列结构,按键设置在行列的交点上。44行列键用4条I/O线作为行线,4

3、条I/O线作为列线所组成的的键盘,16个按键分别设置在行、列线的交点处,行线、列线分别连接到按键开关的两端。所有的行线和列线都通过上拉电阻接电源,钳位在高电平状态。相比较独立式按键,44行列式键盘只需要 8 根 I/O 线就实现了16个按键,节省了8个I/O口。但由于行、列线为多键共用,各按键彼此将相互发生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。 通过对行线轮流加低电平信号,C3C2C1C0的值在1110,1101,1011和0111之间变化。无键摁下时,R3R2R1R0等于1111,R=R3*R2*R1*R0=1;有按键摁下时,行线短接,R3R2R1R0不等于1

4、111,R=R3*R2*R1*R0=0。检测到变化时,输出控制信号E=R3R2R1R0,使行线停止扫描。行线和列线共同构成8位二进制码通过译码电路进行译码得到键值。松开按键,列线R=1,扫描继续。按键开关一般是利用机械触点来实现合、断的。由于机械触 点的弹性作用,在按键闭合和断开的瞬间均会出现一系列尖脉冲,如图所示,这种现象称之为“抖动”。抖动时间的长短与开关的机械特性有关,一般为 510mS。而按键稳定闭合的时间是由操作人员的按键动作所确定的,一般不低于0.1秒。为了保证电路对键的一次闭合仅做一次键输入处。1. 键盘的行线扫描电压使用寄存器74194,构造一个模为4的状态循环,采用右移,S1

5、C0=01。电路状态:11101101101101111110真值表:C3C2C2C2DSR11101110111011101110卡诺图:最简逻辑表达式:DSR=C3。但此时并不满足自动。重新修改无关的循环,并修改卡诺图:利用最大项之和得到:DSR=C2+C1+C0=C2C1C0。此时满足自启动。另外,考虑到还有控制信号E,当E为1,电路保持扫描状态;当E为0是,电路停止扫描,保持此时的状态。为了完成此功能,使时钟信号为CP*E。S1=0,S2=1。逻辑电路图:2. 消除抖动根据题目的要求,使用D触发器消除抖动。使用两个7474进行封装,封装为一个四输入四输出的D触发器。逻辑电路:3. 转码

6、为二进制码通过行列的扫描结果可以得到8位二进制码,需要转换得到4位二进制码。In7In6In5In4In3In2In1In016进制码二进制码C3C2C1C0R3R2R1R0011111010000011101110100011110110120010111010113001111011110401001101110150101110110116011010111110701111011110181000101110119100111100111A101011010111B 101110110111C110001110111D110101111110E111001111011F1111使用Ve

7、rilog语言实现,并实现封装。16个按键分别按下时,对应16种不同的情况,编码从0到F的二进制代码。当按键没有按下时,输出0的4位二进制代码。代码如下:逻辑电路图的如下:4. 储存电路设计转码部分每次只能输出一个4位二进制代码,又因为有四个数码管要显示不同的字,所以要对转码后的4位二进制代码进行存储。通过746161构造一个周期为4的循环:00011011。在此处键入公式。74161的输出QA和QB决定此时转码的4位二进制信号因该储存到哪里,以及74194的工作状态。首先用4个74194进行存储此时的4位二进制信号,再用4个74194存储以前的4位二进制信号,由此保证在按下新的按键的时候,以

8、前的数值不会立马被清零,直到完成按键的动作的时候,数码管才显示新输入的按键内容。通过以上的分析可以得到结论,每一个数码管应该对应两个74194,这两个74194的工作状态应该是相反的。74194的工作状态只有两个,分别是同步置数和保持,对应S1S0分别位11和00。存储电路的时钟信号应该和row3.0有关。通过74138,结合74138的使能端,决定每一位应该存储到哪个74194中。故应该有4个74138存在。例如:当QAQB=00的时候,此时的4位二进制数中的每一位都选择存储到第一个74194中。逻辑电路图如下:举例说明,当QAQB=00的时候,第一个74194选择存储,此时的74194的状态应该是并行输入,后面的74194状态时的保持(保持上一个二进制数)。当按键动作结束,此时QAQB=01,跳到下一个状态,第一个74194的状态变为保持,后面的74194状态变为并行输入。直观上来看,当按键动作结束时,数码管更新显示新的数字。逻辑电路图连接如下:通过分析可以得到,上面的两列74194的CP时钟信号是不同,对应的上升触发沿是不一样的时间,才可以完成相应的功能。逻辑电路连接如下:三个时钟信号,分别是74161的CP以及第一列74194的CP和第二列74194的CP。5. 比较电路的设计根据题目的要求,要求和自己的学号后四位7417进行比较。S0

温馨提示

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

最新文档

评论

0/150

提交评论