gpt4 book ai didi

Verilog:你能把 "assign"语句放在 always@ 或 begin/end 语句中吗?

转载 作者:行者123 更新时间:2023-12-03 18:18:31 25 4
gpt4 key购买 nike

这是允许的吗?

input w;
input [8:0]y;
output reg [8:0]x;
always@(w)
begin


//x[0] or A is never on in any next state
assign x[0] = 0;
assign x[1]= (y[0]&~w) | (y[5]&~w) | (y[6]&~w) | (y[7]&~w) | (y[8]&~w); //B
assign x[2]= (y[1]&~w); //C
assign x[3]= (y[2]&~w); //D
assign x[4]= (y[3]&~w) | (y[4]&~w); //E
assign x[5]= (y[0]&w) | (y[1]&w) | (y[2]&w) | (y[3]&w) | (y[4]&w); //F
assign x[6]= (y[5]&w);
assign x[7]= (y[6]&w);
assign x[8]= (y[7]&w) | (y[8]&w);

end

最佳答案

你可以,它被称为“程序连续分配”。它覆盖了普通的程序分配,您发布的代码中似乎没有调用它们。我不确定它们是否可合成,但无论如何我都没有理由使用它们。

关于您的代码的注释 - 您丢失了 y来自您的敏感列表:例如 always @( w or y )always @(*)更安全。

关于Verilog:你能把 "assign"语句放在 always@ 或 begin/end 语句中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1641184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com