基于FPGA的键盘接口设计正文

基于FPGA的键盘接口设计正文
基于FPGA的键盘接口设计正文

基于FPGA的键盘接口设计

专业:电子信息科学与技术系作者:李先仙指导老师:刘强摘要:现场可编程逻辑门阵列FPGA (Field Programmalbe Gate Array)具有掩膜可编程门阵列的通用结构,由逻辑功能块排成阵列组成,并由可编程的互联资源连接这些逻辑功能块以及相应的输入/输出单元来实现不同的设计。在电子产品中,键盘是最基本的输入设备,然而在应用中都采用通用的键盘扫描器件是不现实的,需要单独设计成专用的小键盘。随着电子技术和EDA (Electronic Design Automatic,电子设计自动化)技术的发展,大规模可编程逻辑器件PLD(Programmable Logic Device)、现场可编程门阵列FPGA完全可以取代大规模集成电路芯片,实现计算机可编程接口的功能,并可将若干接口电路的功能集成到一片PLD或FPGA芯片中。鉴于大规模PLD或FPGA的计算机接口电路不仅具有集成度高、体积小和功耗低等优点,而且还具有独特的用户可编程能力,从而实现计算机系统的功能重构。本文设计首先介绍行列式键盘的原理和应用,通过对其接口电路的详细分析;然后利用VHDL硬件描述语言和FPGA器件并采用模块化设计的方法完成了基于FPGA的行列式键盘接口电路的设计;最后通过计算机仿真,对本文设计的行列式键盘接口电路的正确性进行了验证。

关键词:键盘;仿真;VHDL语言;FPGA;模块化设计

Based on FPGA Keyboard Connection Design

Major:Electronic Information Science and Technology

Author: Li Xianxian Instructor: Liu Qiang

Abstract: The Filed Programmmalbe Gate Array,shorted by FPGA,which has a mask-programmable gate array of generic structure and function blocks in the logic array of line,through a programmable logic of internet resources connecting these function blocks and the corresponding input/output modules to achieve different design.In electronic products,the keyboard is the most basic input device,however,it’s unrealistic of using general keyboard scanning device in the application ,we need for the separate designing of the small keyboard. With the development of Electronic and EDA(Electronic Design Automatic)technology,Large Scale Integration chips can be replaced by PLD(Programmable Logic Device)and FPGA ,which can realize the function of the Programmable Interface chips and feature a number of interface circuits integated into one of the PLD or FPGA chips.The computer interface circuit based on the technology of PLD and FPGA not only has the virtue of high integration,low volume and low power loss, but also has the unique programmable function,which can realize

reconstruction of the function of computer system.The designing of this article first introduced the determinant keyboard’s theory and application,through to analysis its connection electric circuit in very great detail ,and then used VHDL hardware description language and FPGA device to complete FPGA-based determinant keyboard connection electric circuit design with modular design mathod.Fianally,through the method of simulations to verify the accuracy of the determinant keyboard connection electric circuit of the design.

Key words: Keyboard; Simulalion; VHDL lauguage; FPGA; Modular design

前言

键盘历史非常悠久,早在1714年,就开始相继有英、美、法、意、瑞士等国家的人发明了各种形式的打字机,最早的键盘就是那个时候用在那些技术还不成熟的打字机上的;到了20世纪中期,键盘又多了一个用武之地——作为电脑的基本输入设备,用户通过它向计算机传递信息,它有机械式、电容式、电感式和薄膜式等多种形式,按获取按编码的方式,可分为编码键盘和非编码键盘;根据键盘插口方式分为AT接口键盘和PS/2接口键盘和USB接口键盘,其中AT接口键盘目前已基本被淘汰[1]。然而在应用中都采用通用的键盘扫描器件是不现实的,由可编程逻辑器件组成的数字电路系统中经常需要有输入/输出设备,以用来与用户更好地进行交互。现代EDA(Electronic Design Automation,电子设计自动化)技术提供了一种很好的途径,利用VHDL硬件描述语言和FPGA器件可以很方便地构建键盘接口电路[2]。本文采用VHDL语言设计的基于FPGA的行列式键盘接口设计,行列式键盘是常用的输入/输出设备之一,它结构简单,携带方便,功耗低,能够适用于各种功率要求的场合,功能强大,能有效的提高利用I/O口的利用率。行列式键盘电路的FPGA实现主要解决三个问题,一是如何检测是否有按键按下并防止采集到干扰信号,二是在按键闭合时如何防止抖动,三是如何判断为哪一个按键位动作,并对其进行译码。因此,要解决这些问题,把行列式键盘接口电路分为键盘扫描电路、键盘译码电路、按键标志产生电路、时钟模块以及键盘顶层电路等四个模块来实现。首先利用VHDL硬件描述语言在FPGA芯片上实现键盘接口并利用仿真FPGA软件进行仿真;之后便可利用FPGA实验箱搭建相应的硬件电路,在硬件上实现键盘接口的一些基本功能。

在Altera、Atmel等公司都推出了内嵌微处理器的FPGA,但由于价格、开发手段和方法等因素的影响,在未来一段较长的时间里,还是会更多的采用单片机与FPGA配合的方式设计系统,以发挥单片机的灵活性和FPGA的高速性[3]。

1 VHDL和FPGA概述

1.1 VHDL概述

1.1.1 VHDL的由来和特点

VHDL是Very high speed integrated circuit Hardware Deseription Language的缩写,意思是非常高速集成电路的硬件描述语言,是HDL(Hardware Deseription Language,硬件描述语言)的一种。这是一项由美国国防部所支持的研究计划,目的是为了把电子电路的设计意义以文字或文件的方式保存下来,以便他人能轻易地了解电路的设计意义。由于VHDL电路描述语言所能涵盖的范围很广,从ASIC(Application Specific Integrated Circuit,专用集成电路)的设计到PCB(Printed Circuit Board,印刷电路板)系统的设计,VHDL电路描述语言都能派上用场,所以VHDL语言毫无疑问地成为硬件设计工程师的必备工具[4]。

VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多方面具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计或称设计实体(可以是一个元件、一个电路模块或一个系统)分成外部(即端口)

和内部(即设计实体的内部功能和算法完成部分)。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其它的设计就可以直接调用这个实体[5]。这种将设计实体分成内、外两部分的概念是VHDL系统设计的基本点。具体特点如下:

1) 与其它的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模集成电路的重要保证。

2) VHDL丰富的仿真语言和库函数,使得在大规模集成电路设计的早期就能查验出设计系统的功能可行性,可随时对设计进行功能仿真、时序仿真,使设计者在设计初期就可以对整个工程设计的可行性作出决策,从而缩短了设计周期,减少了研发成本。

3) VHDL语句的行为描述能力和程序结构决定了它具有支持大规模集成电路设计的分解和对已有设计的再利用功能[4]。重复利用他人的IP (Intelligence Property core,知识产权核,一种正式注册产权的电路设计)模块和软核(soft core)是VHDL的特色,设计不必各个都从头再来,只要在更高的层次上把IP模块利用起来,能达到事半功倍的效果。

4) 对于VHDL完成的一个确定的设计,可以利用EDA工具(如MAX+PLUSⅡ)进行逻辑综合和优化,并自动把VHDL描述设计转换成门级网表。这种设计方式突破了传统门级设计中的瓶颈,极大地减少了电路设计的时间和错误发生率,降低了开发成本,缩短了设计周期。

5) VHDL对设计的描述具有相对的独立性,设计者可以不懂硬件的结构,也不必关心最终设计的目标器件是什么而进行独立的设计。正因为VHDL的硬件描述与具体的工艺和硬件结构无关,VHDL 设计程序的硬件实现目标器件有广阔的选择范围。

6) 由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的前提下,只需改变类属参数或函数,就能改变设计的规模和结构[6]。

1.1.2 VHDL的描述风格

在VHDL结构体中,可以用不同的描述方式或者说是建模方法来表达,通常可归纳为行为描述、寄存器传输RTL(Registers Transfer Language)描述和结构描述[7]。

行为描述:行为描述只表示输入与输出间转换的行为,不包含任何结构信息。行为描述主要指顺序语句描述,即通常是指含有进程的非结构化的逻辑描述。

RTL描述:也称为数据流描述,是以规定设计中的各种寄存器形式为特征,然后在寄存器之间插入组合逻辑。RTL描述是建立在用并行信号赋值语句(进程)基础上的,RTL描述能比较直观地表达底层逻辑行为。它既含有逻辑单元的结构信息,又隐含表示某种行为,RTL描述主要是指非结构化的并行语句描述。

结构描述:结构描述是基于元件例化或生成语句的应用,表示元件间的互连,其风格最接近实际的硬件结构。

1.1.3 VHDL基本程序结构

一个相对完整的VHDL设计由以下几个部分组成:

库、程序包;

实体;

结构体;

配置;

其各自作用如图1所示:

图1 VHDL基本程序结构

以上四个部分并不是每一个VHDL程序都必须具备的,其中只有一个实体和一个与之对应的结构体是必须的[8]。

1)实体

