差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
乘法器 [2016/06/27 11:14]
anran [设计要求]
乘法器 [2016/06/30 14:37] (当前版本)
anran [硬件连接]
行 14: 行 14:
 ====工作原理==== ====工作原理====
 ------ ------
 +FPGA实现乘法器的设计可以有多种方法,可以设计为串行的和并行的:
 +  * 串行乘法器:速度比较慢、时延大,完成同样位宽的乘法器资源占用最少。
 +  * 并行乘法器:相对串行乘法器,速度更快,实验小,需要更多的硬件资源。
  
-本设计为流水灯实验,我们需要结合使用硬件平台实现[[STEP-Baseboard]]平台上8LED循环闪烁,每个LED灯点亮时间为1秒+串行乘法器需要一个寄存器,每次时钟触发完成乘数中一位与被乘数之间运算,同时加入寄存器中,如此乘数的位宽是多少就需要至少多少时钟的时延完成乘法器的运算。并行乘法器为了降低时延需要乘数位宽中的一位同完成与被乘数之的运算,这样就需要乘数位宽数个寄存器,然后将所有寄存器的值相加得到乘法结果
  
-LED也叫发光二极管,属于二极管的一种,具有二极管的单项导电性,使用时需要给LED上施加正向压差,产生电流(一般在20mA以内,具体参考设计中使用的LED的参数),点亮LED。本平台使用的8个LED都是通过低电平点亮(参照电路图),因此控制该LED的FPGA的IO管脚输出“1“(高电平)时LED灭,输出”0“(低电平)时LED亮。 
  
-为了使一个循环周期内每个LED点亮1秒的时间,我们需要一个持续时间为1秒的低电平信号,这可以通过本硬件平台[[STEP-MXO2第一代]]上的25MHz主时钟得到,2^25 = 33554432 > 25000000,所以我们需要做一个位宽为25的计数器。计数器初值为0,当计数到24999999时,总共计数25000000,也就是1秒时间。 
  
-为了实现流水的效果,我们需要一个寄存器,寄存器的值不同控制着不同的LED点亮,而寄存器的值在每次计数器计数到24999999时改变,这样每隔1秒时间,寄存器的值改变,对应控制8个LED按照同一方向循环闪烁,就实现了流水灯的功能。 
  
 +====硬件连接====
 +------
 +结合实验平台[[STEP-Baseboard]]的硬件配置,我们使用4路拨码开关表示乘数,4路按键开关表示被乘数,8个LED灯作为乘法器的输出
  
 +{{:​图11.拨码模块电路连接.png?​500 |拨码模块电路连接}}
  
 +{{ :​图10.LED模块电路连接.png?​500|LED模块电路连接}}
 +
 +{{:​图9.按键模块电路连接.png?​500|按键模块电路连接}}
  
-====硬件连接==== 
------- 
-结合实验平台[[STEP-Baseboard]]的硬件配置,我们使用8个LED灯作为流水灯的输出 
  
-{{ :​图10.LED模块电路连接.png |LED模块电路连接}}