基于 FPGA的32位除法器设计

合集下载

基于 FPGA的32位除法器设计

基于 FPGA的32位除法器设计

目录摘要 (1)第1章绪论 (2)第2章设计原理 (3)2.1 除法运算分析 (3)2.2 除法器算法的实现 (3)2.2.1除法器无符号数的除法 (3)2.2.2除法器有符号数的除法 (3)第3章软件介绍及设计过程 (4)3.1 Quartus II简介 (4)3.2 程序设计过程 (4)3.3 仿真结果 (6)结论 (7)参考文献 (8)附录1 源程序 (9)摘要介绍了一种使用可编程逻辑器件FPGA和VHDL语言实现32位除法器的设计方法。

该除法器不仅可以实现有符号数运算,也可以实现无符号数的运算。

除法器采用节省FPGA逻辑资源的时序方式设计,主要由移位、比较和减法三种操作构成。

由于优化了程序结构,因此程序浅显易懂,算法简单,不需要分层次分模块进行。

并使用Altera公司的QuartusⅡ软件对该除法器进行编译、仿真,得到了完全正确的结果。

关键词:FPGA;VHDL;除法器;减法;移位第1章绪论EDA 技术就是以计算机为工具,设计者在 EDA 软件平台上,用硬件描述语言 VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

EDA 技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为 3 种描述形式的混合描述,因此 VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用 VHDL来完成。

另外,VHDL还有以下优点:VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心转移到了系统功能的实现和调试上,只需要花较少的精力用于物理实现;VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用;VHDL的设计不依赖于特定的器件,方便了工艺的转换。

基于FPGA的32位ALU的设计与实现

基于FPGA的32位ALU的设计与实现
种逻 辑运 算 ,4种移位 运 算 以及 比较 、 求补 、 奇偶校 验 等 共 2 0种运 算 。采 用层 次化 设计 ,给 出 了A L U的主要 子模 块 ,各模 块 均 占用 了较 少 的逻 辑 资 源 ( L E ) ,实现 了节 省 资 源 与速 度提 升 。
通过 Q u a r t u s I I 9 . 1 进 行 编译 ,M o d e l s i m 6 . 5 S E进 行 仿 真 ,仿 真 结 果 与预 期 结 果一 致 ,将设 计 下 载
w i t h c o mp l e t e f u n c t i o n wh i c h b a s e d o n p r d e v i c e F P G A a n d h a r d w a r e d e s c ip r t i o n
De s i g n 0 f 3 2 . b i t ALU b a s e d o n FPGA
KONG Z h e.W ANG We i
( I n f o r ma t i o n E n g i n  ̄r i n g S c h o o l , He b e i Un i v e r s i t y o f T e c h n o l o g y , T i a n j i n 3 0 0 4 0 0, C h i n a )
b y Q u a r t u s l I 9 . 1 . a n d he t s i mu l a t i o n c a n b e r e a l i z e d b y Mo d e l s i m6 . 5 S E .T h e s i mu l a t i o n r e s u l t i f t t e d he t

基于FPGA的浮点除法器的研究与实现