实体(ENTITY)是VHDL设计中最基本的一个组成部分,VHDL表达的所有设计均与实体有关。实体类似于原理图中的一个部件符号,它并不描述设计的具体功能,只定义了该设计所需的全部输入输出信号。

实体的语法格式如下:

ENTITY实体名IS

[GENERIC (常数名:数据类型[:设定值])];---- []表示可选项;

PORT

(列出设计的所有输入与输出);

END 实体名;

2)结构体

所有能被仿真的实体都有结构体(ARCHITECTURE)描述,它描述了实体的结构或行为。在结构体描述中可采用行为描述、结构描述或数据流描述三种不同的描述方式(或称为建模方法),从不同的侧面描述结构体的行为方式。在实际应用中,为了兼顾整个设计的功能、资源、性能几方面的因

素,通常混合使用这三种描述方式。

结构体的语法格式如下:

ARCHITECTURE 结构名OF 实体名IS

{说明语句}

BEGIN

功能描述语句;

END 结构体名[9];

1.2 FPGA概述

FPGA(Field Programmable Gates Array)是现场可编程门阵列,FPGA既具有门阵列器件的高度集成度和通用性,又有可编程器件用户可编程的灵活性。所谓现场可编程,是指用户在自己的实验室内编程[10]。

1.2.1 FPGA结构和特点

FPGA具有类似门阵列或类似ASIC的结构,既有门阵列的高逻辑密度和通用性,又有可编程器件的用户可编程性。它通常包含三类可编程资源:可编程逻辑功能块,可编程I/O块和可编程互联网络。可编程逻辑功能块是实现用户功能的基本单元,它们通常排列成一个阵列,散布于整个芯片;可编程I/O块完成芯片上逻辑与外部封装引脚的接口,常围绕着阵列排列于芯片四周;可编程内部网络互连包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或I/O块连接起来,构成特定功能的电路。不同厂家生产的FPGA在可编程逻辑块的规模、内部互连线的结构和采用的可编程元件上存在较大的差异,因而实现逻辑块的规模、内部互连线的结构和采用的可编程元件上存在较大的差异,因而实现逻辑功能的能力也不同。FPGA具有布线灵活,可用逻辑门数多,布线延迟不可预测的特点。

FPGA一般用于逻辑仿真。设计师设计一个电子电路首先要确定线路(也可以用HDL进行行为级描述,然后做逻辑综合),然后进行软件模拟及优化,以确认所设计电路的功能及性能。然后随着电路规模的不断增大,工作频率的不断提高,将会给电路引入许多分布参数的影响,而这些影响用软件模拟的方法较难直接反映出来,所以有必要做硬件仿真。

FPGA可实现硬件仿真以做成模型机。将软件模拟后的线路经一定处理后下载到FPGA,就可很容易地得到一个模型机,根据这个模型机,设计师就可很直观地测试其逻辑功能及性能指标。目前已有一些优秀的EDA软件可将FPGA中的线路直接映射到标准单元库以制成版图,这样就保证了电路设计的正确性。

FPGA门阵列中的每个节点不像CPLD是单独的门,而是用门、触发器等做成的逻辑单元,并在各个单元之间预先制作了许多连线,所谓编程,就是安排逻辑单元与这些连线之间的关系,依靠连接点的合适配置,实现各逻辑单元之间的互联[11]。

FPGA的主要特点是:寄存器数目多,采用查找表计数,适合时序逻辑设计。但是互连复杂。由于互连采用开关矩阵,因而使得延时估计往往不十分准确。它也有自身的局限性,其一就是器件规模的

限制,其二就是单元延迟比较大。所以,在设计者选定某一FPGA器件后,要求设计者对器件的结构、性能作深入的了解,在体系结构设计时,就必须考虑到器件本身的结构及性能,尽可能使设计的结构满足器件本身的要求。这样就增加了设计的难度。离开对FPGA结构的详细了解,设计人员就不可能优化设计,因而设计人员必须了解FPGA的特性和限制,熟悉FPGA的结构。

在了解FPGA结构特点的基础上,就可以利用VHDL语言描写出高效的电路描述实现性能优化的电路[12]。

1.2.2 基于FPGA的数字集成电路设计过程

基于FPGA的设计流程图如图2所示:

图2 基于FPGA的设计流程图

1)设计输入

设计输入就是设计者对逻辑器件的逻辑功能描述。设计输入通常采用图形输入和VHDL文本输入方式。在设计输入过程中,往往采用层次化设计方法,分模块、分层次地进行设计描述。描述器件总功能的模块放在最上层,称顶层设计;描述器件最基本功能的模块放在最低层,称低层设计;一般在顶层设计中采用图形输入法来描述模块连接关系;在低层设计中采用HDL文本输入法描述模块的逻辑功能。

2)项目编辑

为完成对设计的处理,MAX+PLUSll提供了一个完全集成的编译器(Compiler),可直接完成从网表提取到最后编程文件的生成。在编译过程中生成一系列标准文件可进行时序模拟、适配等。在编

译过程中,若某部个环节出错,编译器会停下来,并告诉错误的原因及位置,直到编译通过。

3)项目校验

完成对设计的功能、时序仿真及进行时序分析、寄存器性能分析。

4)项目编程

将设计的项目下载/配置到所选择的器件FPGA中。

由FPGA的设计流程可知,采用VHDL语言进行FPGA设计或利用FPGA进行ASIC前端设计的功能验证,主要工作是系统模块的划分、对各个模块RTL(Registers Transfer Language)级可综合VHDL 语言的描述、功能及时序的仿真,至此仅完成了系统软件上的仿真。由于仿真激励文件的不完善,所以时序仿真的通过并不代表加载到FPGA片中的成功,只有真正通过了FPGA的硬件调试,才是系统设计的真正成功[6]。

2 行列式键盘介绍

2.1行列式键盘概述

为了减少键盘与单片机接口时所占用I/O口线的数目,在键数较多时,通常都将键盘排列成行列矩阵式,行列式键盘又叫矩阵式键盘。用带有I/O口的线组成行列结构,按键设置在行列的交点上。例如用2*2的行列结构可以构成4个键的键盘,4*4的行列结构可以构成有16个键的键盘。这样,当按键数量平方增长时,I/O口线只是线性增长,这样就可以节省I/O口线。

2.2行列式键盘原理

行列式键盘的电路原理图如图3所示

图3 行列式键盘电路原理图

按键设置在行列线交叉点,行、列线分别连接到按键开关的两端。列线通过上拉电阻接+5V的电压,即列线的输出被钳位到高电平状态。行线与按键的一个引脚相连,列线与按键的另一个引脚相连。

判断键盘中有无按键按下是通过行线送入扫描信号,然后从列线读取状态得到的。其方法是依次给行线送低电平,检查列线的输入。如果列线信号全为高电平,则代表低电平信号所在的行中无按键按下;如果列线有输入为低电平,则低电平信号所在的行和出现低电平的列的交点处有按键按下。

设行扫描信号为keydrv3~keydrv0,列线按键输入信号keyin3~keyin0与按键位置的关系如表1所示。

表1 行扫描信号、列按键输入信号与按键位置的关系

3 键盘电路与FPGA 接口实现

3.1系统结构和模块划分

图4 键盘接口电路结构图

由行列式键盘的原理可以知道,要正确地完成按键输入工作必须有按键扫描电路产生keydrv3~keydrv0信号。同时还必须有按键译码电路从keydrv3~keydrv0信号和keyin3~keyin0信号中keydrv3~keydrv0

keyin3~keyin0 对应的按键

1110

1110 1 1101 2 1011 3 0111 4

1101 1110 5 1101 6 1011 7 0111 8

1011 1110 9 1101 0 1011 A 0111 B

0111 1110 C 1101 D 1011 E 0111 F

译码出按键的键值。此外,一般还需要一个按键发生标志信号用于和其他模块接口,通知其它模块键盘上有按键动作发生,并可以从键盘模块中读取按键键值。由于各个模块需要的时钟频率是不一样的,因此时钟产生模块就是用于产生各个模块需要的时钟信号。因此得到键盘接口电路的结构如图4所示。

行列式键盘电路的FPGA实现主要解决三个问题,一是如何检测是否有按键按下并防止采集到干扰信号;二是在按键闭合时如何防止抖动;三是如何判断为哪一个按键位动作,并对其进行译码。因此,要解决这些问题,把行列式键盘接口电路分为键盘扫描电路、键盘译码电路和按键标志产生电路、时钟模块以及键盘顶层电路等四个模块来实现.具体流程图如图5所示[13]。

图5 行列式键盘接口程序流程图

3.2键盘扫描电路模块

3.2.1键盘扫描电路的原理

键盘扫描电路是用于产生keydrv3~keydrv0信号,其变化的顺序依次为1110→1101→1011→0111 →……周而复始地扫描。其停留在每个状态的时间大约为10ms。更短的停留时间是没有必要的,因为人按键的时间大约为10ms,不可能有更快的按键动作发生;另外,更短的停留时间还容易采集到抖动信号,会干扰判断。而太长的停留时间则容易丢失某些较快的按键动作。

图6 键盘扫描电路外部接口

