差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 后一修订版 | 前一修订版 | ||
|
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得到结果。可以修改仿真文件中的串行输入数据初值验证累加器结果。 | ||