请教大家一个VERILOG关于{}用的语法问题。
刚在看啊虚的PS2协议。其中有一段verilog如下/*****************************/
这里可以用一个FIFO来储存数据,如下面的程序,当ps2_clk信号处于下降沿时,ps2_clk_fallingedge值将被置高
reg ps2_clkr;//用一个fifo来采样ps2_clk信号;
always @(posedge clk)
ps2_clkr <= {ps2_clkr, ps2_clk};
wire ps2_clk_risingedge = (ps2_clkr==2'b01); // now we can detect ps2_clk rising edges
wire ps2_clk_fallingedge = (ps2_clkr==2'b10); // and falling edges
/****************************/
我想请教各位一下,其中always @(posedge clk)
ps2_clkr <= {ps2_clkr, ps2_clk};
要怎么理解。像{}是一个数据拼接,{ps2_clkr, ps2_clk}; 拼接出来是一个什么数据类型啊? 拼接操作符,拼成3位,最低位是ps2_clk。 ps2_clkr <= {ps2_clkr, ps2_clk}; 如果写成 ps2_clkr <= {ps2_clkr, ps2_clk};是不是就理解了,就是将ps2_clk信号打两个拍子嘛。 谢谢楼上的两位,后来理解了,实际上是一个检测上升沿或者下降沿的方法。
页:
[1]