脉冲与数字电路简单运算器.docx

上传人:b****5 文档编号:5914088 上传时间:2023-01-02 格式:DOCX 页数:25 大小:531.27KB
下载 相关 举报
脉冲与数字电路简单运算器.docx_第1页
第1页 / 共25页
脉冲与数字电路简单运算器.docx_第2页
第2页 / 共25页
脉冲与数字电路简单运算器.docx_第3页
第3页 / 共25页
脉冲与数字电路简单运算器.docx_第4页
第4页 / 共25页
脉冲与数字电路简单运算器.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

脉冲与数字电路简单运算器.docx

《脉冲与数字电路简单运算器.docx》由会员分享,可在线阅读,更多相关《脉冲与数字电路简单运算器.docx(25页珍藏版)》请在冰豆网上搜索。

脉冲与数字电路简单运算器.docx

脉冲与数字电路简单运算器

 

洛阳理工学院

课程设计报告

课程名称脉冲与数字电路

设计题目简单运算器

专业通信工程

班级B1005000

学号B100000

姓名LLL

完成日期2012年6月7日

课程设计任务书

设计题目:

基于FPGA的简单运算器

_________________________________________________________

设计内容与要求:

 

设计能够进行基本的+、-、/、*运算的简单运算器,并且下载验证成功

 

指导教师:

XXX

2012年6月7日

课程设计评语

 

成绩:

指导教师:

_______________

年月日

摘要

本设计是一个运算器,由按键输入模块、控制信号产生模块、修正结果模块和显示模块四个模块外加逻辑运算部分总成。

能够对数据进行各种运算,包括两个数的加减、与和异或。

该运算器用QuartusII仿真软件设计,并测试功能正常,下载验证成功。

关键词:

运算器按键输入模块控制信号模块修正结果模块显示模块运算器模块

 

目录

摘要1

前言3

第一章系统原理6

1.1编码原理6

第二章系统工作过程7

2.1按键输入模块7

2.1.1工作原理7

2.1.2仿真分析10

2.2控制信号产生模块10

2.2.1工作原理10

2.2.2仿真分析12

2.3修正结果模块13

2.3.1工作原理13

2.3.2仿真分析15

2.4显示模块16

2.4.1工作原理16

2.5运算器模块18

2.5.1工作原理18

第三章下载验证19

3.1各模块封装20

3.1.1KEY20

3.1.2CP320

3.1.3XZJG21

3.1.4XIANSHI21

3.1.5ysq21

3.2引脚锁定设置22

3.3配置文件下载23

3.4硬件测试23

结论24

参考文献25

 

前言

世界上第一片FPGA由美国Xilinx公司于1985年率先推出。

进入21世纪之后,以FPGA为核心的单片系统(SOC)和可编程系统(SOPC)有了显著的发展,单片FPGA的集成规模已达到几百万门,其工作速度已超过300MHz。

FPGA在结构上已经实现了复杂系统所需要的主要功能,并将多种功能集成在一片FPGA器件中,如嵌入式存储器、嵌入式乘法器、嵌入式处理器、高速I/O缓冲器、外置存储器接口和实现数字信号处理的DSP等功能。

随着FPGA性能的不断完善,FPGA器件的种类日益丰富,受到世界范围内电子设计人员的普遍欢迎,并占据了较大的市场,其生产厂家也由原来的Xilinx公司一家增加到Altera、Actel、lattice等十几家公司。

Altera公司的主要产品有:

属于FPGA的FLEX、ACEX、APEX、Mercury、Excalibur、Stratix和Cyclone等系列;属于CPLD的MAX和Classic系列。

开发工具有,被普遍认为是最优秀PLD开发平台之一的MAX+PlusII和支持APEX、Mercury、Excalibur、Stratix和Cyclone系列器件的QuartusII开发软件。

Cyclone系列器件是Altera公司推出的低价位FPGA产品,是Stratix系列的简化版,分为CycloneI和CycloneII两个系列。

