【发布时间】:2015-11-07 06:22:36
【问题描述】:
我有下面的代码,它是用 verilog 编写的。
问题是,我想在 always 块中更改名为 PC 的 reg
我需要在多个 Always Block 中处理这个问题。如果我这样做,我会收到多个驱动器错误,这是有道理的。
所以我尝试在敏感度列表中添加一些其他变量
但我收到此错误:
合成不支持在多个单边下分配。
我无法更改代码的结构。 请给我一个解决方案 代码:
always@( posedge clk or posedge PC_SRC or posedge PC_Jmp)
begin
if( clk == 1 )
begin
PC = PC + 1 ;
end
if( PC_SRC == 1 )
begin
PC = PC + Branch_PC ;
end
if( PC_Jmp == 1)
begin
PC = Branch_PC ;
end
end
【问题讨论】: