差别

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

到此差别页面的链接

后一修订版
前一修订版
stepmxo2-lab22 [2018/08/29 09:44]
group001 创建
stepmxo2-lab22 [2021/08/18 08:42] (当前版本)
gongyu [实验原理]
行 1: 行 1:
-=====实验目的=====+## 2位串行累加器 
 + 
 +### 实验目的
   * (1)熟悉和掌握FPGA开发流程和Lattice Diamond软件使用方法;   * (1)熟悉和掌握FPGA开发流程和Lattice Diamond软件使用方法;
   * (2)通过实验了解累加器的意义及原理方法   * (2)通过实验了解累加器的意义及原理方法
-  * (3)掌握使用Verilog HDL语言基于FPGA实现累加器的原理及实现方法 +  * (3)掌握使用Verilog HDL语言基于FPGA实现累加器的原理及实现方法 
-=====实验任务=====+ 
 +### 实验任务
 设计一个4位串行累加器,电路原理框图如图所示,在开关K处设置串行输入数据,在CP端输入8个脉冲,将完成一次,两个四位串行数据的相加,结果存D-A中。\\ 设计一个4位串行累加器,电路原理框图如图所示,在开关K处设置串行输入数据,在CP端输入8个脉冲,将完成一次,两个四位串行数据的相加,结果存D-A中。\\
 {{::​4位串行累加器.png?​nolink&​600|}} {{::​4位串行累加器.png?​nolink&​600|}}
-=====实验原理=====+ 
 +### 实验原理
 根据上述电路框图,可以分割系统任务。\\ ​ 根据上述电路框图,可以分割系统任务。\\ ​
  
行 13: 行 17:
 由题目给出的要求可以分析组合逻辑电路一是一个全加器电路;组合逻辑电路二和组合逻辑电路三加上JK触发器组成了加法超前进位电路,D-A是储存结果的寄存器。\\ ​ 由题目给出的要求可以分析组合逻辑电路一是一个全加器电路;组合逻辑电路二和组合逻辑电路三加上JK触发器组成了加法超前进位电路,D-A是储存结果的寄存器。\\ ​
 顶层模块由4个模块组成:\\ ​ 顶层模块由4个模块组成:\\ ​
-Shift U1模块;输入的串行寄存器,把输入的串行数据转换成并行数据寄存\\  +  * Shift U1模块;输入的串行寄存器,把输入的串行数据转换成并行数据寄存\\  
-Adder U2模块:一位的二进制全加器模块,输入的进位信号由超前进位逻辑产生\\  +  ​* ​Adder U2模块:一位的二进制全加器模块,输入的进位信号由超前进位逻辑产生\\  
-Ahead U3模块:超前进位逻辑,根据题目要求用JK触发器产生超前进位\\  +  ​* ​Ahead U3模块:超前进位逻辑,根据题目要求用JK触发器产生超前进位\\  
-Shift U4模块:一位全加器输出再移位输出保存在4位寄存器中 +  ​* ​Shift U4模块:一位全加器输出再移位输出保存在4位寄存器中 
-=====Verilog HDL建模描述===== + 
 +### Verilog HDL建模描述 ​
 设计文件accum4.v\\ ​ 设计文件accum4.v\\ ​
 <code verilog> <code verilog>
行 71: 行 76:
 我们看看超前进位逻辑的源码ahead.v\\ 我们看看超前进位逻辑的源码ahead.v\\
  <​code verilog>  <​code verilog>
- 
- 
 //   ​Description ​    : ​  ​超前进位逻辑产生 ​ //   ​Description ​    : ​  ​超前进位逻辑产生 ​
 //​ JK触发器:Qi+1=J!Qi+!KQi //​ JK触发器:Qi+1=J!Qi+!KQi
行 134: 行 137:
 </​code>​ </​code>​
  
-=====实验步骤=====+### 实验步骤
   - 打开Lattice Diamond,建立工程。   - 打开Lattice Diamond,建立工程。
   - 新建Verilog HDL设计文件,并键入设计代码,包括添加需要调用的模块文件。   - 新建Verilog HDL设计文件,并键入设计代码,包括添加需要调用的模块文件。
行 140: 行 143:
   - 如果仿真无误,构建并输出编程文件,烧写至FPGA的Flash之中。   - 如果仿真无误,构建并输出编程文件,烧写至FPGA的Flash之中。
   - 观察输出结果。   - 观察输出结果。
-=====仿真结果和实验现象=====+ 
 +### 仿真结果和实验现象
 仿真结果如下图所示:{{::​4位串行累加器仿真结果.png?​nolink&​1300|}}\\ ​ 仿真结果如下图所示:{{::​4位串行累加器仿真结果.png?​nolink&​1300|}}\\ ​
 仿真文件的串行输入数据也是靠串行转并行移位寄存器输入,所以累加器计算的时钟要顺延8个clock得到结果。可以修改仿真文件中的串行输入数据初值验证累加器结果。 仿真文件的串行输入数据也是靠串行转并行移位寄存器输入,所以累加器计算的时钟要顺延8个clock得到结果。可以修改仿真文件中的串行输入数据初值验证累加器结果。