实验三 简易模型机中组合部件的实现​​​​​​​

本文详细介绍了使用VHDL语言设计简易模型机的ALU、移位逻辑和控制信号产生逻辑的过程。通过QuartusII软件仿真平台,进行了代码编译、调试和波形仿真,验证了设计的正确性。实验过程中,对比了两种不同的移位逻辑实现方法,并分析了其优缺点。实验加深了对VHDL语言和FPGA设计的理解。
摘要由CSDN通过智能技术生成

 实验三 简易模型机中组合部件的实现

一、实验目的

    1.了解简易模型机的内部结构和工作原理。

    2.分析模型机的功能,设计 ALU 和移位逻辑。

    3.分析模型机的工作原理,设计模型机控制信号产生逻辑。

 

二、实验内容

    1.用 VHDL 语言设计模型机的 ALU 模块;

    2.用 VHDL 语言设计模型机的 移位模块;

    3.用 VHDL 语言设计模型机的 控制信号产生逻辑。

 

三、实验方法

  1. 实验方法:

1采用基于FPGA进行数字逻辑电路设计的方法。

2采用的软件工具是QuartusII软件仿真平台。

  1. 实验步骤:
  1. 新建,编写源代码。

(1).选择保存项和芯片类型:【File】-【new project wizard】-【next】(设置文件路径+设置project name)-【next】-【next】(设置Family=FLEX10K;name=EPF10K10TI144-4)-【next】-【finish】

   (2).新建:【file】-【new】(选择AHDL File)-【OK】

2、写好源代码,保存文件(文件名与工程名需保持一致)。

3、编译与调试。确定源代码文件为当前工程文件,点击【processing】-【start compilation】进行文件编译。编译结果无警告,文件编译成功。

4、波形仿真及验证。【file】-【new】(选择Vector Waveform File)-【OK】。按照程序所述插入节点(插入输入节点和输出节点)。(操作为:左键双击NAME下方框框 -【Node Finder】(设置Filter:Pins:all)-【list】)-【>>】-【ok】-【ok】)。按题目需求设置输入波形,点击保存按钮保存。

5、时序仿真或功能仿真。

    (1).时序仿真:

编译VHDL文件-选择.VWF波形文件-【Processing】-【Simulator Tool】(Simulation mode:选择Timing)-点击开始仿真按钮。

    (2).功能仿真

编译VHDL文件-选择.VWF波形文件-【Processing】-【Simulator Tool】(Simulation mode:选择Functional)-【Generate Funtional Silmulation Netlist】-点击开始仿真按钮。

6、查看RTL Viewer:【Tools】-【netlist viewer】-【RTL viewer】。

四、实验过程

1. ALU

  1. 编译过程

a)源代码如图(VHDL设计)

 

b)编译、调试过程

 

 

c)结果分析及结论

    结果显示0 errors,60 warnings,VHDL文件满足题目要求。

  1. 波形仿真

a)波形仿真过程(详见实验步骤)

b)波形仿真波形图

功能仿真波形图:

 

 

 

2. 移位逻辑

A.设计方法一:直接对向量进行赋值

  1. 编译过程

a)源代码如图(VHDL设计)

 

b)编译、调试过程

 

 

c)结果分析及结论

    结果显示0 errors,38 warnings,VHDL文件满足题目要求,采用直接对向量进行赋值思想设计。

  1. 波形仿真

a)波形仿真过程(详见实验步骤)

b)波形仿真波形图

功能仿真波形图:

 

c)结果分析及结论

对于功能仿真:

0-10ns对应:   控制信号fbus为1,输出w为a的8位向量,cf为0 正确

10-20ns对应:  控制信号flbus为1,输出w为a左移一位的8位向量,

cf为a的第一位 正确

20-30ns对应:  控制信号frbus为1,输出w为a右移一位的8位向量,

cf为a的最后一位 正确

30-40ns对应:  控制信号均为0,输出高阻,cf为0 正确

40-50ns对应:  控制信号fbus为1,输出w为a的8位向量,cf为0正确

50-60ns对应:  控制信号flbus为1,输出w为a左移一位的8位向量,

cf为a的第一位 正确

60-70ns对应:  控制信号frbus为1,输出w为a右移一位的8位向量,

cf为a的最后一位 正确

 

  1. 查看RTL Viewer

 

 

B.设计方法二:使用逻辑函数对向量每一位进行赋值

1.    编译过程

a)源代码如图(VHDL设计)

 

b)编译、调试过程

 

 

c)结果分析及结论

    结果显示0 errors,0 warnings,VHDL文件满足题目要求。

  1.   波形仿真

a)波形仿真过程(详见实验步骤)

b)波形仿真波形图

功能仿真波形图:

 

c)结果分析及结论

对于功能仿真:

0-10ns对应:   控制信号fbus为1,输出w为a的8位向量,cf为0 正确

10-20ns对应:  控制信号flbus为1,输出w为a左移一位的8位向量,

cf为a的第一位 正确

20-30ns对应:  控制信号frbus为1,输出w为a右移一位的8位向量,

cf为a的最后一位 正确

30-40ns对应:  控制信号均为0,输出高阻,cf为0 正确

40-50ns对应:  控制信号fbus为1,输出w为a的8位向量,cf为0正确

50-60ns对应:  控制信号flbus为1,输出w为a左移一位的8位向量,

cf为a的第一位 正确

60-70ns对应:  控制信号frbus为1,输出w为a右移一位的8位向量,

cf为a的最后一位 正确

3.   查看RTL Viewer

 

 

3. 控制信号产生逻辑

  1. 编译过程

a)源代码如图(VHDL设计)

 

 

b)编译、调试过程

 

 

c)结果分析及结论

    结果显示0 errors,2 warnings,VHDL文件满足题目要求。

  1. 波形仿真

a)波形仿真过程(详见实验步骤)

b)波形仿真波形图

功能仿真波形图:

 

 

c)结果分析及结论

对于功能仿真:经检验,所有输出都满足条件。

3  查看RTL Viewer

 

 

 

五、实验结论与心得

经过本次实验,我对Quartus II仿真软件有了更深的理解和运用,对VHDL语言的使用有了更好的掌握,熟练了创建工程文件、软件编译操作、仿真波形模拟等操作。

使用到了VHDL语言中的是顺序描述语句,熟练掌握了IF语句和WHEN的使用,以及VHDL中向量的使用,对VHDL语言有了进一步的学习。

为了更好地运用移位逻辑,熟悉其操作,分别采用了直接对向量进行赋值和使用逻辑函数对向量每一位进行赋值两种方法,对比两者的RTL视图,明白了两者的优缺点。

 

六、思考题

1.移位逻辑不工作时,输出应该为何值?为什么?

    输出应该为高阻,为了防止和引线上的其他数据冲突。

 

2. ALU 的输出 Cf 和 Zf 应该如何处理?

    Cf为两者相加产生的进位,Zf为判断两者运算结果是否为0,对后期指令寄存器和指令译码器的操作产生影响。

 

3.如何产生正确的控制信号以及具体的编程实现?

    通过存储器到指令寄存器再到指令译码器产生。

   

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是蒸饺吖~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值