VERILOG 串并转换代码
module ser_parrel(clk,reset,en,in,I,Q);inputclk,reset,en,in;
outputI,Q;
reg out;
always@(posedge clk)
begin
if(reset) out<=2'h0;
else if(en)out<={out,in};
end
assign I=out;
assign Q=out;
endmodule LZ什么意思?<br>
这代码怎么了? module ser_parrel(clk,reset,en,in,out);<br>
input clk,reset,en,in;<br>
output out; // 身边没有资料,忘记这么表述可以吗? 可以修改 来扩展位数的<br>
为了使数据准确 建议采用锁存方式 这里就不附代码了 :)<br>
reg out;<br>
always@(posedge clk) // 楼主采用的是同步清零<br>
begin<br>
if(reset) out<=2'h0;<br>
else if(en) out<={out,in};<br>
end<br>
endmodule<br>
<br>
[ 本帖最后由 ljmdiy 于 2007-2-3 15:27 编辑 ] 原帖由 iccome 于 2007-2-2 19:04 发表<br>
...<br>
else if(en) out<={out,in};<br>
... 这一句不对,如果你的out是2位的,后面一合并就成三位的了<br>
还有,串并转换不用这么麻烦吧?你的代码还可以精简 学习中,关注中 也不用这么麻烦吧!实例化四个D触发器不就高定了吗 4楼和6楼有更好的方法,那就把程序写出来看看吧! 我这是我的一个项目中的一部份,还有其他考虑在里面,谢谢关注 其实 还不错 VERILOG 串并转换代码
页:
[1]