差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 后一修订版 两侧同时换到之后的修订记录 | ||
乘法器 [2016/06/30 14:32] anran [硬件连接] |
乘法器 [2021/09/13 22:46] gongyu |
||
---|---|---|---|
行 1: | 行 1: | ||
- | =====乘法器===== | + | ## 乘法器 |
====硬件平台==== | ====硬件平台==== | ||
行 12: | 行 12: | ||
- 基于小脚丫STEP FPGA Base Board开发平台实现乘法器的设计 | - 基于小脚丫STEP FPGA Base Board开发平台实现乘法器的设计 | ||
- | ====工作原理==== | + | ### 1. 工作原理 |
- | ------ | + | |
FPGA实现乘法器的设计可以有多种方法,可以设计为串行的和并行的: | FPGA实现乘法器的设计可以有多种方法,可以设计为串行的和并行的: | ||
* 串行乘法器:速度比较慢、时延大,完成同样位宽的乘法器资源占用最少。 | * 串行乘法器:速度比较慢、时延大,完成同样位宽的乘法器资源占用最少。 | ||
- | * 并行乘法器:相对串行乘法器,速度更快,实验小,需要更多的硬件资源。 | + | * 并行乘法器:相对串行乘法器,速度更快,时延小,需要更多的硬件资源。 |
串行乘法器需要一个寄存器,每次时钟触发完成乘数中的一位与被乘数之间的运算,同时加入寄存器中,如此乘数的位宽是多少就需要至少多少个时钟的时延完成乘法器的运算。并行乘法器为了降低时延,需要乘数位宽中的每一位同时完成与被乘数之间的运算,这样就需要乘数位宽数个寄存器,然后将所有寄存器的值相加得到乘法结果。 | 串行乘法器需要一个寄存器,每次时钟触发完成乘数中的一位与被乘数之间的运算,同时加入寄存器中,如此乘数的位宽是多少就需要至少多少个时钟的时延完成乘法器的运算。并行乘法器为了降低时延,需要乘数位宽中的每一位同时完成与被乘数之间的运算,这样就需要乘数位宽数个寄存器,然后将所有寄存器的值相加得到乘法结果。 | ||
行 23: | 行 23: | ||
- | ====硬件连接==== | + | ### 2. 硬件连接 |
- | ------ | + | |
- | 结合实验平台[[STEP-Baseboard]]的硬件配置,我们使用8个LED灯作为流水灯的输出 | + | 结合实验平台[[STEP-Baseboard]]的硬件配置,我们使用4路拨码开关表示乘数,4路按键开关表示被乘数,8个LED灯作为乘法器的输出 |
+ | |||
+ | {{:图11.拨码模块电路连接.png?500 |拨码模块电路连接}} | ||
+ | |||
+ | {{ :图10.LED模块电路连接.png?500|LED模块电路连接}} | ||
+ | |||
+ | {{:图9.按键模块电路连接.png?500|按键模块电路连接}} | ||
- | {{:图11.拨码模块电路连接.png?300 |拨码模块电路连接}} | ||
- | {{ :图9.按键模块电路连接.png?300 |按键模块电路连接}} | ||
- | {{ :图10.LED模块电路连接.png?300|LED模块电路连接}} | ||
+ | ### 3. 代码设计 | ||
- | ====代码设计==== | ||
- | ---- | ||
===设计文件=== | ===设计文件=== | ||