3.2 2键盘扫描电路的语言描述及仿真

键盘扫描电路的VHDL语言描述见附录1。

该程序采用一个状态机来实现扫描电路。该状态机是一个one-hot状态机,并且输出值就是状态机的状态,没有通过一个逻辑电路来做输出译码。这样做的好处是得到的输出信号比较“干净”,没有毛刺。

其仿真波形如图7所示。

图7 键盘扫描电路仿真图

3.3键盘译码电路和按键标志产生电路模块

3.3.1键盘译码电路和按键标志产生电路原理

键盘译码电路是从keydrv3~keydrv0和keyin3~keyin0信号中译码初按键键值的电路,它的真值表见表1所示。按键标志产生电路是产生按键标志信号keypressed的电路。由于这两个电路关系紧密,因此放入同一个模块中实现。其外部接口如图8所示。

图8 键盘译码电路的外部接口

其中clk为全局时钟信号,它是由FPGA芯片的外部晶振给出的。clk在系统中的频率是最高的,其它时钟都由有它分频产生;clk_scan是用于产生扫描信号的时钟信号的,周期为10ms。keydrv为键盘扫描信号,keyin为键盘输入信号,keyvalue为键值(代表按键所在位置),keypressed表示有一个按键被按下,每发生一次按键动作,keypressed就输出一个宽度为全局时钟周期的正脉冲。该信号用于与其它模块握手,负责通知其它模块键盘上有按键发生。其它模块在keypressed有效时,可以读取键值。functionkey信号是表明按键是否为功能键(键A、B、C、D、E和F为功能键)的。functionkey 信号的作用(在很多电路中)是需要区分按键是数字键还是功能键。当按键是功能键时,functionkey 为高电平,否则为低电平。

3.3.2键盘译码电路和按键标志产生电路的语言描述及仿真

键盘译码电路和按键标志产生电路的VHDL语言描述见附录2。

该程序中有三个进程,第一个进程负责译码,值得注意的是WHEN OTHER语句中有没有对temp_pressed和keyvalue信号赋值,这相当于不改变temp_pressed和keyvalue信号的值,即实现了锁存输出。在不需要锁存输出时,在WHEN OTHER语句中,一定要对所有case语句中出现的信号逐

一赋值,以免产生意想不到的结果。第二个进程是负责按键标志产生电路模块,其敏感信号clk_scan 是用于产生扫描信号的时钟,周期为10ms。按键信号temp_pressed首先通过clk_scan信号的上升沿采样。通过采样后,抖动噪声被消除。采样后的信号被分别延迟1~4个clk_scan周期得到4个信号进行或运算得到一个宽约80ms并且与全局时钟一步的按键信号keypressed_asy。这样,一个长时间的按键过程有可能被认为是多次按键,通过这种方法使得一个长时间的按键仍然被认为是一次按键。第三个进程负责把按键同步信号同步化为与全局时钟同步的并且脉宽为一个周期的脉冲[14]。

该电路的仿真结果如图9所示。

图9键盘译码电路仿真波形

通过仿真波形图可以看出,按键动作的抖动不会影响输出的结果;无论一个按键动作持续多久的时间,仍然会被认为是一次按键。

3.4时钟产生模块

3.4.1时钟产生模块原理

时钟产生模块是用于产生扫描时钟的,它的输出提供给键盘扫描模块和按键标志产生模块,其外部接口如图10所示。它的输入是全局时钟,在这里假设全局时钟频率为12MHz。它的输出是周期为100ms的扫描时钟。

图10 时钟产生模块外部接口

3.4.2时钟产生模块的语言描述及仿真

时钟产生模块的VHDL语言描述见附录3。

该程序主要包含有一个计数器模块和一个译码输出模块,该程序是通过计数器模块实现分频的。要从12MHz的全局时钟得到100Hz的时钟,必须进行120000倍的分频。这么大的分频需要仿真时间太久。仿真时一般采用小的分频来替代,(在本程序中采用200分频来仿真)以方便快速观察到结构。等到真正下载到电路上时,就需要采用1200000分频了。另一点值得注意的是译码器的输出采用了寄

存器锁存输出,这是为了消除毛刺。多输入的组合逻辑电路中,某些输入信号在理想情况下应该同时发生变化,但由于延迟路径不同造成这些输入信号发生变化的时间有微小差别(门延迟时间量级),这时得到的输出信号就会有毛刺,这些毛刺有可能会给下一级电路带来问题,使得整个系统运行不稳定。因此,为保证系统的稳健性,一般情况下,都应该给输出信号消去毛刺,是之变得干净。在本程序中,译码器的输入是计数器的输出,计数器各级输出延迟是不一样的,因此译码器输出clk_scan信号波形就会有毛刺。

解决毛刺的方法有两种:

1)设法使得组合逻辑电路的输入每一时刻只有一个发生变化。在本例中就是把计数器从二进制码改为格雷码(Gray Code)计数器。格雷码计数器的特点是相邻的计数值只有一位不同,即每次计数值改变时,只有一位信号会发生变化。这一特点就可以保证没有毛刺产生[15]。

2)把有毛刺的信号通过时钟采样,即通过一个D触发器。本例中就是使用这种方法。这种方法的缺点是信号通过一个D触发器后,就延迟了一个时钟周期。在本例中这种延迟是允许的,然而在有些电路中延迟是不允许的。该电路的仿真结果如图11所示。

图11 时钟产生模块仿真波形图

3.5键盘接口电路顶层电路实现

3.5.1键盘接口电路顶层电路实现原理

键盘接口电路的顶层电路比较简单,基本上只是把键盘扫描模块、键盘译码且按键标志产生模块和时钟产生模块连接起来,其结构如图12所示。

图12 键盘接口电路图

3.5.2键盘接口电路顶层电路的语言描述及仿真

键盘接口电路的VHDL语言描述见附录4。

仿真波形如下图13所示:

图13 键盘接口电路仿真波形

4结束语

经过几个月的努力,我终于完成了对本论文的编写。其中包括研究课题的提出、国内外发展动态的调研、资料的收集、方案的论证、软硬件的设计与调试和最后的测试。本文论述了基于FPGA的键盘接口设计,先介绍VHDL和FPGA的相关知识,然后以行列式键盘为例,介绍了行列式键盘的基本原理及其电路模块的划分,并详细叙述了键盘扫描电路、键盘译码电路、按键标志产生电路、时钟模块以及键盘顶层电路等四个模块的原理及实现过程。在设计中,利用VHDL硬件描述语言在FPGA 芯片上实现键盘接口设计并利用仿真FPGA软件进行仿真,主要解决了三个问题:一是如何检测是否有按键按下并防止采集到干扰信号;二是在按键闭合时如何防止抖动;三是如何判断为哪一个按键位动作,并对其进行译码。

由于本人的理论水平和实践经验有限,错误在所难免,敬请给予批评和指正。

5 参考文献:

[1]杨勇刘佩军主编.微型计算机接口技术(第3版)[M].电子工业出版社,2005,135-142.

[2]张海劲刘强蔡桂玲.用VHDL语言开发可编程逻辑器件[J].光电技术应用,2003,03:16-18.

[3]田源.基于VHDL语言实现FPGA设计[J].火控雷达技术2004,01:58-60.

[4]曾繁泰陈美金主编.VHDL程序设计[M].清华大学出版社,2000,2-16.

[5]张晓军解大陈陈.VHDL语言在电子设计自动化中的应用[J].电力自动化设备2002,05:32-33.

[6]韩进.基于FPGA的计算机可编程外围接口芯片的设计与实现[D].山东科技大学,2003:5-8.

[7]周彩宝刘应学.VHDL语言及其应用[J].计算机工程1998,10:64-65.

[8]吴建国张建勋.VHDL综合系统若干问题处理方法[J].安徽大学学报,2002,02:18-23.

[9]刘淑荣蒋彬.基于VHDL语言的数字电路设计[J].长春工程学院学报,2002,04:60-61.

[10]王开军姜宇柏主编.面向CPLD/FPGA的VHDL设计[M].机械工业出版社,2007,143-148.

[11]罗朝霞高书莉主编.CPLD/FPGA设计及应用[M].人民邮电出版社,2007,10-46.

[12]罗旻沈绪榜高德远.FPGA的VHDL设计策略[J].小型微型计算机系统2003,07:1194-1196.

[13]吕文浩李玉惠李勃.基于FPGA的行列式键盘接口电路设计[J].仪器仪表用户2007,05:64-65.

[14]求是科技.CPLD/FPGA应用开发技术与工程实践[M].人民邮电出版社,2005,368-370.

[15]蒋毅.可编程逻辑器件的应用参考[J].世界电子元器件2005,09:30-32.

6致谢

在做毕业论文的几个月中,我的指导老师和同学不但对我的论文提出了宝贵的意见,而且在各方面都给我很大的支持,使我的论文顺利完成初稿并进入复稿阶段。

首先在这里我要感谢我的指导老师刘强,他不但给我论文思路上的提示,而且帮助我搜集了大量的资料,使我论文的原材料丰富而不复杂,同时他耐心的指导我们在硬件和软件方面的知识,才使我的论文比较顺利的完成,他渊博的知识,耐心的指导,以及务实的研究态度,使我深受感动。

