全定制FPGA硬件电路设计实现最大公约数求取算法(Quartus II)

本文介绍了采用全定制FPGA硬件电路设计最大公约数求取算法的过程,详细阐述了设计原理、结构方案及各部分电路设计,包括D触发器、多路选择器、减法器和求余电路等。通过Quartus II 8.1完成设计,电路仿真验证了算法的正确性和高效性,平均运算时间仅为8.32个时钟周期。
摘要由CSDN通过智能技术生成

目录

一、设计需求

二、设计工具及版本

三、设计原理及结构方案

四、电路设计描述

1. 32位D触发器

2. 32位多路选择器

3. 32位减法器

4. 32位求余电路

5. GCDOUT信号产生电路

6. DONE_L信号产生电路

五、仿真激励设计方案及电路仿真结构

六、设计总结


当前,FPGA设计在很多场合得到了广泛的应用,如集成电路设计、SoC开发等领域。常规的设计方法采用硬件描述语言或高级综合的方式对功能进行描述,优点是设计周期较短,便于调试,然而难以满足对性能要求较高的场合。因此,笔者尝试采用纯硬件电路的方式,针对基本的数学运算进行设计。本文为采用硬件电路实现最大公约数的求取算法。

一、设计需求

已知最大公约数的求取算法如下:A,B为非零正整数,A-B=C,C也是非零正整数,则A,B的最大公约数等于B,C的最大公约数。按照全定制FPGA的设计思路,不使用硬件描述语言或高级综合,直接设计实现该算法的硬件电路。(字长:32_bit)

二、设计工具及版本

Quartus II 8.1

三、设计原理及结构方案

最直接的想法是利用电路反复做减法。当A>B时,令A=A-B;当A<B时,令B=B-A;当A=B时,输出A或者输出B为A,B的最大公约数。

然而,如果反复做减法,当A,B当中至少一个远大于它们的最大公约数时,减法运算会消耗大量的时间,所以必须使用优化的算法。考虑将A-B改为A-kB,取足够大的k,使A-kB的结果尽可能小,即将减数相同的多次减法改成求余运算A=A mod B。由此,得到优化的算法:轮流执行A=A mod B和B=B mod A,直到A,B两者当中有且只有一个为零,则A,B的最大公约数即为A,B当中不为零的那个数。

输入信号:

AIN,BIN:输入的两个数,32_bit;

EN:输入允许,将AIN,BIN的值赋给AOUT,BOUT,高电平有效;

CLK:时钟。

输出信号:

AOUT,BOUT::每步运算的输出,32_bit;

DONE_L:指示是否得到最大公约数,判断依据是AOUT和BOUT与运算的结果是否为零,低电平有效;

GCDOUT:最大公约数,为AOUT和BOUT各位或运算的结果。

由下表设计总体结构方案,如下图所示。

EN

CLK

AOUT*

BOUT*

1

AIN

BOUT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值