CycloneI系列产品为基于1.5V、采用0.13um全铜SRAM工艺的低成本FPGA。

CycloneII系列产品基于1.2V,采用0.09um全铜CMOS工艺,SRAM编程技术,其成本更低、容量更高、速度更快。

它和高性能的StratixII系列的FPGA是目前Altera公司主流产品。

我的运算器主要是用VHDL语言编写,以CycloneⅡ器件为依托,并下载到Altera仿真工具箱CycloneⅡ-EP2C5T144C8验证功能成功,能够初步完成运算器的雏形。

随着大规模集成电路技术和计算机技术的高速发展,在涉及通信、国防、工业自动化、计算机设计与应用、仪器仪表等领域的电子系统设计工作中,FPGA技术的含量正以惊人的速度提升。

电子类的新技术项目的开发也更多地依赖于FPGA技术的应用,特别是随着HDL等硬件描述语言综合功能和性能的提高,计算机中许多重要的元件(包括CPU)都用硬件描述语言来设计和表达,许多微机CPU、硬核嵌入式系统(如ARM、MIPS)、软核嵌入式系统(如NiosII)、大型CPU,乃至整个计算机系统都用FPGA来实现,即所谓的单片系统SOC或SOPC(SystemOnaChip、SystemOnaProgrammerableChip)。

计算机和CPU的设计技术及其实现途径进入了一个全新的时代!

不但如此,传统的CPU结构模式,如冯诺依曼结构和哈佛结构正在接受巨大的挑战。

例如美国WincomSystems公司推出一款令人惊叹的服务器,其核心部分是由FPGA完成的超强功能CPU。

该系统工作能力超过50台DELL或IBM计算机,或SUNMicrosystems公司的服务器。

该服务器的处理速度要比传统服务器快50到300倍。

我们知道,传统的PC机及服务器通常采用诸如Intel公司的奔腾处理器或SUN公司的SPARC芯片作为中央处理单元,而WincomSystems的这款产品却没有采用微处理器,而是由FPGA芯片驱动。

FPGA芯片的运行速度虽比奔腾处理器慢,但可并行处理多项任务,而微处理器一次仅能处理一项任务。

因此,WincomSystems的服务器只需配置几个价格仅为2000多美元的FPGA芯片,便可击败SUN公司的服务器或采用Intel处理器的计算机。

50多年前,匈牙利数学家冯诺依曼提出了计算机的设计构想:

通过中央处理器从储存器中存取数据,并逐一处理各项任务。

然而现在,却采用FPGA取代传统微处理器获得了更高的性能,致使美国Xilinx公司的首席执行官WillemRoelandts认为:

“由冯诺依曼提出的电脑架构已经走到尽头”,“可编程芯片将掀起下一轮应用高潮”。

FPGA芯片操作灵活,可以重复擦写无限次,而微处理器均采用固定电路,只能进行一次性设计。

设计人员可通过改变FPGA中晶体管的开关状态对电路进行重写,即重配置,从而尽管FPGA芯片的时钟频率要低于奔腾处理器,但是由于FPGA芯片可并行处理各种不同的运算,所以可以完成许多复杂的任务。

正如WillemRoelandts所说的,“我们认为下一代超级电脑将基于可编程逻辑器件”,他声称,这种机器的功能比目前最大的超级电脑还要强大许多倍。

EDA专家WilliamCarter认为,只要EDA开发工具的功能允许,将有无数的证据证明FPGA具有这种神奇的能力,进而实现基于FPGA的超级电脑的开发。

此外,美国加州大学伯克利分校和杨百翰大学的研究人员也正在设计基于FPGA的电脑,这些电脑可在运行中实现动态重配置。

这对定位危险目标等军事应用和面容识别之类的计算密集型安全应用十分有用。

