资源描述
数字电路与逻辑设计实验报告
实验七 8位移位寄存器的设计
一、实验目的
熟悉QuartusⅡ仿真软件的基本操作,并用VHDL语言设计一个8位移位寄存器
二、实验内容
1.用VHDL语言设计由边沿触发式D触发器构成的8位移位寄存器,并进行仿真与分析;
三、实验原理
1.(1)8位移位寄存器逻辑电路的原理:
可以实现串行输出、并行输入,串行输出的功能。是能暂时存放二进制码的电路,被广泛的应用于各类数字系统和数字计算机中。寄存器的特点是存数方便。
abcdefgh为8个并行输入端,qa~qh为并行输出端,srsi为右移串行输入端,slsi为左移串行输入端,s1,s0为模式控制端,clrn为异步清零端,clk为时钟脉冲输入端
(2)通过实验实现逻辑的原理:
输入信号
输出信号
clk
clrn
S1
S0
sl
sr
abcdefgh
Q_abcdefgh
↑
1
1
1
0
0
00001111
00001111
↑
1
1
0
1
0
00001111
00011111
↑
1
1
0
1
0
00011111
00111111
↑
1
1
0
0
0
00111111
01111110
↑
1
1
0
0
0
01111110
11111100
↑
1
0
0
0
0
11111100
11111100
↑
1
0
1
0
1
11111100
11111110
↑
1
0
1
0
1
11111110
11111111
↑
1
0
1
0
0
11111111
01111111
↑
1
0
1
0
0
01111111
00111111
↑
0
0
0
0
0
00111111
00000000
四、实验方法与步骤
实验方法:
采用基于FPGA进行数字逻辑电路设计的方法。
采用的软件工具是QuartusII软件仿真平台,采用的硬件平台是Altera EPF10K20TI144_4的FPGA试验箱。
实验步骤:
1、 编写源代码。打开QuartusⅡ软件平台,点击File中得New建立一个文件。编写的文件名与实体名一致,点击File/Save as以“.vhd”为扩展名存盘文件。VHDL设计源代码如下:
2、按照实验箱上FPGA的芯片名更改编程芯片的设置。操作是点击Assign/Device,选取芯片的类型“Altera的EPF10K20TI144_4”
3、编译与调试。
确定源代码文件为当前工程文件,点击Complier进行文件编译。编译结果有错误或警告,则将要调试修改直至文件编译成功。
4、 波形仿真及验证。
在编译成功后,点击Waveform开始设计波形。点击“insert the node”,按照程序所述插入clrn,clk,s0,s1,sl,sr,a,b,c,d,e,f,g,h,qa,qb,qc,qd,qe,qf,qg,qh共22个节点(clrn,clk,s0,s1,sl,sr, a,b,c,d,e,f,g,h为输入节点,qa,qb,qc,qd,qe,qf,qg,qh为输出节点)。设置s0,s1,sl,sr以不同的信号输入,abcdefgh输入初始数据,clk为时钟信号,点击保存按钮保存。然后进行功能仿真,选择菜单Processing->Generate Functional Netlist命令产生功能仿真网表,选择菜单Assignments-->Setting下拉列表中选择Simulator input ,在右侧的Simulation mode下拉列表中选择Functional,完成设置;选择菜单中的 Processing->Start Simulation启动功能仿真,然后查看波形报告中的结果
5、时序仿真。首先进行全编译,编译成功后,点击Assignments 的settings的 simulation mode: Timing,仿真成功后即出带延时的波形图。
6、FPGA芯片编程及验证。
(1)分配管脚:assignment—>Pins在Location中选择合适的输入输出管脚并进行编译。
(2)下载验证:Tools->Programmer进入下载窗口Hardware Setup—>ByteBlaster->Start->OK
(3)初始化电路,根据设置好的管脚资源擦做实验电路板,完成数据测试。
五、实验结果与分析
1、 编译过程
a) 编译过程、调试结果
b)结果分析及结论:编译无错误,可进行下一步
2、 功能仿真
a) 功能仿真过程及仿真结果
b) 结果分析及结论:
最开始是清零;
置数:当clrn=1时,S=11,输入01010101,输出01010101;
再清零,
右移:当S=01时,slsr=01时补1,因此输出10000000;
slsr=10时补0,因此输出01000000;
左移:当S=10时,slsr=10时补1,输出为10000001;
slsr=01补0,输出为00000010;
slsr=10时补1,输出为00000101;
3、 时序仿真
a) 时序仿真过程及仿真结果
b)结果分析及结论: 仿真结果与逻辑存在偏差,因为时序仿真存在延迟现象,是正常现象。
4、 Programming芯片编程
a) 芯片编程过程
b)编程芯片FPGA验证结果
b) 结果分析与结论
按图示顺序为
右移补一:
清零:
置数为01010101:
由于没有在代码中加入保持的代码,所以不能抓拍到所有的结果,信号变化的太快。
六、实验结论
1.实验结论:成功参照74198芯片,用VHDL语言设计由边沿触发式D触发器构成的8位移位寄存器,并进行仿真与分析;根据功能仿真和时序仿真的波形图显示成功,且下载成功。
2.实验心得:移位寄存器通过对数据的移动来储存数据,存数方便,但是范围较小,要弄懂移位寄存器的原理首先要搞懂它的逻辑功能表,如此才能在仿真过程中了解结果的正确与否,然后有一段缺陷是没有在代码中加入保持的功能,在下载时结果变化的太快,导致不能抓拍到所有的变化结果。下载过程耗费了太多的时间,都是自己不熟悉过程导致的。以后会多加练习下载这一部分。
第 8 页 共 8 页
展开阅读全文