在此,我也要感谢教过我的老师,是他们传授我知识,才能有今天这篇论文的产生,他们在四年不但传授我知识,而且也给我不少人生的指点。同时我要感谢我的同学,他们给我莫大的支持,在我做论文期间,和我一起讨论,给我的论文提了宝贵的意见。

最后,我想感谢大学里一切帮助过我的人,没有他们的帮助,我不可能顺利地毕业,正因为有了这么多帮助我的人,我才能走到今天。衷心地祝福每个人事事顺心,幸福。

附录1

键盘扫描电路的VHDL描述语言

LIBRARY IEEE;

USE IEEE.std_logic_1164.ALL;

ENTITY keysan IS

PORT(

clk_scan:IN STD_LOGIC; --扫描时钟,周期10ms

keydrv: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); --输出扫描信号END keysan;

ARCHITECTURE behavier OF keysan IS

CONSTANT s0: STD_LOGIC_VECTOR(3 DOWNTO 0):="1110"; --定义状态机编码

CONSTANT s1: STD_LOGIC_VECTOR(3 DOWNTO 0):="1101";

CONSTANT s2: STD_LOGIC_VECTOR(3 DOWNTO 0):="1011";

CONSTANT s3: STD_LOGIC_VECTOR(3 DOWNTO 0):="0111";

SIGNAL present_state: STD_LOGIC_VECTOR(3 DOWNTO 0); --状态机现态

SIGNAL next_state: STD_LOGIC_VECTOR(3 DOWNTO 0); --状态机次态

BEGIN

--状态更新进程

PROCESS(clk_scan)

BEGIN

IF(clk_scan'event and clk_scan='1')THEN

present_state<=next_state;

END IF;

END PROCESS;

--状态译码

PROCESS(present_state)

BEGIN

CASE present_state IS

WHEN s0=>next_state<=s1;

WHEN s1=>next_state<=s2;

WHEN s2=>next_state<=s3;

WHEN s3=>next_state<=s0;

WHEN OTHERS=>next_state<=s0;

END CASE;

END PROCESS;

--输出译码

keydrv<=present_state;

END behavier;

附录2

键盘译码电路和按键标志产生电路的VHDL描述语言LIBRARY IEEE;

USE IEEE.std_logic_1164.ALL;

USE IEEE. std_logic_arith.ALL;

ENTITY keydecoder_deb IS

PORT(

keyin:IN STD_LOGIC_VECTOR(3 DOWNTO 0); --键盘输入

keydrv: IN STD_LOGIC_VECTOR(3 DOWNTO 0); --扫描输出

clk: IN STD_LOGIC; --全局时钟

ck_scan: IN STD_LOGIC; --扫描时钟

keyvalue: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --键值

keypressed: OUT STD_LOGIC; --有按键被按下标志

functionkey: OUT STD_LOGIC); --功能键标志END keydecoder_deb;

ARCHITECTURE rtl OF keydecoder_deb IS

SIGNAL temp: STD_LOGIC_VECTOR(7 DOWNTO 0);

--用于产生KEYPRESSED

SIGNAL temp_pressed: STD_LOGIC;

--6个寄存器

SIGNAL q1,q2,q3,q4,q5,q6: STD_LOGIC;

--同步化的keypressed

SIGNAL keypressed_asy:STD_LOGIC;

BEGIN

temp<=keydrv&keyin;

--译码进程

PROCESS(temp)

BEGIN

CASE temp IS

WHEN"11101110"=>keyvalue<=CONV_STD_LOGIC_VECTOR(1,4);

temp_pressed<='1';

functionkey<='0';

WHEN"11101101" =>keyvalue<=CONV_STD_LOGIC_VECTOR(2,4);

temp_pressed<='1';

functionkey<='0';

WHEN"11101011" =>keyvalue<=CONV_STD_LOGIC_VECTOR(3,4);

temp_pressed<='1';

functionkey<='0';

WHEN"11100111" =>keyvalue<=CONV_STD_LOGIC_VECTOR(4,4);

temp_pressed<='1';

functionkey<='0';

WHEN"11011110" =>keyvalue<=CONV_STD_LOGIC_VECTOR(5,4);

temp_pressed<='1';

functionkey<='0'; WHEN"11011101" =>keyvalue<=CONV_STD_LOGIC_VECTOR(6,4);

temp_pressed<='1';

functionkey<='0';

WHEN"11011011" =>keyvalue<=CONV_STD_LOGIC_VECTOR(7,4);

temp_pressed<='1';

functionkey<='0';

WHEN"11010111" =>keyvalue<=CONV_STD_LOGIC_VECTOR(8,4);

temp_pressed<='1';

functionkey<='0';

WHEN"10111110" =>keyvalue<=CONV_STD_LOGIC_VECTOR(9,4);

temp_pressed<='1';

functionkey<='0'; WHEN"10111101" =>keyvalue<=CONV_STD_LOGIC_VECTOR(0,4);

temp_pressed<='1';

functionkey<='0';

WHEN"10111011" =>keyvalue<=CONV_STD_LOGIC_VECTOR(10,4);

temp_pressed<='1';

functionkey<='1';

WHEN"10110111" =>keyvalue<=CONV_STD_LOGIC_VECTOR(11,4);

temp_pressed<='1';

functionkey<='1';

WHEN"01111110" =>keyvalue<=CONV_STD_LOGIC_VECTOR(12,4);

temp_pressed<='1';

functionkey<='1';

WHEN"01111101" =>keyvalue<=CONV_STD_LOGIC_VECTOR(13,4);

temp_pressed<='1';

functionkey<='1';

WHEN"01111011" =>keyvalue<=CONV_STD_LOGIC_VECTOR(14,4);

temp_pressed<='1';

functionkey<='1';

WHEN"01110111" =>keyvalue<=CONV_STD_LOGIC_VECTOR(15,4);

temp_pressed<='1';

functionkey<='1';

WHEN OTHERS =>

temp_pressed<='0';

END CASE;

END PROCESS;

--按键标志产生电路

PROCESS(clk_scan)

BEGIN

IF(clk_scan'event and clk_scan='1')THEN

q1<=temp_pressed;

q2<=q1;

q3<=q2;

q4<=q3;

END IF;

keypressed_asy<=q1 OR q2 OR q3 OR q4;

END PROCESS;

--同步化keypressed_asy

PROCESS(clk)

BEGIN

IF(clk'event and clk='1')THEN

q5<= keypressed_asy;

q6<=q5;

END IF;

keypressed<=q5 AND NOT(q6);

END PROCESS;

END rtl;

附录3

时钟产生模块的VHDL描述语言

LIBRARY IEEE;

USE IEEE.std_logic_1164.ALL;

USE IEEE. std_logic_arith.ALL;

ENTITY clk_gen IS

PORT(

clk:IN STD_LOGIC; --全局时钟

clk_scan:OUT STD_LOGIC --扫描时钟

);

END clk_gen;

ARCHITECTURE rtl OF clk_gen IS

SIGNAL cnt:INTEGER RANGE 0 TO 199;

BEGIN

--计数模块

PROCESS(clk)

BEGIN

IF(clk'event and clk='1')THEN

IF(cnt=cnt'high)THEN

cnt<=0;

ELSE

cnt<=cnt+1;

END IF;

END IF;

END PROCESS;

--译码输出

PROCESS(cnt,clk)

BEGIN

IF(clk'event and clk='1') THEN --寄存器锁存输出,目的消除波形上的“毛刺”

IF cnt>=cnt'high/2 THEN

clk_scan<='1';

ELSE

clk_scan<='0';

END IF;

END IF;

END PROCESS;

END rtl;

基于FPGA的数字时钟的设计1

基于FPGA的数字时钟的设计课题: 基于FPGA的数字时钟的设计 学院: 电气信息工程学院 专业: 测量控制与仪器 班级 : 08测控(2)班 姓名 : 潘志东 学号 : 08314239 合作者姓名: 颜志林 2010 年12 月12 日

综述 近年来随着数字技术的迅速发展,各种中、大规模集成电路在数字系统、控制系统、信号处理等方面都得到了广泛的应用。这就迫切要求理工科大学生熟悉与掌握常用中、大规模集成电路功能及其在实际中的应用方法,除通过实验教学培养数字电路的基本实验方法、分析问题与故障检查方法以及双踪示波器等常用仪器使用方法等基本电路的基本实验技能外,还必须培养大学生工程设计与组织实验能力。 本次课程设计的目的在于培养学生对基本电路的应用与掌握,使学生在实验原理的指导下,初步具备基本电路的分析与设计能力,并掌握其应用方法;自行拟定实验步骤,检查与排除故障、分析与处理实验结果及撰写实验报告的能力。综合实验的设计目的就是培养学生初步掌握小型数字系统的设计能力,包括选择设计方案,进行电路设计、安装、调试等环节,运用所学知识进行工程设计、提高实验技能的实践。数字电子钟就是一种计时装置,它具有时、分、秒计时功能与显示时间功能;具有整点报时功能。 本次设计我查阅了大量的文献资料,学到了很多关于数字电路方面的知识,并且更加巩固与掌握了课堂上所学的课本知识,使自己对数字电子技术有了更进一步的认识与了解。

1、课题要求 1、1课程设计的性质与任务 本课程就是电子与信息类专业的专业的专业基础必修课——“数字电路”的配套实验课程。目的在于培养学生的理论联系实际,分析与解决问题的能力。通过本课程设计,使学生在理论设计、计算机仿真、指标调测、故障排除等方面得到进一步的训练,加强学生的实践能力。学生通过设计、仿真、调试、撰写设计报告等过程,培养学生的动手能力与严谨的工作作风。 1、2课程设计的基本技术要求 1)根据课题要求,复习巩固数字电路有关专业基础知识; 2)掌握数字电路的设计方法,特别就是熟悉模块化的设计思想; 3) 掌握QUARTUS-2软件的使用方法; 4) 熟练掌握EDA工具的使用,特别就是原理图输入,波形仿真,能对仿真波形进行分析; 5) 具备EDA技术基础,能够熟练使用VHDL语言进行编程,掌握层次化设计方法; 6) 掌握多功能数字钟的工作原理,学会不同进制计数器及时钟控制电路的设计方法; 7) 能根据设计要求对设计电路进行仿真与测试; 8) 掌握将所设计软件下载到FPGA芯片的下载步骤等等。 9) 将硬件与软件连接起来,调试电路的功能。 1、3课程设计的功能要求 基本功能:能进行正常的时、分、秒计时功能,分别由6个数码管显示24小时,60分钟,60秒钟的计数器显示。 附加功能:1)能利用硬件部分按键实现“校时”“校分”“清零”功能; 2)能利用蜂鸣器做整点报时:当计时到达59’59’’时开始报时, 鸣叫时间1秒钟; 3)定时闹铃:本设计中设置的就是在七点时进行闹钟功能,鸣叫 过程中,能够进行中断闹铃工作。 本人工作:负责软件的编程与波形的仿真分析。 2、方案设计与分析

