hnu 数字电路 实验3.2 移位模块

2.用VHDL语言设计模型机的移位模块
① 理解题意,分析题目要求我们实现模型机中的移位模块,即通过fbus,flbus,frbus三个使能信号,分别控制移位模块完成直达、左移一位、右移一位的操作,将移位后的w信号输出,并更新cf的值。
② 打开Quartus II,新建工程,工程命名为move_logic,开始编写源代码。
③ 写好源代码,保存文件。

LIBRARY IEEE;
use ieee.std_logic_1164.all;

entity move_logic is
  port(fbus,flbus,frbus:in std_logic;
       a:in std_logic_vector(7 downto 0);
       cf:out std_logic;
       w:out std_logic_vector(7 downto 0));
end move_logic;

architecture achieve of move_logic is
begin
process(fbus,flbus,frbus)
  begin
    if(fbus='1')  then
        w<=a;
        cf<='0';
    elsif(flbus='1')  then
        w<=a(6 downto 0)&a(7);
        cf<=a(7);
    elsif(frbus='1')  then
        w<=a(0)&a(7 downto 1);
        cf<=a(0);
    else
        w<="ZZZZZZZZ";
        cf<='0';
    end if;
end process;
end achieve;

(如图为源代码)
在这里插入图片描述
④ 编译与调试。确保顶层实现的命名和工程名一致。编译成功。
在这里插入图片描述
⑤ 查看RTL视图。
在这里插入图片描述
⑥ RTL图如上图所示。可以明显看出,这个视图较为复杂,通过视图来判断逻辑是否正确难度较大,所以逻辑的正确性我们将通过后续的波形图来

⑦ 功能仿真的波形及验证。
a.新建波形文件。将选择输入s2-s0输入,并指定被选择的x7-x0。
b.生成网表,功能仿真。生成网表成功。
在这里插入图片描述
功能仿真成功。功能仿真波形图如图所示:
在这里插入图片描述
c.结果分析及结论
0-20.0ns,fbus=1,flbus=frbus=0,a向量11110000直达通过移位模块,输出w为11110000,此时cf保持原值不变,输出无误。
30.0-50.0ns,flbus=1,fbus=frbus=0,a向量11110000左移一位,输出w为11100001,并将第一位的移位数值1传给cf,输出无误。
60.0-80.0ns,frbus=1,fbus=flbus=0,a向量11110000右移一位,输出w为01111000,并将最后一位的移位数值0传给cf,输出无误。
⑧ 实现时序仿真。
a.时序仿真成功。
在这里插入图片描述
b.时序仿真波形图如下:
在这里插入图片描述
c.结果分析及结论
0-20.0ns,fbus=1,flbus=frbus=0,a向量11110000直达通过移位模块,输出w为11110000,此时cf保持原值不变,输出无误。
20.0-27.14,此时fbus=flbus=frbus=0,应该输出高阻,但因为存在延时,w=11110000,cf依旧保持原值不变。
30.0-39.55ns,此时flbus=1,fbus=frbus=0,应进行左移,但因为存在延时,输出w仍为高阻。
39.55-50.0ns,flbus=1,fbus=frbus=0,a向量11110000左移一位,输出w为11100001,并将第一位的移位数值1传给cf。
50.0-56.94ns,此时fbus=flbus=frbus=0,应该输出高阻,但因为存在延时,w=11100001,cf依旧保持原值不变。
60.0-67.86ns,此时frbus=1,fbus=flbus=0,应进行右移,但因为存在延时,输出w仍为高阻。
67.86-80.0ns,frbus=1,fbus=flbus=0,a向量11110000右移一位,输出w为01111000,并将最后一位的移位数值0传给cf。
80.0-86.63ns,此时fbus=flbus=frbus=0,应该输出高阻,但因为存在延时,w=01111000,cf依旧保持原值不变。

d.编译【classic timing analysis】-在compilation report中选择【timing analysis】-【tpd】(引脚到引脚的延时)
在这里插入图片描述
从a5到w5耗时最长,为8.736ns,从frbus到w2耗时最短,为7.361ns,可结果由耗时最长的那个决定,故整体耗时为8.736ns。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值