1.
在verilog 中在always@( posedge clk)能写出组合电路吗
module verilog_test(clk,a,data,asy_rst);
input clk;
input a;
input data;
output asy_rst;
reg asy_rst;
always @(posedge clk)
begin
if(a==2'h0)
asy_rst<=data;
end
endmodule
RTL图如下
vhdl的写法 下如
Process(clk)
Begin
If clk’event and clk’event =’1’ then
If a>2500 then
A <=0;
ELSE A<=A+’1’;
END IF;
END IF;
C<=A+B;
END PROCESS;
2.
//verilog 使能时钟为 同步 先检查时钟clk 后检测if 中使能条件
//在 vhdl 中是先检查 使能 然后 才是clk
If (en=‘1’)then
If clk‘event and clk’event=‘1’then
3.always 模块中是串行还是并行
代码一
module verilog_test(clk,a,data,asy_rst);
input clk;
input a;
input data;
output asy_rst;
reg asy_rst;
always @(posedge clk )
begin
asy_rst<=2'b0;
if(a==2'h0)
asy_rst<=data;
end
endmodule
代码二
module verilog_test(clk,a,data,asy_rst);
input clk;
input a;
input data;
output asy_rst;
reg asy_rst;
always @(posedge clk )
begin
asy_rst<=2'b0;
if(a==2'h0)
asy_rst<=data;
end
endmodule
在看下面这段代码 是先执行asy_rst<=2’b0 吗 那 生成的 是个怎样的RTL呢
答案是 这个 代码 结果和 上面的是一样的 也是一个选择器 一个 触发器
这里 可以看出 执行的关系 ,我认为 在always 模块中是先 把 模块执行完后 所有的结果都不更新, 等clk到来了 更新, 完全与电路相关
文章评论(0条评论)
登录后参与讨论