各位大侠,
学习VERILOG过程中遇到如下问题:对带置位复位锁存器的两种写法,一种用assign,另一种用always。always中用到了REG型变量,而assign中用的是线网。语言结构而言assign较简单。不知道这两种写法综合成实际电路后哪种更有优势,会有些什么特点。
写法1:
module t1(q,data,clk,set,reset);
output q;
input data,clk,set,reset;
assign q=reset?0:(set?1:(clk?data:q));
endmodule
写法2:
module t2(q,data,clk,set,reset);
output q;
input data,clk,set,reset;
reg q;
always @(clk)
begin
if(clk)
begin
if(reset)
q=0;
else
if(set)
q=1;
else
q=data;
end
else
q=q;
end
endmodule
刚学VERILOG,有些东西理解浅。
十分感谢!
|