请教大虾verilog语法。
时间:10-02
整理:3721RD
点击:
阅读verilog文件见下面代码,不甚明白,敬请帮忙解读。
reg scall_m, scall_w;
always @(negedge clk_i)
begin
if (Platform_u.Platform_u.LM32.cpu.stall_m == 1'b0)
begin
scall_m <= Platform_u.Platform_u.LM32.cpu.scall_x &
Platform_u.Platform_u.LM32.cpu.valid_x;
scall_w <= scall_m & Platform_u.Platform_u.LM32.cpu.valid_m;
end
谢谢。
reg scall_m, scall_w;
always @(negedge clk_i)
begin
if (Platform_u.Platform_u.LM32.cpu.stall_m == 1'b0)
begin
scall_m <= Platform_u.Platform_u.LM32.cpu.scall_x &
Platform_u.Platform_u.LM32.cpu.valid_x;
scall_w <= scall_m & Platform_u.Platform_u.LM32.cpu.valid_m;
end
谢谢。
你被长长的变量名吓到了吧,这个就是在时钟下降沿到来时if满足就赋值,两个赋值都是与运算
请问这个是标准verilog语法么?
不是的吧,正常变量赋值都有初值的,就是要有个复位信号,一般都是异步复位
不知道你这个程序截取的全不,一般if都与else成对出现的,如果缺少else项就会生成锁存器
代码很长,这只是其中一个block。总觉得语法与verilog有差别。
这是system verilog,一般用于测试。那些带点的信号是cross module singnal,前面都是hierarchy。
谢谢了。