基于FPGA的数字钟设计

摘要 伴随着集成电路技术的发展, 电子设计自动化(EDA)技术逐渐成为数字电路设计的重要手段。基于FPGA的EDA技术的发展和应用领域的扩大与深入,使得EDA技术在电子信息,通信,自动控制,计算机等领域的重要性日益突出。 本设计给出了一种基于FPGA的多功能数字钟方法,采用EDA作为开发工具,VHDL语言和图形输入为硬件描述语言,QuartusII作为运行程序的平台,编写的程序经过调试运行,波形仿真验证,下载到EDA实验箱的FPGA芯片,实现了设计目标。 系统主芯片采用CycloneII系列EP2C35F672C8。采用自顶向下的设计思想,将系统分为五个模块:分频模块、计时模块、报时模块、显示模块、顶层模块。用VHDL语言实现各个功能模块, 图形输入法生成顶层模块. 最后用QuartusII 软件进行功能仿真, 验证数字钟设计的正确性。 测试结果表明本设计实现了一个多功能的数字钟功能,具有时、分、秒计时显示功能,以24小时循环计时;具有校正小时和分钟的功能;以及清零,整点报时功能。 关键词:EDA技术;FPGA;数字钟;VHDL语言;自顶向下

Abstract Accompanied by the development of integrated circuit technology, electro nic design automation (EDA) technology is becoming an important means of digital circuit design. FPGA EDA technology development and expansion of a pplication fields and in-depth, the importance of EDA technology in the field of electronic information, communication, automatic control, computer, etc. hav e become increasingly prominent. This design gives a FPGA-based multifunctional digital clock using ED A as a development tool, VHDL language and graphical input hardware descri ption language, the QuartusII as a platform for running the program, written procedures debugging and running, the waveform simulation downloaded to th e FPGA chip to achieve the design goals. The main system chip CycloneII series EP2C35F672C8. Adopted a topdw n design ideas, the system is divided into five modules: frequency module, ti ming module, timer module, display module, the top-level module. With VHD L various functional modules, graphical input method to generate the top-level module. Last QuartusII under simulation, to verify the correctness of the digi tal clock design. The test results show that the design of a multifunctional digital clock, with seconds time display, 24-hour cycle timing; has a school, cleared, and th e whole point timekeeping functions. Key words: EDA technology; FPGA; VHDL language; top-down; digital cloc k

基于FPGA的多功能数据选择器设计与实现

基于FPGA的多功能数据选择器设计与实现 章军海201022020671 [摘要]传统的数字系统设计采用搭积木式的方法来进行设计,缺乏设计的灵活性。随着可编程逻辑器件(PLD)的出现,传统设计的缺点得以弥补,基于PLD的数字系统设计具有很好的灵活性,便于电路系统的修改与调试。本文采用自顶向下的层次化设计思想,基于FPGA设计了一种多功能数据选择器,实现了逻辑单元可编程、I/O单元可编程和连线可编程功能,并给出了本设计各个层次的原理图和仿真时序图;本文还基于一定的假设,对本设计的速度和资源占用的性能进行了优化。 [关键词]层次化设计;EDA;自顶向下;最大时延 0引言: 在现代数字系统的设计中,EDA(电子设计自动化)技术已经成为一种普遍的工具。基于EDA技术的设计中,通常有两种设计思想,一种是自顶向下的设计思想,一种是自底向上的设计思想[1]。其中,自顶向下的设计采用层次化设计思想,更加符合人们的思维习惯,也容易使设计者对复杂系统进行合理的划分与不断的优化,因此是目前设计思想的主流。基于层次化设计思想,实现逻辑单元、I/O单元和连线可编程可以提高资源的利用效率,并且可以简化数字系统的调试过程,便于复杂数字系统的设计[2][3]。 1系统原理图构架设计 1.1系统整体设计原理 本设计用于实现数据选择器和数据分配器及其复用的I/O端口和连线的可编程却换,提高系统的资源利用效率。系统顶层原理框图如图1所示,系统拥有两个地址选择端口a0、a1,一个功能选择端口ctr,还有五路I/O复用端口。其中,地址选择端口用于决定数据选择器的数据输入端和数据分配器的数据输出端;功能选择端口用于切换数据选择器和数据分配器,以及相应的I/O端口和连线;I/O复用端口数据的输入和输出,其功能表如表一所示。 图1顶层模块原理图 表一顶层系统功能表

fpga数字钟课程设计报告

f p g a数字钟课程设计报告 Prepared on 24 November 2020