基于FPGA的浮点除法器的研究与实现
化 ] 。
D=( 一 1 ) S ( 1 + M) ¥ 2 ( E一 1 2 7) ( 1 )
之间的数据就可以方便 的流动。
在 F P G A电路设 计 中 ,有 专 门针对 浮 点 除法 运 算的 I P核 , 例如 A h r e a 公 司的 A L T F P _ D I V 1 P , 该 模 块 支 持输 人 输 出都 满 足 I E E E 7 5 4标 准 的 浮 点 除 法 运 算 。但 并不 是 所有 的 F P G A芯 片 ( 例 如 MA X系
我 们 针对 F P G A某 些芯 片 无 法 支持 A L T F P _
D I V I P的情 况 , 设 计 出一 种 可 以整 数 输 入 , 浮 点 数 输 出 的 除 法 模 块 ,该 模 块 可 以 直 接 输 出 满 足 I E E E 7 5 4标 准 的二进 制数 。 在 实 际项 目工 程设计 中 , 该模 块有 非 常大 的实 用价 值 ,可 以方便 数 据表 达形 式 的转化 , 大 大地 减轻 程 序设计 人 员 的工作 。
的I P核 , 如 图 2所 示 , 该 核 主要 是 针 对整 数 的除 法 运算 , d e n o m 指 的是 除 法 的 除 数 , n u me r 是 被除数 , 运 算结 果 是 q u o t i e n t 和r e ma i n ,前 者 是 结果 的整 数 部分 , 后 者是余 数 。
还要 减 去 2 l 。
当我 们确 定 了第 一 个 “ l ”出现 的 位置 后 , 剩 下
的 就是 商 的 有效 数 字 , 就是 要 转 化 的单 精 度 的 浮点
数 的尾 数 M。对 于 除 法 的 符 号 运 算来 说 , 满足表 1 所示的关系 , 从 表 中我 们 可 以看 出 , 商 的 符 号 实 际

基于 FPGA的32位除法器设计汇总

基于 FPGA的32位除法器设计汇总

目录摘要 (1)第1章绪论 (2)第2章设计原理 (3)2.1 除法运算分析 (3)2.2 除法器算法的实现 (3)2.2.1除法器无符号数的除法 (3)2.2.2除法器有符号数的除法 (3)第3章软件介绍及设计过程 (4)3.1 Quartus II简介 (4)3.2 程序设计过程 (4)3.3 仿真结果 (6)结论 (7)参考文献 (8)附录1 源程序 (9)摘要介绍了一种使用可编程逻辑器件FPGA和VHDL语言实现32位除法器的设计方法。

该除法器不仅可以实现有符号数运算,也可以实现无符号数的运算。

除法器采用节省FPGA逻辑资源的时序方式设计,主要由移位、比较和减法三种操作构成。

由于优化了程序结构,因此程序浅显易懂,算法简单,不需要分层次分模块进行。

并使用Altera公司的QuartusⅡ软件对该除法器进行编译、仿真,得到了完全正确的结果。

关键词:FPGA;VHDL;除法器;减法;移位第1章绪论EDA 技术就是以计算机为工具,设计者在 EDA 软件平台上,用硬件描述语言 VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

EDA 技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为 3 种描述形式的混合描述,因此 VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用 VHDL来完成。

另外,VHDL还有以下优点:VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心转移到了系统功能的实现和调试上,只需要花较少的精力用于物理实现;VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用;VHDL的设计不依赖于特定的器件,方便了工艺的转换。

基于FPGA的低功耗高速除法器设计

基于FPGA的低功耗高速除法器设计

基于FPGA的低功耗高速除法器设计【摘要】本文介绍了一种使用可编程逻辑器件FPGA和Verilog语言实现的32位低功耗高速除法器的设计。

该除法器可以实现有符号数运算和无符号数运算,主要操作有移位、比较和减法操作。

设计中采用了一种新的基-16算法,该算法大幅度减少了除法运算过程中的移位操作,从而提高了除法器的运算速度。

在该设计中加入了门控时钟,从而大幅度减少了动态功耗。

仿真和综合结果表明其功能的正确性,运行频率最高可达530.772MHz,功耗降低了55.98%。

【关键词】低功耗;高速除法器;基-16算法;门控时钟1.引言除法器是是微处理器的核心部件之一,也是数字信号处理领域的基本单元。

同时,除法运算也是四种算术运算中最复杂的运算单元,它的性能好坏直接关系到整个电路的性能。

用FPGA实现的除法器能够以并行运算的工作方式,高速可靠的运行,并可以以IP核的形式被随时调用,所以在性能和应用的灵活性上都有很大优势。

本设计主要从速度和功耗两个方面对除法器进行了优化设计。

在速度方面通过改进算法,减少加法、乘法器的运用来改善速度。

在功耗方面通过分析功耗产生的原因对其进行改善,有针对性的加入门控时钟等方法,最终使电路功耗大幅度降低。

2.高速除法器设计2.1 高速基-16除法器的算法除法器算法主要分为Non-restoring算法(不恢复余数算法)和Restoring算法(恢复余数算法)。

Non-restoring算法因为具有步长固定,控制简单,逻辑鲜明的特点,因而更多的被采用在硬件设计中。

在该算法中,被除数若为负值则要先对其求补码,变为正值再进行运算。

在运算结束后对结果进行调整,得到商和余数。

非恢复操作每一步所执行的加减的判断,取决于上一步部分余数和被除数符号的异或,当结果为1时加上除数,当结果为0时减去除数。

本文将介绍一种基于Non-restoring算法的移位除法器设计。

与传统的每次移1位的算法不同,该设计中每次移动4位被除数,其商的值就会在0~F之间。

《基于FPGA的雕刻机32位运动控制器设计》范文

《基于FPGA的雕刻机32位运动控制器设计》范文

《基于FPGA的雕刻机32位运动控制器设计》篇一一、引言随着现代制造业的快速发展,雕刻机在各种加工领域中的应用越来越广泛。

为了满足高精度、高速度的加工需求,雕刻机的运动控制器设计显得尤为重要。

本文将介绍一种基于FPGA(现场可编程门阵列)的32位运动控制器设计,以提高雕刻机的加工精度和效率。

二、设计背景与目标传统的雕刻机运动控制器多采用微控制器或DSP(数字信号处理器)进行设计,但这些控制器在处理高精度的运动控制算法时,往往存在处理速度和精度的局限性。

因此,本研究的目标是设计一种基于FPGA的32位运动控制器,以提高雕刻机的加工精度和速度,降低生产成本,并提高系统的稳定性和可靠性。

三、系统架构设计1. 硬件架构:本设计采用FPGA作为核心控制器,通过与雕刻机的电机驱动器、传感器等设备进行连接,实现对雕刻机的精确控制。

硬件架构包括FPGA控制器、电源模块、通信接口、电机驱动器、传感器等部分。

2. 软件架构:软件架构包括嵌入式操作系统、运动控制算法、人机交互界面等部分。

嵌入式操作系统负责管理系统的软硬件资源,运动控制算法负责实现精确的运动控制,人机交互界面则方便用户进行操作和参数设置。

四、FPGA控制器设计1. 接口设计:FPGA控制器通过串口或以太网等通信接口与上位机进行通信,接收上位机发送的加工指令和参数,实现对雕刻机的精确控制。

2. 运动控制算法实现:采用查表法、插补法等算法实现精确的运动控制,确保雕刻机的加工精度和速度。

3. 程序编写与优化:采用硬件描述语言(HDL)进行程序编写,通过仿真和优化,确保程序的正确性和性能。

五、系统实现与测试1. 系统实现:根据设计要求,完成硬件电路的搭建和软件的编写,实现基于FPGA的32位运动控制器。

2. 测试与验证:通过搭建测试平台,对运动控制器的性能进行测试和验证。

测试内容包括加工精度、速度、稳定性等方面。

3. 结果分析:根据测试结果,对运动控制器的性能进行评估,并针对存在的问题进行优化和改进。

基于FPGA的32位循环型除法器设计

基于FPGA的32位循环型除法器设计

基于FPGA的32位循环型除法器设计作者:李文彬陈金鹰王惟洁任小强来源:《物联网技术》2014年第11期摘要:借助于硬件描述语言Verilog HDL语言和FPGA,提出了一种32位循环型除法器的实现方法。

该除法器通过改善程序结构,优化了时序,提高了除法运算速度,克服了传统除法器“吃时钟”的弊端。

且该除法器的移位、相减和比较操作都在一个程序下完成,无需模块划分,节约逻辑资源。

该设计并顺利通过Quartus II编译、综合和仿真工具Modelsim的仿真,达到了预期的结果。

关键词:Verilog HDL;FPGA;循环;除法器中图分类号:TP393 文献标志码:A 文章编号:2095-1302(2014)11-00-020 引言在数据处理过程中,除法是经常用但也是最复杂的四则运算。

特别是针对含有除法器的FPGA设计中,除法器的运算速度,运算精度和占用逻辑资源大小对系统的整体性能具有很大影响[1]。

现有的EDA软件提供的除法模块时钟消耗多,占有逻辑资源量大,且除数受限,只能是2的次幂。

因此,设计一种由Verilog HDL[2]编写的可综合的,可以是任意除数的,运算速度快,逻辑资源占用量小[3,4]的除法器在FPGA数据处理中就显得尤为必要。

1 循环型除法器原理与设计循环性除法器也叫位操作除法器,主要通过移位、相减和比较三种操作实现求商和得余[5]。

无论是乘法器还是除法器都有操作空间,典型的循环型除法器又可分为操作空间可恢复性和不可恢复性,这里采用易于控制,逻辑清晰的操作空间不可恢复型算法。

在上述所采用算法中,首先保证被除数为正值,若为负值,则对被除数正值化,然后进行相应的移位、减法和比较操作,最后再对结果进行调整。

具体实现过程如下:假设除数和被除数都是N位,那么操作空间P的位宽就是2*N,其中P[N-1:0]用来填充被除数,P[2*N-1:N-1]是用来与除数进行递减操作。

此外,为了保证运算结果正确性,还要考虑同步操作,P[2*N-1:N-1]和除数的递减操作应该发生在别的空间,此处命名为D空间,D空间具有和P 空间同样的位宽。

基于FPGA的除法器设计

基于FPGA的除法器设计
应 用 和 推 广 价值 。 关键词 F GA;除法 器 ; 性 逼 近 ; 找 表 P 线 查
T 322 P 3 . 中图 分 类 号
D e i n o vi e s g fDi d rBas d o e n FPGA
LU O W ANG Yu Zho g e 。 J A a y n n fi I Xi o u
Ab ta t Diie sn to l h s o mo src vd ri o ny temo tc m n.b tas hemo t o pe o o e ti iia in l o i.I ’ s dt s h tr u lo t s m lxc mp n n ndgtlsg a man t Su e ou et eie— c d aieago ih t mp e n t a d h slwe e l i .Toi r v her a—i ,hi p p ri rd c sad sg ft edgtlc mpe iie tv l rt m oi lme ti,n a o rr a— me t mp o et e ltme t s a e o u e e ino h ii o lxdvd r nt a whc s do ie ra pr i t nag rt m n ihba e n l a p oxmai lo ih a d ROM o k u a l.Co a e ot r dto a eh d,i o n yh stels eou c n o lo - p tbe mp rd t heta iin l t o m t to l a h srs re n e
awiey a p iain i iia ina r c s o i. d l p lc t n dgtlsg lp o e sd man o Ke or F yW ds PGA ,dvd r ie ra prxi ain,lo u a l iie ,ln a p o m to o D p tbe Cls m b r TP 2 a sNu e 33 .2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录摘要 (1)第1章绪论 (2)第2章设计原理 (3)2.1 除法运算分析 (3)2.2 除法器算法的实现 (3)2.2.1除法器无符号数的除法 (3)2.2.2除法器有符号数的除法 (3)第3章软件介绍及设计过程 (4)3.1 Quartus II简介 (4)3.2 程序设计过程 (4)3.3 仿真结果 (6)结论 (7)参考文献 (8)附录1 源程序 (9)摘要介绍了一种使用可编程逻辑器件FPGA和VHDL语言实现32位除法器的设计方法。

该除法器不仅可以实现有符号数运算,也可以实现无符号数的运算。

除法器采用节省FPGA逻辑资源的时序方式设计,主要由移位、比较和减法三种操作构成。

由于优化了程序结构,因此程序浅显易懂,算法简单,不需要分层次分模块进行。

并使用Altera公司的QuartusⅡ软件对该除法器进行编译、仿真,得到了完全正确的结果。

关键词:FPGA;VHDL;除法器;减法;移位第1章绪论EDA 技术就是以计算机为工具,设计者在 EDA 软件平台上,用硬件描述语言 VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

EDA 技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为 3 种描述形式的混合描述,因此 VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用 VHDL来完成。

另外,VHDL还有以下优点:VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心转移到了系统功能的实现和调试上,只需要花较少的精力用于物理实现;VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用;VHDL的设计不依赖于特定的器件,方便了工艺的转换。

VHDL 是一个标准语言,为众多的 EDA 场上支持,因此移植性好[2]。

本次课程设计通过利用 QuartusII 软件实现32位除法器。

从而对 EDA 技术进一步的熟悉、了解和掌握。

通过本课程的学习,可以了解硬件描述语言编程方法 ,掌握 VHDL编程方法。

除法是数值计算和数据分析中最常用的运算之一,许多高级运算如平方根、指数、三角函数等都与其有关。

在FPGA中,有加、减、乘、除的算法指令,但除法中除数必须是2的幂,因此无法实现除数为任意数的除法。

然而除法器是微处理器的一个重要运算单元,除法器的运算速度、性能、功耗等都会影响系统的整体性能,相对于其他运算操作,除法很复杂且其操作的效率很低,所以研究的人很少引,但是对除法的忽视会导致系统整体性能的下降。

因此当前不但应该研究除法,而且研究的重点应该放在提升运算速度上。

如今大部分电子系统的最大位宽只有32位,因此本文用VHDL编写了实现32位数相除的除法器。

本文设计的除法器,不仅能实现有符号数的运算,也可以实现无符号数的运算。

除法器是电子技术领域的基础模块, 在电子电路设计中得到广泛地应用。

然而相对于加法和乘法等其他操作, 除法操作的效率很低。

出现这种情况的原因除了除法本身的复杂性外, 还与人们普遍认为除法是不频繁的操作有关。

作为微处理器的一个重要的运算单元, 除法器的运算速度、性能、功耗等都会影响系统的整体性能, 所以对除法效率的忽视会导致系统整体性能的下降。

硬件除法器的运算速度比软件实现方法快得多, 但为了提升运算速度, 就要以硬件资源的消耗为代价。

第2章设计原理2.1 除法运算分析除法器的算法可分为两类: 基于减法操作和基于乘法操作的算法。

数字循环是最简单, 运用最广泛的一类算法, 以减法为基本的操作, 在每一次迭代中求固定位数的商。

在最早的Resorting 方法中, 每次尝试在余数中减去除数, 然后判断得到的结果, 如果结果为正就上商 1, 否则上商 0, 并恢复余数, 最后移位进行下一次迭代。

Resorting 方法一次迭代的框图如图 1 所示:在这种方法中一次迭代需要 2 次加法运算, 这样增加了不必要延时, Non_resorting 方法把下一次迭代中和减法合并, 这样在每次迭代中根据上一次上商的结果进行操作, 如果上次上商为 1, 这次迭代用余数减去除数, 否则用余数加上除数, 然后和Resorting 方法一样得到本次迭代的商。

还有就是基于乘法的算法, 把除法看成是乘法的逆运算。

如下面的式子所示:A=B×Q+R其中 A 为被除数, B 为除数, Q 为商, R 为余数。

这样的算法主要有 SRT, Newton- Raphson 和 Goldschmidt 算法等。

除法在很多方面与乘法不同, 最重要的区别就是在乘法中所有的部分乘积都可以并行生成, 而在除法中每个商的位都是以一种顺序的过程确定的,因此速度较慢。

而以FPGA为硬件基础,基于减法的除法器算法不仅节省资源,速度也较快。

2.2 除法器算法的实现2.2.1除法器无符号数的除法本设计中的除法器,巧用VHDL语言,将有符号数和无符号数的除法结合在一起,节省了资源,也提高了速度。

其算法如下:对于32位无符号被除数a,先将a 转换成高32位是0低32位是a的数temp_a。

在每个周期开始时temp_a向左移动一位,最后一位补零,然后判断temp_a的高32位是否大于等于除数b,如是则temp_a 的高32位减去b并且加I,得到的新值仍赋给temp_a;如不是直接进入下一步。

上面的移位、比较、减法(减法视情况而定)要进行32次,经过32个周期后,运算结束,所得到的temp_a的高32位为余数,低32位为商。

将移位、比较和相减放在同一个循环中,去除了不必要的延时,增加了设计的可靠性。

2.2.2除法器有符号数的除法对于32位有符号数的除法,算法与上面类似,只是需要判断商和余数是正数还是负数。

令d=a(31)⊕b(31),如果d=0则被除数与除数同为正数或者负数,最终商为正数;如果d=1说明被除数与除数一个为正一个为负,最终商为负数。

被除数是负数时余数为负,否则为正。

有符号数的除法采用的算法是将被除数与除数均变成无符号的32位数,紧接着的计算过程与无符号数除法一样。

最后根据d 的值对商作处理,如果d=0商不需任何处理,如果d=1则将商取反加1才是正确的结果。

余数的调整则根据被除数的符号位进行。

32位除法器的框图如图1。

当you_wu为1时进行有符号数运算,否则进行无符号数运算。

图1 除法器逻辑框图第3章软件介绍及设计过程3.1 Quartus II简介Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

当前官方提供下载的最新版本是v12.1。

Altera Quartus II (3.0和更高版本)设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。

工程师使用同样的低价位工具对Stratix FPGA进行功能验证和原型设计,又可以设计HardCopy Stratix器件用于批量成品。

系统设计者现在能够用Quartus II软件评估HardCopy Stratix器件的性能和功耗,相应地进行最大吞吐量设计。

Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。

该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。

Quartus 平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA 供应商的开发工具相兼容。

改进了软件的LogicLock模块设计功能,增添了FastFit 编译选项,推进了网络编辑性能,而且提升了调试能力。

3.2 程序设计过程由设计原理知道本设计用的最多的操作就是移位、比较和减法。

有设计者指出分别用3个模块实现移位、比较和减法,再加上控制模块共4个模块。

可是此方法实现的仅是8位无符号数的运算,不能实现有符号数运算且程序很复杂,占用的FPGA资源也多。

也有人提出将被除数作为被减数、除数作为减数,作减法,差重新置入被减数,反复相减,直到被减数小于减数为止,记录能够相减的次数即得到商的整数部分⋯。

这样做不仅占用的逻辑资源很多,而且随着被除数与除数差值的增大、相减的次数增多,速度也就降低。

本设计不分模块,仅用两个进程,巧妙使用loop语句便可方便的实现32位有符号和无符号数除法。

另外需要注意的是,被除数与除数的临时存储单元temp_a和temp_b必须设为变量,如果设置成信号即使编译完全正确,也得不到正确的仿真结果。

循环变量n的初值不能在设定变量时设置,必须在循环开始前设置,否则程序将成为死循环,只有注意到上面两点,loop语句才能真的起到巧妙的作用。

本设计采用Quartus II编写程序代码、编译、执行结果如下两图所示:图2 程序代码图3 编译、执行结果3.3 仿真结果利用Quartus II软件进行无符号数的运算除法器的仿真图如下:图4 无符号数的运算除法器的仿真图利用Quartus II软件进行有符号数的运算除法器的仿真图如下:图5有符号数的运算除法器的仿真图图4和图5是32位除法器的仿真图。

图4中令you_wu为0,实现无符号数相除,图5中you_wu为1,实现有符号数相除。

本设计运行速度较快,当两个值相差很大的数(不管是有符号数还是无符号数)相除时,速度优势将更加明显。

另外图4和图5中没有任何毛刺,说明该除法器性能很稳定,不仅速度较快,而且没有竞争冒险,是一个成功的设计。

结论在FPGA的设计中,要关心两个参数:逻辑资源的占用率和速度。

本文给出的32位除法器占用的逻辑资源较少;而速度主要取决于系统时钟,如果系统时钟为50 MHz,则完成32位数除法所需时间不到1 txs。

文中有关代码均经Quartus II 编译通过,可以用于实际系统设计。

为期近两周的 EDA 课程设计就这样结束了,设计首先对 EDA 课程的到了复习和应用,并且对所学的知识的到了应用。

本次课程设计通过理论与实践的相结合,对理论知识的掌握更佳的熟练。

最后,感谢学校给我们这次机会,锻炼了我们的动手能力。

通过这次课程设计让我将理论知识应用到实践中,当然也让我意识到自身理论知识的缺乏和动手能力有待提高,让我明白在以后的学习中应该更应该努力钻研。

同时也感谢指导老师在设计过程中的辅导以及同学的帮助参考文献[1]朱卫华,郑留平.可任意设置计算精度的整数除法器的设计[J].国外电子测量技术。

相关文档
最新文档