差别

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

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
上一修订版 两侧同时换到之后的修订记录
乘法器 [2016/06/27 11:10]
anran [流水灯]
乘法器 [2016/06/30 14:35]
anran [硬件连接]
行 8: 行 8:
 ====设计要求==== ====设计要求====
 ------ ------
-  - 掌握任意数分频计数功能设计 +  - 掌握乘法器工作原理 
-  - 掌握时序逻辑的设计 +  - 掌握组合逻辑的设计 
-  - 掌握case的基本语法 +  - 基于小脚丫STEP FPGA Base Board开发平台实现乘法器
-  - 基于小脚丫STEP FPGA Base Board开发平台LED实现流水灯功能,总8个LED灯,循环、轮流点亮,每个LED点亮时间为1秒+
  
 ====工作原理==== ====工作原理====
 ------ ------
 +FPGA实现乘法器的设计可以有多种方法,可以设计为串行的和并行的:
 +  * 串行乘法器:速度比较慢、时延大,完成同样位宽的乘法器资源占用最少。
 +  * 并行乘法器:相对串行乘法器,速度更快,实验小,需要更多的硬件资源。
  
-本设计为流水灯实验,我们需要结合使用的硬件平台实现[[STEP-Baseboard]]平台上的8LED循环闪烁,每个LED灯点亮间为1秒。 +串行乘法器需要寄存器,每钟触完成乘数中的一位与被乘数之间运算时加入寄存器中如此乘数的位宽多少就需要至少多少个时钟的时延完成乘法器的运算并行乘法器为了降低,需要乘数位宽中的每位同完成与被乘数之间的运算,这样就需要乘数位宽数个寄存器,然后将所有寄存器的值相加得乘法结果
- +
-LED也叫光二极管,属于二极管的一种,具有二极管单项导电性使用需要给LED上施正向压差产生电流(一般在20mA以内,具体参考设计中使用的LED的参),点亮LED。本平台使用8个LED都通过低电平点亮(参照电路图),因此控制该LEDFPGA的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按照同一方向循环闪烁,就实现了流水灯的功能+
  
  
行 31: 行 27:
 结合实验平台[[STEP-Baseboard]]的硬件配置,我们使用8个LED灯作为流水灯的输出 结合实验平台[[STEP-Baseboard]]的硬件配置,我们使用8个LED灯作为流水灯的输出
  
-{{ :​图10.LED模块电路连接.png |LED模块电路连接}}+{{:​图11.拨码模块电路连接.png?​500 |拨码模块电路连接}} 
 + 
 +{{:​图10.LED模块电路连接.png?500|LED模块电路连接}} 
 + 
 +{{:​图9.按键模块电路连接.png?​500|按键模块电路连接}} 
 +