avrgogo 发表于 2011-6-4 14:11:04

请教大家一个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}; 拼接出来是一个什么数据类型啊?

banyai 发表于 2011-6-4 15:23:06

拼接操作符,拼成3位,最低位是ps2_clk。

mcupro 发表于 2011-6-18 15:23:28

ps2_clkr <= {ps2_clkr, ps2_clk}; 如果写成 ps2_clkr <= {ps2_clkr, ps2_clk};是不是就理解了,就是将ps2_clk信号打两个拍子嘛。

avrgogo 发表于 2011-6-18 16:07:30

谢谢楼上的两位,后来理解了,实际上是一个检测上升沿或者下降沿的方法。
页: [1]
查看完整版本: 请教大家一个VERILOG关于{}用的语法问题。