Menu Close

问题答疑(13)-(15)

1.sext 将数据进行有符号位扩展,是将负数用补码表示,正数不变吗

2.NOT伪指令中是否应该是32’hffff_ffff,因为rs1和rd都是32bit的
XORI rd,rs1,immediate
NOT rd,rs1 (等同于XORI rd,rs1,12’hfff)

3.课程中提到“异步释放”的概念,对此我不太理解,尤其是“同步复位,异步释放”的行为,无法理解此时异步释放是如何形成的,既然已经是同步复位,说明复位信号和本模块时钟是同步的,又怎么会形成异步释放呢?

4.

@(posedge test_signal); //备注:此处结尾有分号
a=0;
@(posedge test_signal ) //备注:此处结尾没有分号
a=0;
请问老师以上两种@边沿写法,第一种有分号,是否与“a=0 ”,没有关系;第二种没有分号,是否表示在上升沿
时才会执行“a=0”呢?

5.
1)、 @(posedge test_signal)//备注:此结尾处没有分号
a=0;
b=0;
2)、@(posedge test_signal)//备注:此结尾处没有分号
begin
a=0;
b=0;
end
请问老师以上两种写法中,第一种写法当上升沿到来时,只有”a=0″会被执行,与信号上升沿同步,而不会执行
“b=0”,即“b=0”不会与信号上升沿保持同步;第二种写法当上升沿到来时,“a=0;b=0”均会被执行,与
信号上升沿保持同步。对吗?

6.{$random}、$time,这两个系统函数都是不可综合的,只有在仿真中才可以使用,对吗?

7.
例2中,
a<<i,如果a是1010,i是2,a<<2得到的是1000,最高两位舍弃了,这样的到的结果理论上是不对的。就是这块的过程一直不明白,仿真结果是对的。求老师解答。

例2:
module for_mult
(
input inclk,
input [3:0] a,b,
output reg [7:0] p
);

integer i;

always@(posedge inclk)
begin
p = 0;
for(i = 0; i < 4; i = i + 1)
begin
if(b[ i ])
p = p + (a << i);
end
end

endmodule

8.`resetall

9.
pullup(scl_io);//模拟IIC外部上拉电阻,用于仿真

pullup(sda_io);//模拟IIC外部上拉电阻,用于仿真

 

10. reg [7:0]mem[0:7][0:1023];//更为复杂的数组形式

 

11.如果soc里有两个MCU,这两个MCU进行数据交换,数据交换期间,数据通过两个MCU外面的总线矩阵的top模块,数据交换期间这条wire线很长,很难提高两MCU的性能,在做这个提高两MCU的性能方案设计时是不是只有把这条wire线从中间砍成两半加一级寄存器,来提高两MCU的性能吗?

 

问题对应答疑视频:

Verilog问题答疑(13)RISC-V中有符号位扩展,MCU数据交换–视频教程

Verilog问题答疑(14)RISC-V中有符号位扩展,异步复位,同步释放–视频教程

Verilog问题答疑(15)`resetall,pullup,3维数组,MCU数据交换–视频教程

Posted in FPGA, FPGA 教材教案, 教材与教案, 文章

发表回复

相关链接