verilog hdl里能不能使多个begin-end语句并行执行

2024-11-25 23:10:14
推荐回答(3个)
回答(1):

可以. verilog HDL与C最大的不同就是它可以并行执行而C不可以.

verilog HDL的module里一般由块语句组成,块语句既有并行块又有串行块,块与块之间是并行执行,顺序块内是串行执行,并行块内是并行执行.
你如果想要多个begin-end语句并行执行,那么就把它们分别放在每一个并行块内部,这些并行块放在module与endmodule内.具体结果如下:

module XXX(a,b,c);

input x ;
output x ;

always @(敏感语句)
begin

......

end

always @(敏感语句)
begin

......

end

always @(敏感语句)
begin

......

end

endmodule

不会可以再问.

比如

case({ina,inb,cin})

3'b000:
begin
sum=0;
cout=0;
end

3'b010:
begin
sum=1;
cout=0;
end

3'b100:
begin
sum=1;
cout=0;
end

endcase

回答(2):

用状态机来描述
case({a,b})

2'b00:
begin
……
end

2'b01:
begin
……
end

2'b10:
begin
……
end

2'b11:
begin
……
end

回答(3):

多个begin-end语句本来就是并行执行的。