课程设计报告 设计题目:基于FPGA的数字钟设计 班级:电子信息工程1301 姓名:王一丁 指导教师:李世平 设计时间:2016年1月 摘要 EDA(Electronic Design Automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用Quartus II 为设计软件,VHDL为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言VHDL 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。 关键词:EDA VHDL语言数字钟 目录 摘要 1 课程设计目的 2 课程设计内容及要求

设计任务 设计要求 3 VHDL程序设计 方案论证 系统结构框图 设计思路与方法 状态控制模块 时分秒模块 年月日模块 显示模块 扬声器与闹钟模块 RTL整体电路 4 系统仿真与分析 5 课程设计总结,包括.收获、体会和建议 6 参考文献 1 课程设计目的 (1)通过设计数字钟熟练掌握EDA软件(QUARTUS II)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。 (2)熟悉VHDL 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。 (3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。

基于FPGA的脉冲发生器的设计

【基础?应用】 基于FP GA 的脉冲发生器的设计 ① 张 涛 (北方交通大学电子信息工程学院,北京100044)【摘 要】 以脉冲发生器为研究对象,介绍了脉冲发生器的基本原理、硬件构成和实现方法,阐述了一种基于DSP -FP G A 数字系统的PWM 控制脉冲生成方法,并给出了仿真及实测实验结果。 【关键词】 脉宽调制;脉冲发生器;可编程门阵列 1 FP G A 简介 FP G A (Field Programmable G ate Array ,可编程门阵列)是美国Xinlinx 公司推出的一种采用单元型结构的新型PLD 器件。它采用CMOS 、SRAM 工艺制作,在结构上与阵列型PLD 不同,它的内部由许多独立的可编程逻辑单元构成,各逻辑单元之间可以灵活地相互连接,具有密度高、速度快、编程灵活和可重新配置等诸多优点。FP G A 已成为当前主流的PLD 器件之一。 1.1 PLD 的主要特点 (1)缩短研制周期。 (2)降低设计成本。用PLD 来设计和改造电子产品可以大幅度地减少印制板的面积和接插件,降低装配和调试费用。 (3)提高设计灵活性和可靠性。大量分立式元器件在向印制板上装配时,往往会发生由于虚焊或接触率近似于线性增加,且线性斜率较小;肝脏中大小不同的散射源对不同频率的声波存在有不同的散射效应。 由于肝脏组织结构的非均匀性、复杂性及其各部分散射相关长度分布的不一致性,其散射谱随深度增加而衰减变化,并非完全呈线性关系,而呈现较复杂的关系变化。 ⑵肝叶边缘部分及表层区域,其结构散射近似呈瑞利散射特征;肝叶表层以下与肝叶中心之间的中间区域,其结构散射呈随机散射特征;肝叶中心区域,其结构散射呈扩散漫射特征,也有较强的反射。 ⑶利用区域结构散射特征谱,不仅可对各特征区域组织微结构作出粗略估计,而且可通过区域散射谱特征的变化,对生物软组织的生理病理变化的判断提供依据。 综上所述,利用超声散射谱分析,可为B 超的形态学图像信息诊断提供一个组织特征的信息,在临床上是有应用前景的。 参考文献 [1]Luigi Landini et al.IEEE Trans on U FFC.1990,37(5):448-456 [2]陈启敏等.声学学报.1995,Vol.21,No.4:692-699 [3]E.J.Feleppa ,et al.IEEE Annual International Conference ,EMB ,1990;12(1):337 (责任编辑:常 平) 2003年4月第19卷第2期 武警工程学院学报JOURNAL OF EN GG COLL EGE OF ARMED POL ICE FORCE Apr.2003Vol.19No.2 ①收稿日期:2002-12-06作者简介:张涛(1968.07-),1994年毕业于西安交通大学工业电器自动化专业,现在北方交通大学电子信息工程学院电子与信息工程专业攻读硕士学位。

FPGA实训报告——简易数字钟

桂林电子科技大学职业技术学院 课题:FPGA实训 专业:电子信息工程技术 学号: 姓名:

目录 关键词: (1) 引言: (1) 设计要求: (1) EDA技术介绍: (1) Verilog HDL简介: (1) 方案实现: (2) 工作原理: (2) 总结: (3) 结语: (3) 程序设计: (4)

数字钟 关键词:EDA、Verilog HDL、数字钟 引言: 硬件描述语言HDL(Hardware Des-cription Language)是一种用形式化方法来描述数字电路和系统的语言。目前,电子系统向集成化、大规模和高速等方向发展,以硬件描述语言和逻辑综合为基础的自顶向下的电路设计发放在业界得到迅猛发展,HDL在硬件设计领域的地位将与C和C++在软件设计领域的地位一样,在大规模数字系统的设计中它将逐步取代传统的逻辑状态表和逻辑电路图等硬件描述方法,而成为主要的硬件描述工具。 Verilog HDL是工业和学术界的硬件设计者所使用的两种主要的HDL之一,另外一种是VHDL。现在它们都已经成为IEEE标准。两者各有特点,但Verilog HDL拥有更悠久的历史、更广泛的设计群体,资源也远比VHDL丰富,且非常容易学习掌握。 此次以Verilog HDL语言为手段,设计了多功能数字钟,其代码具有良好的可读性和易理解性。 设计要求: 数字钟模块、动态显示模块、调时模块、到点报时模块等;必须有键防抖动功能。可自行设计8位共阴数码管显示;亦可用FPGA实验平台EDK-3SAISE上的4位数管,但必须有秒指导灯。 EDA技术介绍: 20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。 Verilog HDL简介: 硬件描述语言Verilog是Philip R.Moorby于1983年在英格兰阿克顿市的Gateway Design Automation硬件描述语言公司设计出来的,用于从开关级到算法级的多个抽象设

基于FPGA的Verilog HDL数字钟设计 -

基于FPGA的Verilog HDL数字钟设计 专业班级姓名学号 一、实验目的 1.掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程; 2.熟悉一种EDA软件使用; 3.掌握Verilog设计方法; 4.掌握分模块分层次的设计方法; 5.用Verilog完成一个多功能数字钟设计; 6.学会FPGA的仿真。 二、实验要求 ?功能要求: 利用实验板设计实现一个能显示时分秒的多功能电子钟,基本功能: 1)准确计时,以数字形式显示时、分、秒,可通过按键选择当前显示时间范围模式; 2)计时时间范围00:00:00-23:59:59 3)可实现校正时间功能; 4)可通过实现时钟复位功能:00:00:00 扩展功能: 5)定时报:时间自定(不要求改变),闹1分钟(1kHz)---利用板上LED或外接电路实现。 6)仿广播电台正点报时:XX:59:[51,53,55,57(500Hz);59(1kHz)] ---用板上LED或外接 7)报整点时数:XX:00:[00.5-XX.5](1kHz),自动、手动---用板上LED或外接 8)手动输入校时; 9)手动输入定时闹钟; 10)万年历; 11)其他扩展功能; ?设计步骤与要求: 1)计算并说明采用Basys2实验板时钟50MHz实现系统功能的基本原理。 2)在Xilinx ISE13.1 软件中,利用层次化方法,设计实现模一百计数及显示的电路系 统,设计模块间的连接调用关系,编写并输入所设计的源程序文件。 3)对源程序进行编译及仿真分析(注意合理设置,以便能够在验证逻辑的基础上尽快 得出仿真结果)。 4)输入管脚约束文件,对设计项目进行编译与逻辑综合,生成下载所需.bit文件。 5)在Basys2实验板上下载所生成的.bit文件,观察验证所设计的电路功能。

基于FPGA的模拟IIC接口设计与实现

研究生课程论文 课程名称基于FPGA的模拟IIC接口设计与实现授课学期2012 学年至2013 学年第一学期学院电子工程学院 专业电子与通信工程 学号2012011603 姓名 任课教师 交稿日期2013.01.10 成绩 阅读教师签名 日期 广西师范大学研究生学院制

基于FPGA的模拟I2C接口设计与实现 摘要:本文论述了I2C总线的基本协议,以及基于FPGA 的模拟I2C 总线接口模块的设计,在QuartusII软件中用Verilog HDL语言编写了部分I2C总线接口功能的程序代码,生成原理图模块。并连接好各个模块,进行了时序仿真。最后,下载到FPGA的板运行测试。 关键词:I2C 接口FPGA Verilog 1课题研究意义、现状及应用分析 目前市场上主流的嵌入式设备主要是微处理器、DSP等,但FPGA 以其独有的高抗干扰性、高安全性正在逐步取得开发公司的青睐,在FPGA上开发I2C势在必行。并且利用EDA 工具设计芯片实现系统的功能,已经成为支撑电子设计的通用平台,并逐步向支持系统级的设计方向发展。模块化的设计思想在软件设计过程中越来越被重视。I2C总线是Philips 公司推出的双向两线串行通讯标准,具有接口线少、通讯效率高等特点。因此,基于FPGA的I2C总线设计有着广泛的应用前景。

2课题总体方案设计及功能模块介绍 本设计主要分三大模块,分别是I2C 总线接口模块、按键输入控制模块、数码管显示模块。I2C总线模块集成了I2C协议用于和总线相接EEPROM的通信;按键输入控制模块用于控制I2C模块的页读、页写、字节读、字节写功能;数码管显示模块用于显示通过I2C总线读取EEPROM中的数据。 3I2C接口设计原理 I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10 Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。 3.1总线的构成 I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都

Verilog HDL数字时钟课程设计

课程设计报告 课程设计名称:EDA课程设计课程名称:数字时钟 二级学院:信息工程学院 专业:通信工程 班级:12通信1班 学号:1200304126 姓名:@#$% 成绩: 指导老师:方振汉 年月日

目录 第一部分 EDA技术的仿真 (3) 1奇偶校验器 (3) 1.1奇偶校验器的基本要求 (3) 1.2奇偶校验器的原理 (3) 1.3奇偶校验器的源代码及其仿真波形 (3) 28选1数据选择器 (4) 2.18选1数据选择器的基本要求 (4) 2.28选1数据选择器的原理 (4) 2.38选1数据选择器的源代码及其仿真波形 (5) 34位数值比较器 (6) 3.14位数值比较器的基本要求 (6) 3.24位数值比较器的原理 (6) 3.34位数值比较器的源代码及其仿真波形 (7) 第二部分 EDA技术的综合设计与仿真(数字时钟) (8) 1概述 (8) 2数字时钟的基本要求 (9) 3数字时钟的设计思路 (9) 3.1数字时钟的理论原理 (9) 3.2数字时钟的原理框图 (10) 4模块各功能的设计 (10) 4.1分频模块 (10) 4.2计数模块(分秒/小时) (11) 4.3数码管及显示模块 (13) 5系统仿真设计及波形图........................... 错误!未定义书签。5 5.1芯片引脚图.................................... 错误!未定义书签。5 5.2数字时钟仿真及验证结果 (16) 5.3数字时钟完整主程序 (17) 6课程设计小结 (23) 7心得与体会 (23) 参考文献 (24)

基于FPGA的数字钟设计