由此看来,在计算机应用领域和计算机系统设计领域中,EDA技术和FPGA的应用方兴未艾!

硬件描述语言HDL(HardwareDescriptionLanguage)是EDA技术的另一重要组成部分,常见的HDL有:

VHDL、VerilogHDL、SystemVerilog和SystemC。

其中VHDL、Verilog在现在EDA设计中使用最多,也得到几乎所有的主流EDA工具的支持。

而后两种HDL语言尚处于完善过程中。

VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。

VHDL具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述能力,在语言易读性和层次化结构设计方面表现了强大的生命力和应用潜力。

因此,VHDL支持各种模式的设计方法:

自顶向下与自底向上或混合方法,在面对当今许多电子产品生命周期缩短,需要多次重新设计以融入最新技术、改变工艺等方面,VHDL都表现了良好的适应性。

第一章系统原理

1.1编码原理

本电路使用EP2C5T144C8设计,外加一个8按键电路和一个32位LCD显示器。

能完成-7到7之内的加减乘除运算,并显示到LCD显示器上。

其中8个按键从左到右依次是×,÷,+,—,UP,DN,C,=。

限于只有8个按键,输入数字只能用两个按键(UP,DN),其中up表示增,dn表示减。

在按运算符号之前,up和dn都是对第一个数操作的,按过运算符号之后up和dn都是对第二个数操作的。

按等号之后运算结果显示在LCD显示器上。

本电路并且有结果修正电路,对于超过8、--8的数字进行修正,可以方便的读出运算结果。

顶层电路图

图1-1顶层电路图

 

第二章系统工作过程

2.1按键输入模块

2.1.1工作原理

VHDL实现

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYKEYIS

