基于fpga的简单运算器课程设计

上传人:1888****888 文档编号:38002568 上传时间:2021-11-05 格式:DOC 页数:29 大小:2.10MB
返回 下载 相关 举报
基于fpga的简单运算器课程设计_第1页
第1页 / 共29页
基于fpga的简单运算器课程设计_第2页
第2页 / 共29页
基于fpga的简单运算器课程设计_第3页
第3页 / 共29页
点击查看更多>>
资源描述
洛 阳 理 工 学 院课 程 设 计 报 告 课程名称 脉冲与数字电路 设计题目 简单运算器 专 业 通信工程 班 级 B1005000 学 号 B100000 姓 名 LLL 完成日期 2012年6月7日 课 程 设 计 任 务 书设计题目: 基于FPGA的简单运算器 _设计内容与要求:设计能够进行基本的+、-、/、*运算的简单运算器,并且下载验证成功 指导教师: XXX 2012 年 6月 7日课 程 设 计 评 语 成绩: 指导教师:_ 年 月 日洛 阳 理 工 学 院 课 程 设 计 报 告摘要本设计是一个运算器,由按键输入模块、控制信号产生模块、修正结果模块和显示模块四个模块外加逻辑运算部分总成。能够对数据进行各种运算,包括两个数的加减、与和异或。该运算器用Quartus II仿真软件设计,并测试功能正常,下载验证成功。关键词:运算器 按键输入模块 控制信号模块 修正结果模块 显示模块 运算器模块目录摘要1前言3第一章系统原理61.1编码原理6第二章 系统工作过程72.1 按键输入模块72.1.1工作原理72.1.2仿真分析102.2 控制信号产生模块102.2.1工作原理102.2.2仿真分析122.3修正结果模块132.3.1工作原理132.3.2仿真分析152.4 显示模块162.4.1工作原理162.5 运算器模块182.5.1工作原理18第三章 下载验证193.1各模块封装203.1.1KEY203.1.2CP3203.1.3XZJG213.1.4XIANSHI213.1.5ysq213.2引脚锁定设置223.3 配置文件下载233.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+Plus II和支持APEX、Mercury、Excalibur、Stratix和Cyclone系列器件的Quartus II开发软件。Cyclone系列器件是Altera公司推出的低价位FPGA产品,是Stratix系列的简化版,分为Cyclone I和Cyclone II两个系列。Cyclone I系列产品为基于1.5V、采用0.13um全铜SRAM工艺的低成本FPGA。Cyclone II 系列产品基于1.2V,采用0.09um全铜CMOS工艺,SRAM编程技术,其成本更低、容量更高、速度更快。它和高性能的Stratix II系列的FPGA是目前Altera公司主流产品。我的运算器主要是用VHDL语言编写,以Cyclone器件为依托,并下载到Altera仿真工具箱Cyclone-EP2C5T144C8验证功能成功,能够初步完成运算器的雏形。随着大规模集成电路技术和计算机技术的高速发展,在涉及通信、国防、工业自动化、计算机设计与应用、仪器仪表等领域的电子系统设计工作中,FPGA技术的含量正以惊人的速度提升。电子类的新技术项目的开发也更多地依赖于FPGA技术的应用,特别是随着HDL等硬件描述语言综合功能和性能的提高,计算机中许多重要的元件(包括CPU)都用硬件描述语言来设计和表达,许多微机CPU、硬核嵌入式系统(如ARM、MIPS)、软核嵌入式系统(如NiosII)、大型CPU,乃至整个计算机系统都用FPGA来实现,即所谓的单片系统SOC或SOPC(System On a Chip、System On a Programmerable Chip)。计算机和CPU的设计技术及其实现途径进入了一个全新的时代!不但如此,传统的CPU结构模式,如冯诺依曼结构和哈佛结构正在接受巨大的挑战。例如美国Wincom Systems 公司推出一款令人惊叹的服务器,其核心部分是由FPGA完成的超强功能CPU。该系统工作能力超过50台DELL或IBM计算机,或SUN Microsystems 公司的服务器。该服务器的处理速度要比传统服务器快50到300倍。我们知道,传统的PC机及服务器通常采用诸如Intel公司的奔腾处理器或SUN公司的SPARC芯片作为中央处理单元,而Wincom Systems的这款产品却没有采用微处理器,而是由FPGA芯片驱动。FPGA芯片的运行速度虽比奔腾处理器慢,但可并行处理多项任务,而微处理器一次仅能处理一项任务。因此,Wincom Systems的服务器只需配置几个价格仅为2000多美元的FPGA芯片,便可击败SUN公司的服务器或采用Intel处理器的计算机。50多年前,匈牙利数学家冯诺依曼提出了计算机的设计构想:通过中央处理器从储存器中存取数据,并逐一处理各项任务。然而现在,却采用FPGA取代传统微处理器获得了更高的性能,致使美国Xilinx公司的首席执行官Willem Roelandts 认为:“由冯诺依曼提出的电脑架构已经走到尽头”,“可编程芯片将掀起下一轮应用高潮”。FPGA芯片操作灵活,可以重复擦写无限次,而微处理器均采用固定电路,只能进行一次性设计。设计人员可通过改变FPGA中晶体管的开关状态对电路进行重写,即重配置,从而尽管FPGA芯片的时钟频率要低于奔腾处理器,但是由于FPGA芯片可并行处理各种不同的运算,所以可以完成许多复杂的任务。正如Willem Roelandts所说的,“我们认为下一代超级电脑将基于可编程逻辑器件”,他声称,这种机器的功能比目前最大的超级电脑还要强大许多倍。EDA专家William Carter认为,只要EDA开发工具的功能允许,将有无数的证据证明FPGA 具有这种神奇的能力,进而实现基于FPGA的超级电脑的开发。此外,美国加州大学伯克利分校和杨百翰大学的研究人员也正在设计基于FPGA的电脑,这些电脑可在运行中实现动态重配置。这对定位危险目标等军事应用和面容识别之类的计算密集型安全应用十分有用。由此看来,在计算机应用领域和计算机系统设计领域中,EDA技术和FPGA的应用方兴未艾!硬件描述语言HDL(Hardware Description Language)是EDA技术的另一重要组成部分,常见的HDL有:VHDL、Verilog HDL、System Verilog和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实现LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY KEY ISPORT( EN:OUT STD_LOGIC; YSF:OUT STD_LOGIC_VECTOR(1 DOWNTO 0); RSTN,CLK:IN STD_LOGIC; KEYA,KEYB:IN STD_LOGIC;KADD,KSUB,KAND,KXOR,KEQU:IN STD_LOGIC; A,B,C,D:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); XSYSF:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); XA,XB:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END KEY;ARCHITECTURE ARCH OF KEY ISSIGNAL TKADD,TKSUB,TKAND,TKXOR,TKEQU :STD_LOGIC;SIGNAL TA,TB :STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(KEYA,RSTN)BEGINIF RSTN=0 THEN TA=0000; ELSIF(KEYAEVENT AND KEYA=1)THEN TA=TA+1; END IF; END PROCESS;PROCESS(KEYB,RSTN)BEGINIF RSTN=0 THEN TB=0000; ELSIF(KEYBEVENT AND KEYB=1)THEN TB=TB+1; END IF; END PROCESS;PROCESS(RSTN,KADD)BEGINIF RSTN=0 THEN TKADD=0;ELSIF (KADDEVENT AND KADD=1)THEN TKADD=1;END IF;END PROCESS;PROCESS(RSTN,KSUB)BEGINIF RSTN=0 THEN TKSUB=0; ELSIF (KSUBEVENT AND KSUB=1)THEN TKSUB=1;END IF;END PROCESS;PROCESS(RSTN,KAND)BEGINIF RSTN=0 THEN TKAND=0; ELSIF(KANDEVENT AND KAND=1)THEN TKAND=1;END IF; END PROCESS;PROCESS(RSTN,KXOR)BEGINIF RSTN=0 THEN TKXOR=0; ELSIF (KXOREVENT AND KXOR=1)THEN TKXOR=1;END IF;END PROCESS;PROCESS(RSTN,KEQU)BEGINIF RSTN=0 THEN TKEQU=0; ELSIF (KEQUEVENT AND KEQU=1)THEN TKEQU=1;END IF;END PROCESS;PROCESS(RSTN,CLK,TKADD,TKSUB,TKAND,TKXOR,TKEQU,TA,TB)BEGINIF RSTN=0 THEN YSF=00;EN=0;XSYSF=00100000;ELSIF(CLKEVENT AND CLK=1)THEN IF TKADD=1 THEN YSF=00;XSYSF=00101011;A=TA;B=TB;END IF; IF TKSUB=1 THEN YSF=01;XSYSF=00101101;A=TA;B=TB;END IF; IF TKAND=1 THEN YSF=10;XSYSF=00101010;A=TA;C=TB;END IF; IF TKXOR=1 THEN YSF=11;XSYSF=00101111;A=TA;D=TB;END IF; IF TKEQU=1 THEN ENXAXAXAXAXAXAXAXAXAXAXAXAXAXAXANULL;END CASE;CASE TB IS WHEN0000=XBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBNULL;END CASE;END IF;END PROCESS;END ARCH;2.1.2仿真分析 图2-1 仿真分析波形图2.2 控制信号产生模块2.2.1工作原理VHDL实现LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CP3 IS PORT( RSTN,CLK:IN STD_LOGIC; CP,CPT,CPMUX:BUFFER STD_LOGIC; SADD,SSUB,SAND,SXOR:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);END CP3;ARCHITECTURE BEHAVIORAL OF CP3 ISTYPE STATE1 IS(S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11);SIGNAL PRES1,NXS1:STATE1;TYPE STATE2 IS(SS0,SS1,SS2,SS3);SIGNAL PRES2,NXS2:STATE2;BEGINPROCESS(CLK,RSTN)BEGINIF(RSTN=0)THEN PRES1=S0; ELSIF(CLKEVENT AND CLK=1)THEN PRES1 CP=1;CPMUX=0;CPT=0;NXS1 CP=0;CPMUX=0;CPT=0;NXS1 CP=0;CPMUX=0;CPT=0;NXS1 CP=1;CPMUX=1;CPT=0;NXS1 CP=1;CPMUX=1;CPT=0;NXS1 CP=0;CPMUX=0;CPT=0;NXS1 CP=0;CPMUX=0;CPT=0;NXS1 CP=1;CPMUX=1;CPT=0;NXS1 CP=1;CPMUX=1;CPT=0;NXS1 CP=0;CPMUX=1;CPT=1;NXS1 CP=0;CPMUX=1;CPT=1;NXS1 CP=1;CPMUX=1;CPT=1;NXS1=S11;END CASE;END PROCESS;PROCESS(CP,RSTN)BEGINIF(RSTN=0)THEN PRES2=SS0; ELSIF(CPEVENT AND CP=0)THEN PRES2 SADD=00;SSUB=00;SAND=00;SXOR=00; NXS2 SADD=01;SSUB=00;SAND=00;SXOR=00; NXS2 SADD=00;SSUB=01;SAND=10;SXOR=11; NXS2 SADD=00;SSUB=01;SAND=10;SXOR=11; NXS2=SS3;END CASE;END PROCESS;END BEHAVIORAL;2.2.2仿真分析 图2-2 仿真分析波形图2.3修正结果模块2.3.1工作原理VHDL实现LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY XZJG IS PORT (RSTN:IN STD_LOGIC; S:IN STD_LOGIC_VECTOR(1 DOWNTO 0); CLK,OVER,COUT: IN STD_LOGIC; T:IN STD_LOGIC_VECTOR(3 DOWNTO 0); FH:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); SH,SL: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END XZJG;ARCHITECTURE BEHAVIORAL OF XZJG ISSIGNAL OC:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL TH,TL:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(RSTN,CLK,OVER,COUT)BEGINIF (CLKEVENT AND CLK=1)THENOC=OVER&COUT;END IF;END PROCESS;PROCESS(OC,CLK)BEGINIF(RSTN=0)THENTH=0000;TL THTH =0000;FHTH =0001;FHTH =0010;FHTH =0011;FHTH =0100;FHTH =0101;FHTH =0110;FHTH =0111;FHTH =1000;FHTH =0111;FHTH =0110;FHTH =0101;FHTH =0100;FHTH =0011;FHTH =0010;FHTH =0001;FHNULL;END CASE; WHEN 01=THTH =0000;FHTH =0001;FHTH =0010;FHTH =0011;FHTH =0100;FHTH =0101;FHTH =0110;FHTH =0111;FHTH =1000;FHTH =0111;FHTH =0110;FHTH =0101;FHTH =0100;FHTH =0011;FHTH =0010;FHTH =0001;FHNULL;END CASE;WHEN10=FHTH=0000;TL TH=0000;TL TH=0001;TL TH=0001;TL TH=0001;TL TH=0001;TL TH=0001;TL NULL;END CASE;WHEN11=FHTH=0001;TL TH=0001;TL TH=0001;TL TH=0001;TL TH=0001;TL TH=0001;TL TH=0001;TL TH=0000;TL NULL; END CASE;END CASE;END IF;END PROCESS;PROCESS(RSTN,S,TH,TL,CLK)BEGINIF (RSTN=0)THEN SH=0000;SLSH=TH;SLSH=TH;SLSH=0000;SLSH=0000;SL00100000);TYPE STATE IS (CLEAR,IDS,DLNF,DCB,DDRAM1,OUTDATA1,DDRAM2,OUTDATA2);SIGNAL COUNT :STD_LOGIC_VECTOR(15 DOWNTO 0);SIGNAL LCLK_OUT:STD_LOGIC;SIGNAL COUNTS :INTEGER RANGE 0 TO 3000000:=0;SIGNAL CURRENT_STATE:STATE;SIGNAL TEMPA:STD_LOGIC_VECTOR(4 DOWNTO 0):=00000;BEGINPROCESS(CLK_OUT,CLK)BEGIN IF(RISING_EDGE(CLK)THEN COUNTS=COUNTS+1; IF(COUNTS=3000000)THEN CLK_OUT=NOT CLK_OUT; END IF; END IF;END PROCESS;QX(2)=R3;QX(3)=R4;QX(4)=R5;QX(5)=00100000;QX(6)=R0;QX(7)=0011&R1;QX(8)=0011&R2;PROCESS(CLK,LCLK_OUT)BEGIN IF(RISING_EDGE(CLK)THEN COUNT=COUNT+1; IF(COUNT=0)THEN LCLK_OUT=NOT LCLK_OUT; END IF; END IF;END PROCESS;EN=LCLK_OUT;PROCESS(LCLK_OUT,CURRENT_STATE) BEGIN IF RISING_EDGE(LCLK_OUT)THEN RS=0; RWD=00000001; CURRENT_STATED=00111000; CURRENT_STATED=00000110; CURRENT_STATED=00001100; CURRENT_STATED=10000000+TEMPA(3 DOWNTO 0); CURRENT_STATERS=1; D=QX(CONV_INTEGER(TEMPA); TEMPA=TEMPA+1; IF TEMPA=10000THEN CURRENT_STATE=DDRAM2; ELSE CURRENT_STATED=11000000+TEMPA(3 DOWNTO 0); CURRENT_STATE RS=1; D=QX(CONV_INTEGER(TEMPA); TEMPA=TEMPA+1; IF TEMPA=00000THEN CURRENT_STATE=DDRAM1; ELSE CURRENT_STATENULL; END CASE ; END IF;END PROCESS;END BEHAVIORAL;2.5 运算器模块2.5.1工作原理原理图 图2-5 原理图第三章 下载验证3.1各模块封装3.1.1KEY 图3-1 KEY3.1.2CP3 图3-2 CP3 图3-3 MUX42 图3-4 MUX443.1.3XZJG 图3-5 XZJG3.1.4XIANSHI 图3-6 XIANSHI3.1.5ysq 图3-7 YSQ 3.2引脚锁定设置进行器件选择之前进行一次全编译,无误后在菜单栏里选择Assignment里的Device,按下图选择。 图3-8引脚分配引脚分配如下图,分配之后再进行一次全编译。 图3-93.4 配置文件下载设置编程器选择HardWare Setup里的USB-ByteBlasterMV,按下Start下载到试验箱。 图3-103.5 硬件测试通过电路板上的按键操作,进行+、-、/、*运算,看结果是否正确。结论本设计为运算器的雏形,能够进行基本的加减、与和异或运算,还有很多地方需要完善。比如按键+、-、/、*,不能够互相覆盖和替代,按错的情况下只能复位后重新操作,还有在执行/和*功能时需要进行口算,给操作者带来不便。当然基本运算还是能够实现的。设计的验证结果虽然成功了,但设计的过程值得我们的关注。采用VHDL 编写的程序,使对硬件了解很少的我也能完成一个初步能完成运算器功能的设计,而且硬件的设计软件化,更加速了设计过程。相比复杂的电路图而言,VHDL程序更加易懂,而且更容易修改,这体现了用VHDL语言设计电路的优越性。通过这次课程设计,更加深刻理解了FPGA器件的开发过程,更加深刻的了解到FPGA的发展前景,相比单进程但速度很高的微处理器而言,FPGA器件多进程处理能力更强大,而且耗费更低,设计可以随时更改。正如美国Xilinx公司的首席执行官Willem Roelandts 所说:“由冯诺依曼提出的电脑架构已经走到尽头”,“可编程芯片将掀起下一轮应用高潮”。基于FPGA开发的可编程器件将会在各种领域大规模应用,而且FPGA器件设计可更改,将会减少电子垃圾的产生,更加合理的利用资源。参考文献1欧阳星明.数字逻辑.4M.武汉:华中科技大学出版社,20092Volnei A.Pedroni.Circuit Design with VHDL.乔庐峰 王志功 等译.北京:电子工业出版社,2005.9.附录7.1清单表3-5材料清单综合布线系统设备配置清单及报价7.2平面布置图27
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!