南昌大学实验报告 学生姓名:邓儒超学号:6100210045 专业班级:卓越通信101 实验类型:□验证□综合□√设计□创新实验日期:2012.10.28 实验成绩: 实验三数字钟设计 一、实验目的 (1)掌握数字钟的设计 二、实验内容与要求 (1)设计一个数字钟,要求具有调时功能和24/12进制转换功能 (2)进行波形仿真,并分析仿真波形图; (3)下载测试是否正确; 三、设计思路/原理图 本次数字钟的设计采用了自顶向下分模块的设计。底层是实现各功能的模块,各模块由vhdl语言编程实现:顶层采用原理图形式调用。其中底层模块包括秒、分、时三个计数器模块、按键去抖动模块、按键控制模块、时钟分频模块、数码管显示模块,其中,时计数器模块又包括24进制计数模块、12进制计数模块、24/12进制转换模块。设计框图如下: 由图可以清晰的看到数字钟系统设计中各功能模块间连接关系。系统时钟1KHZ经过分频后产生1秒的时钟信号,1秒的时钟信号作为秒计数模块的输入信号,秒计数模块产生的进位信号作为分计数模块的输入信号,分计数模块的进位信号作为时计数模块的输入信号。秒计数模块、分计数模块、时计数模块的计数输出分别送到显示模块。由于设计中要使用按键进行调节时间,而按键的动作过程中存在产生得脉冲的不稳定问题,所以就牵扯到按键去抖动的问题,对此系统中设置了按键去抖动模块,按键去抖动模块产生稳定的脉冲信号送入按键控制模块,按键控制模块根据按键的动作对秒、分、时进行调节。 原理图如下:

四、实验程序(程序来源:参考实验室里的和百度文库的稍加改动,还有自己写的) 1、分频模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fenpin IS PORT(CLK:IN STD_LOGIC; CLK1:OUT STD_LOGIC); END fenpin; ARCHITECTURE behav OF fenpin IS SIGNAL X,CNT:STD_LOGIC_VECTOR(11 DOWNTO 0); BEGIN P1:PROCESS(CLK) BEGIN X<="001111101000";--1000分频 IF CLK'EVENT AND CLK = '1' THEN CNT<=CNT+1; IF CNT=X-1 THEN CLK1<='1';CNT<="000000000000"; ELSE CLK1<='0'; END IF; END IF; END PROCESS; END behav; 2、60进制计数器(秒、分计数器)模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY count60 IS PORT(EN,RST,CLK1: IN STD_LOGIC; Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT: OUT STD_LOGIC); END count60;

FPGA课程设计多功能数字钟讲解

多功能数字钟 开课学期:2014—2015 学年第二学期课程名称:FPGA课程设计 学院:信息科学与工程学院 专业:集成电路设计与集成系统班级: 学号: 姓名: 任课教师: 2015 年7 月21 日

说明 一、论文书写要求与说明 1.严格按照模板进行书写。自己可以自行修改标题的题目 2.关于字体: a)题目:三号黑体加粗。 b)正文:小四号宋体,行距为1.25倍。 3.严禁抄袭和雷同,一经发现,成绩即判定为不及格!!! 二、设计提交说明 1.设计需要提交“电子稿”和“打印稿”; 2.“打印稿”包括封面、说明(即本页内容)、设计内容三部分;订书机左边装订。 3.“电子稿”上交:文件名为“FPGA课程设计报告-班级-学号-姓名.doc”,所有报告发送给班长,由班长统一打包后统一发送到付小倩老师。 4.“打印稿”由班长收齐后交到:12教305办公室; 5.上交截止日期:2015年7月31日17:00之前。

第一章绪论 (3) 关键词:FPGA,数字钟 (3) 第二章FPGA的相关介绍 (4) 2.1 FPGA概述 (4) 2.2 FPGA特点 (4) 2.3 FPGA设计注意 (5) 第三章Quartus II与Verilog HDL相关介绍 (7) 3.1 Quartus II (7) 3.2 Verilog HDL (7) 第四章设计方案 (8) 4.1数字钟的工作原理 (8) 4.2 按键消抖 (8) 4.3时钟复位 (8) 4.4时钟校时 (8) 4.5数码管显示模块。 (8) 第五章方案实现与验证 (9) 5.1产生秒脉冲 (9) 5.2秒个位进位 (9) 5.3按键消抖 (9) 5.4复位按键设置 (10) 5.5 数码管显示。 (10) 5.6 RTL结构总图 (11) 第六章实验总结 (14) 第七章Verilog HDL源代码附录 (15)

基于FPGA的多功能数字钟的设计

基于FPGA的多功能数字钟的设计 摘要数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,是人们日常生活中不可少的必需品。本文介绍了应用FPGA芯片设计多功能数字钟的一种方案,并讨讨论了有关使用FPGA芯片和VHDL语言实现数字钟设计的技术问题。关键词数字钟、分频器、译码器、计数器、校时电路、报时电路。 Design of Abstract Keywords

目录 0.引言 (4) 1.设计要求说明 (4) 1.1设计要求 (4) 1.2完成情况说明 (4) 2.多功能数字钟的基本原理及其在FPGA中的设计与实现 (4) 2.1计时电路 (5) 2.2异步清零电路 (5) 2.3校时、校分功能电路 (5) 2.4报时电路 (6) 2.5分频电路 (7) 2.6闹钟及音乐闹铃电路 (9) 2.7秒表计时电路 (15) 2.8译码显示电路 (15) 2.9逻辑总图 (16) 3.设计感想 (17) 参考文献 (17)

0.引言 数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。钟表的数字化给人们生产生活带来了极大的方便而且大大地扩展了钟表原先的报时功能。因此,研究数字钟及扩大其应用,有着非常现实的意义。 1.设计要求说明 1.1设计要求 1)设计一个具有校时、校分、清零,保持和整点报时功能的数字钟。 2)多数字钟采用层次化的方法进行设计,要求设计层次清晰、合理;构成整个设计的功能模块既可采用原理图方法实现,也可采用文本输入法实 现。 3)数字钟的具体设计要求具有如下功能: ①数字钟的最大计时显示23小时59分59秒; ②在数字钟正常工作时可以进行快速校时和校分,即拨动开关K1可对小 时进行校正,拨动开关K2可对分钟进行校正; ③在数字钟正常工作情况下,可以对其进行不断电复位,即拨动开关K3 可以使时、分、秒回零; ④整点报时是要求数字钟在每小时整点来到前进行鸣叫,鸣叫频率是在 59分53秒、55秒、57秒时为500Hz,59分59秒时为1KHz; ⑤哟啊去所有开关具有去抖动功能。 4)对设计电路进行功能仿真。 5)将仿真通过的逻辑电路下载到EDA实验系统,对其进行验证。 1.2完成情况说明: 对于实验要求的基本功能我们设计的电路都能准确实现。另外,我们还附加了显示星期、秒表、闹钟时间来时播放音乐等功能。 2.多功能数字钟的基本原理及其在FPGA中的设计与实现 通过分析多功能数字钟的设计要求和所要实现的功能,应用层次化方法设计出数字钟应由计时模块、分频脉冲模块、译码显示模块、校时校分和清零模块、报时模块等几个模块组成,其原理框图如下图1所示:

基于fpga的eeprom设计

二线制I2C CMOS 串行EEPROM 的FPGA设计 姓名:钱大成 学号:080230114 院系:物理院电子系 2011年1月1日

一、课程设计摘要: (1)背景知识: A、基本介绍: 二线制I2C CMOS 串行EEPROM AT24C02/4/8/16 是一种采用CMOS 工艺制成的串行可用电擦除可编程只读存储器。 B、I2C (Inter Integrated Circuit)总线特征介绍: I2C 双向二线制串行总线协议定义如下: 只有在总线处于“非忙”状态时,数据传输才能被初始化。在数据传输期间,只要时钟线为高电平,数据线都必须保持稳定,否则数据线上的任何变化都被当作“启动”或“停止”信号。图1 是被定义的总线状态。· ①总线非忙状态(A 段) 数据线SDA 和时钟线 SCL 都保持高电平。 ②启动数据传输(B 段) 当时钟线(SCL)为高电平状态时,数据线(SDA)由高电平变为低电平的下降沿被认为是“启动”信号。只有出现“启动”信号后,其它的命令才有效。

③停止数据传输(C 段) 当时钟线(SCL)为高电平状态时,数据线(SDA)由低电平变为高电平的上升沿被认为是“停止”信号。随着“停在”信号出现,所有的外部操作都结束。 ④数据有效(D 段) 在出现“启动”信号以后,在时钟线(SCL)为高电平状态时数据线是稳定的,这时数据线的状态就要传送的数据。数据线(SDA)上的数据的改变必须在时钟线为低电平期间完成,每位数据占用一个时钟脉冲。每个数传输都是由“启动”信号开始,结束于“停止”信号。 ⑤应答信号 每个正在接收数据的EEPROM 在接到一个字节的数据后,通常需要发出一个应答信号。而每个正在发送数据的EEPROM 在发出一个字节的数据后,通常需要接收一个应答信号。EEPROM 读写控制器必须产生一个与这个应答位相联系的额外的时钟脉冲。在EEPROM 的读操作中,EEPROM 读写控制器对EEPROM 完成的最后一个字节不产生应答位,但是应该给EEPROM 一个结束信号。 C、3. 二线制I2C CMOS 串行EEPROM读写操作 ① EEPROM 的写操作(字节编程方式) 所谓EEPROM 的写操作(字节编程方式)就是通过读写控制器把一个字节数据发送到EEPROM 中指定地址的存储单元。其过程如下:EEPROM 读写控制器发出“启动”信号后,紧跟着送4 位I2C 总线器件特征编码1010 和3 位EEPROM 芯片地址/页地址XXX 以及写状态的R/W 位(=0),到总线上。这一字节表示在接收到被寻址的EEPROM 产生的一个应答位后,读写控制器将跟着发