PORT(EN:

OUTSTD_LOGIC;

YSF:

OUTSTD_LOGIC_VECTOR(1DOWNTO0);

RSTN,CLK:

INSTD_LOGIC;

KEYA,KEYB:

INSTD_LOGIC;

KADD,KSUB,KAND,KXOR,KEQU:

INSTD_LOGIC;

A,B,C,D:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

XSYSF:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

XA,XB:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDKEY;

ARCHITECTUREARCHOFKEYIS

SIGNALTKADD,TKSUB,TKAND,TKXOR,TKEQU:

STD_LOGIC;

SIGNALTA,TB:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

PROCESS(KEYA,RSTN)

BEGIN

IFRSTN='0'THENTA<="0000";

ELSIF(KEYA'EVENTANDKEYA='1')THEN

TA<=TA+1;

ENDIF;

ENDPROCESS;

PROCESS(KEYB,RSTN)

BEGIN

IFRSTN='0'THENTB<="0000";

ELSIF(KEYB'EVENTANDKEYB='1')THEN

TB<=TB+1;

ENDIF;

ENDPROCESS;

PROCESS(RSTN,KADD)

BEGIN

IFRSTN='0'THENTKADD<='0';

ELSIF(KADD'EVENTANDKADD='1')THENTKADD<='1';ENDIF;

ENDPROCESS;

PROCESS(RSTN,KSUB)

BEGIN

IFRSTN='0'THENTKSUB<='0';

ELSIF(KSUB'EVENTANDKSUB='1')THENTKSUB<='1';ENDIF;

ENDPROCESS;

PROCESS(RSTN,KAND)

BEGIN

IFRSTN='0'THENTKAND<='0';

ELSIF(KAND'EVENTANDKAND='1')THENTKAND<='1';ENDIF;

ENDPROCESS;

PROCESS(RSTN,KXOR)

BEGIN

IFRSTN='0'THENTKXOR<='0';

ELSIF(KXOR'EVENTANDKXOR='1')THENTKXOR<='1';ENDIF;

ENDPROCESS;

PROCESS(RSTN,KEQU)

BEGIN

IFRSTN='0'THENTKEQU<='0';

ELSIF(KEQU'EVENTANDKEQU='1')THENTKEQU<='1';ENDIF;

ENDPROCESS;

PROCESS(RSTN,CLK,TKADD,TKSUB,TKAND,TKXOR,TKEQU,TA,TB)

BEGIN

IFRSTN='0'THENYSF<="00";EN<='0';XSYSF<="00100000";

ELSIF(CLK'EVENTANDCLK='1')THEN

IFTKADD='1'THENYSF<="00";XSYSF<="00101011";A<=TA;B<=TB;ENDIF;

IFTKSUB='1'THENYSF<="01";XSYSF<="00101101";A<=TA;B<=TB;ENDIF;

IFTKAND='1'THENYSF<="10";XSYSF<="00101010";A<=TA;C<=TB;ENDIF;

IFTKXOR='1'THENYSF<="11";XSYSF<="00101111";A<=TA;D<=TB;ENDIF;

IFTKEQU='1'THENEN<='1';ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(TA,TB,CLK)

BEGIN

IF(CLK'EVENTANDCLK='1')THEN

CASETAIS

WHEN"0000"=>XA<="00110000";

WHEN"0001"=>XA<="00110001";

WHEN"0010"=>XA<="00110010";

WHEN"0100"=>XA<="00110100";

WHEN"0101"=>XA<="00110101";

WHEN"0110"=>XA<="00110110";

WHEN"0111"=>XA<="00110111";

WHEN"1000"=>XA<="00111000";

WHEN"1001"=>XA<="00111001";

WHEN"1010"=>XA<="01000001";

WHEN"1011"=>XA<="01000010";

WHEN"1100"=>XA<="01000100";

WHEN"1101"=>XA<="01000100";

WHEN"1110"=>XA<="01000101";

WHEN"1111"=>XA<="01000110";

WHENOTHERS=>NULL;

ENDCASE;

CASETBIS

WHEN"0000"=>XB<="00110000";

WHEN"0001"=>XB<="00110001";

WHEN"0010"=>XB<="00110010";

WHEN"0011"=>XB<="00110011";

WHEN"0100"=>XB<="00110100";

WHEN"0101"=>XB<="00110101";

WHEN"0110"=>XB<="00110110";

WHEN"0111"=>XB<="00110111";

WHEN"1000"=>XB<="00111000";

WHEN"1001"=>XB<="00111000";

WHEN"1010"=>XB<="01000001";

WHEN"1011"=>XB<="01000010";

WHEN"1100"=>XB<="01000011";

WHEN"1101"=>XB<="01000100";

WHEN"1110"=>XB<="01000101";

WHEN"1111"=>XB<="01000110";

WHENOTHERS=>NULL;

ENDCASE;

ENDIF;

ENDPROCESS;

ENDARCH;

2.1.2仿真分析

图2-1仿真分析波形图

2.2控制信号产生模块

2.2.1工作原理

VHDL实现

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCP3IS

PORT(RSTN,CLK:

INSTD_LOGIC;

CP,CPT,CPMUX:

BUFFERSTD_LOGIC;

SADD,SSUB,SAND,SXOR:

OUTSTD_LOGIC_VECTOR(1DOWNTO0));

ENDCP3;

ARCHITECTUREBEHAVIORALOFCP3IS

TYPESTATE1IS(S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11);

SIGNALPRES1,NXS1:

STATE1;

TYPESTATE2IS(SS0,SS1,SS2,SS3);

SIGNALPRES2,NXS2:

STATE2;

BEGIN

PROCESS(CLK,RSTN)

BEGIN

IF(RSTN='0')THENPRES1<=S0;

ELSIF(CLK'EVENTANDCLK='1')THEN

PRES1<=NXS1;

ENDIF;

ENDPROCESS;

PROCESS(PRES1)

BEGIN

CASEPRES1IS

WHENS0=>

CP<='1';CPMUX<='0';CPT<='0';NXS1<=S1;

WHENS1=>

CP<='0';CPMUX<='0';CPT<='0';NXS1<=S2;

WHENS2=>

CP<='0';CPMUX<='0';CPT<='0';NXS1<=S3;

WHENS3=>

CP<='1';CPMUX<='1';CPT<='0';NXS1<=S4;

WHENS4=>

CP<='1';CPMUX<='1';CPT<='0';NXS1<=S5;

WHENS5=>

CP<='0';CPMUX<='0';CPT<='0';NXS1<=S6;

WHENS6=>

CP<='0';CPMUX<='0';CPT<='0';NXS1<=S7;

WHENS7=>

CP<='1';CPMUX<='1';CPT<='0';NXS1<=S8;

WHENS8=>

CP<='1';CPMUX<='1';CPT<='0';NXS1<=S9;

WHENS9=>

CP<='0';CPMUX<='1';CPT<='1';NXS1<=S10;

WHENS10=>

CP<='0';CPMUX<='1';CPT<='1';NXS1<=S11;

WHENS11=>

CP<='1';CPMUX<='1';CPT<='1';NXS1<=S11;

ENDCASE;

ENDPROCESS;

PROCESS(CP,RSTN)

BEGIN

IF(RSTN='0')THENPRES2<=SS0;

ELSIF(CP'EVENTANDCP='0')THEN

PRES2<=NXS2;

ENDIF;

ENDPROCESS;

PROCESS(PRES2)

BEGIN

CASEPRES2IS

WHENSS0=>

SADD<="00";SSUB<="00";SAND<="00";SXOR<="00";

NXS2<=SS1;

WHENSS1=>

SADD<="01";SSUB<="00";SAND<="00";SXOR<="00";

NXS2<=SS2;

WHENSS2=>

SADD<="00";SSUB<="01";SAND<="10";SXOR<="11";

NXS2<=SS3;

WHENSS3=>

SADD<="00";SSUB<="01";SAND<="10";SXOR<="11";

NXS2<=SS3;

ENDCASE;

ENDPROCESS;

ENDBEHAVIORAL;

2.2.2仿真分析

图2-2仿真分析波形图

2.3修正结果模块

2.3.1工作原理

VHDL实现

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYXZJGIS

PORT(RSTN:

INSTD_LOGIC;

S:

INSTD_LOGIC_VECTOR(1DOWNTO0);

CLK,OVER,COUT:

INSTD_LOGIC;

T:

INSTD_LOGIC_VECTOR(3DOWNTO0);

FH:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

SH,SL:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDXZJG;

ARCHITECTUREBEHAVIORALOFXZJGIS

SIGNALOC:

STD_LOGIC_VECTOR(1DOWNTO0);

SIGNALTH,TL:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

PROCESS(RSTN,CLK,OVER,COUT)

BEGIN

IF(CLK'EVENTANDCLK='1')THEN

OC<=OVER&COUT;

ENDIF;

ENDPROCESS;

PROCESS(OC,CLK)

BEGIN

IF(RSTN='0')THEN

TH<="0000";TL<="0000";

ELSIF(CLK'EVENTANDCLK='1')THEN

CASEOCIS

WHEN"00"=>TH<="0000";

CASETIS

WHEN"0000"=>TH<="0000";FH<="00101011";

WHEN"0001"=>TH<="0001";FH<="00101011";

WHEN"0010"=>TH<="0010";FH<="00101011";

WHEN"0011"=>TH<="0011";FH<="00101011";

WHEN"0100"=>TH<="0100";FH<="00101011";

WHEN"0101"=>TH<="0101";FH<="00101011";

WHEN"0110"=>TH<="0110";FH<="00101011";

WHEN"0111"=>TH<="0111";FH<="00101011";

WHEN"1000"=>TH<="1000";FH<="01011101";

WHEN"1001"=>TH<="0111";FH<="00101101";

WHEN"1010"=>TH<="0110";FH<="00101101";

W

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1