华为2021年4月14日笔试题:通过vivado仿真证明b=8’h8f,reg b[0:4] ,则b[0:4]为0f

b=8’h8f,reg b[0:4]
b[0:4]为0f
针对这个题进行了一些讨论:
(1) 定义方式:[0:7]a [0:4]b a=8’h8f(10001111);
b<=a;
在这里插入图片描述
从仿真结果看出,把8位宽的a赋值给5位宽的b时,直接是把物理位置上最右边的5位给了b,没有考虑访问顺序。
(2) 为了区分最高位和最低位,我将8f改为8e。且增加了一些量:
[0:4]b;
[0:4]c;
[0:4]d;
b<=a;
c<=a[1+:5];
d<=a[7-:5];
e<=a[0];
f<=a[7];
a=10001110
c=00011;也即是将从第1位开始(根据a的定义[0:7],第0位时最左边的),数5位数直接整体搬下来输入到c中,没有更改数据顺序。
d=01110;也就是将数据从做第7位开始,也就是最高位,即最右边的数开始,往左边数5位数,然后将整体搬下来,赋值为d,也是没有更改数据顺序的(原来时01110,现在还是01110)。
(3)在(2)的基础上更改a的定义顺序为[7:0]
在这里插入图片描述
从图中可以看出,不管a的定义方式如何,b都是等于a物理上最右边的5位数,整体赋值下去。
bcdef的输入都收到的影响,因为他们的值与a的定义方式有关。
(4)我将b的位宽增大为[0:10],其结果还是,将a这个整体赋值给b,且还是从物理位置和是哪个的最右边赋值给a的物理位置上的最右边,与变量的定义方式无关。
在这里插入图片描述
小结,整体赋值的时候与定义方式无关,就是整体赋值,也就是和访问顺序无关。访问顺序有关情况:将数据串中部分数据输出的时候。
写的比较凌乱,如有问题,希望大家能指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

IC媛

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

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

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

打赏作者

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

抵扣说明:

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

余额充值