fpga数字钟课程设计报告

课程设计报告 设计题目:基于FPGA的数字钟设计 班级:电子信息工程1301 学号:20133638 姓名:王一丁 指导教师:李世平 设计时间:2016年1月

摘要 EDA(Electronic Design Automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用Quartus II 为设计软件,VHDL为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言VHDL 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。 关键词:EDA VHDL语言数字钟

目录 摘要 1 课程设计目的 2 课程设计内容及要求 2.1 设计任务 2.2 设计要求 3 VHDL程序设计 3.1方案论证 3.2 系统结构框图 3.3设计思路与方法 3.3.1 状态控制模块 3.3.2 时分秒模块 3.3.3 年月日模块 3.3.4 显示模块 3.3.5脉冲产生模块 3.3.6 扬声器与闹钟模块 3.4 RTL整体电路 4 系统仿真与分析 5 课程设计总结,包括.收获、体会和建议 6 参考文献

1 课程设计目的 (1)通过设计数字钟熟练掌握EDA软件(QUARTUS II)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。 (2)熟悉VHDL 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。 (3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。 2 课程设计内容及要求 2.1 设计任务 (1)6个数字显示器显示时分秒,setpin按键产生一个脉冲,显示切换为年月日。 (2)第二个脉冲可预置年份,第三个脉冲可以预置月份,依次第四、 五、六、七个脉冲到来时分别可以预置时期、时、分、秒,第八个脉冲到来后预置结束正常从左显示时分秒。 (3)up为高时,upclk有脉冲到达时,预置位加一,否则减一。 2.2 设计要求 (1)在基本功能的基础上,闹钟在整点进行报时,产生一定时长的高电平。 (2)实现闹钟功能,可对闹钟时间进行预置,当达到预置时间时进行报时。

基于FPGA的数字时钟

xxxx大学 电子设计自动化技术与应用 设计报告 设计题目:基于FPGA的数字时钟 学院:通信学院 姓名: 学号:

目录 一、设计任务 (3) 二、总体设计方案 (3) 1、设计思想 (3) 2、总体设计框图 (3) 三、单元电路设计 (4) 1、秒计数器模块设计与实现 (4) 2、分计数器模块设计与实现 (5) 3、时计数器模块设计与实现 (6) 4、2选1选择器模块设计与实现 (7) 5、译码器模块的设计与实现 (8) 6、3-8线译码器模块设计与实现 (9) 7、分频器的设计与实现 (9) 8、顶层原理设计图 (10) 四、硬件测试与结果分析 (11) 1、硬件测试: (11) 2、测试过程及结果分析 (12) 五、收获与体会 (12)

一、设计任务 1、能进行正常的时、分、秒计时功能,由LED数码管显示时间,最大计时 为23:59:59。 2、小时显示采用24进制,分显示和秒显示都采用60进制。 3、具有调时和调分功能。 二、总体设计方案 1、设计思想 本设计是基于Altera公司的Cyclone III 系列的EP3C16Q240C8芯片设计的,采用层次化设计方式,先设计数字时钟的底层器件:秒计数器、分计数器、时计数器、2选1选择器、译码器、分频器。顶层采用原理图设计方式,将所设计的底层器件连接起来构成一个具有计时和调时功能的数字时钟。 2、总体设计框图 完整的数字时钟设计硬件框图如图所示。

三、单元电路设计 1、秒计数器模块设计与实现 1.1秒计数器流程图如下: 1.2秒计数器生成模块如图1所示: 图1 其中,clk 是时钟信号,daout 是60计数输出,enmin 是向分进位的高电平。 1.3 波形仿真图

基于FPGA芯片的最小系统设计

黑龙江大学本科生 毕业论文(设计)档案编码: 学院:电子工程学院 专业:电子信息工程 年级:2007 学生姓名:王国凯 毕业论文题目:基于FPGA 的电梯自动控制 系统设计

摘要 本文在介绍了在当前国内外信息技术高速发展的今天,电子系统数字化已成为有目共睹的趋势。从传统的应用中小规模芯片构成电路系统到广泛地应用单片机,直至今天FPGA 在系统设计中的应用,电子设计技术已迈人了一个全新的阶段。FPGA 利用它的现场可编程特性,将原来的电路板级产品集成为芯片级产品,缩小体积,缩短系统研制周期,方便系统升级,具有容量大、逻辑功能强,提高系统的稳定性,而且兼有高速、高可靠性。越来越多的电子设计人员使用芯片进行电子系统的设计,通过基于FPGA 电梯系统开发设计,说明了FAPG 芯片研究的动机和研究意义。 关键词 FPGA;电梯系统;FLEX10K;JTAG;模块设计

Ab s t ract This paper introduces the rapid development of information technology around the world today. Digitalized electronic systems have become the trend. From the traditional application of small and medium-chip circuitry to Microcontroller and FPGA application in system design, electronic design technology is stepping into a new field. By using its field programmable features, FPGA changes the original circuit board-level products to the chip-level integration products. Now FPGA has advantages of reduced the size, shorten development cycle, facilitated in system upgrades, highly capacity, strong logic functions, stable system and high speed. More and more electronic designers use FPGA to design electronic systems. This paper shows the motivation and significance of designing by FPGA through the elevator FPGA system design. Ke ywo r d FPGA; Mini-System; FLEX10K; JTAG;Module design

基于FPGA的数字时钟的设计1

基于FPGA 的数字时钟的设计 课 题: 基于FPGA 的数字时钟的设计 学 院: 电气信息工程学院 专 业 : 测量控制与仪器 班 级 : 08测控(2)班 姓 名 : 潘 志 东 学 号 : 08314239 合作者姓名: 颜志林 2010 年 12 月 12 日

综述 近年来随着数字技术的迅速发展,各种中、大规模集成电路在数字系统、控制系统、信号处理等方面都得到了广泛的应用。这就迫切要求理工科大学生熟悉和掌握常用中、大规模集成电路功能及其在实际中的应用方法,除通过实验教学培养数字电路的基本实验方法、分析问题和故障检查方法以及双踪示波器等常用仪器使用方法等基本电路的基本实验技能外,还必须培养大学生工程设计和组织实验能力。 本次课程设计的目的在于培养学生对基本电路的应用和掌握,使学生在实验原理的指导下,初步具备基本电路的分析和设计能力,并掌握其应用方法;自行拟定实验步骤,检查和排除故障、分析和处理实验结果及撰写实验报告的能力。综合实验的设计目的是培养学生初步掌握小型数字系统的设计能力,包括选择设计方案,进行电路设计、安装、调试等环节,运用所学知识进行工程设计、提高实验技能的实践。数字电子钟是一种计时装置,它具有时、分、秒计时功能和显示时间功能;具有整点报时功能。 本次设计我查阅了大量的文献资料,学到了很多关于数字电路方面的知识,并且更加巩固和掌握了课堂上所学的课本知识,使自己对数字电子技术有了更进一步的认识和了解。

1、课题要求 1.1课程设计的性质与任务 本课程是电子与信息类专业的专业的专业基础必修课——“数字电路”的配套实验课程。目的在于培养学生的理论联系实际,分析和解决问题的能力。通过本课程设计,使学生在理论设计、计算机仿真、指标调测、故障排除等方面得到进一步的训练,加强学生的实践能力。学生通过设计、仿真、调试、撰写设计报告等过程,培养学生的动手能力和严谨的工作作风。 1.2课程设计的基本技术要求 1)根据课题要求,复习巩固数字电路有关专业基础知识; 2)掌握数字电路的设计方法,特别是熟悉模块化的设计思想; 3) 掌握QUARTUS-2软件的使用方法; 4) 熟练掌握EDA工具的使用,特别是原理图输入,波形仿真,能对仿真波形进行分析; 5) 具备EDA技术基础,能够熟练使用VHDL语言进行编程,掌握层次化设计方法; 6) 掌握多功能数字钟的工作原理,学会不同进制计数器及时钟控制电路的设计方法; 7) 能根据设计要求对设计电路进行仿真和测试; 8) 掌握将所设计软件下载到FPGA芯片的下载步骤等等。 9) 将硬件与软件连接起来,调试电路的功能。 1.3课程设计的功能要求 基本功能:能进行正常的时、分、秒计时功能,分别由6个数码管显示24小时,60分钟,60秒钟的计数器显示。 附加功能:1)能利用硬件部分按键实现“校时”“校分”“清零”功能; 2)能利用蜂鸣器做整点报时:当计时到达59’59’’时开始报时,鸣叫时间1秒钟; 3)定时闹铃:本设计中设置的是在七点时进行闹钟功能,鸣叫过程中,能够进行中断闹铃工作。 本人工作:负责软件的编程与波形的仿真分析。 2、方案设计与分析

相关文档
最新文档