我正在尝试理解这段 Verilog 代码..
reg [2:0] SYNC;
always @(posedge clk) SYNC <= {SYNC[1:0], ASYNC};
wire SYNC_risingedge = (SYNC[2:1] == 2'b01);
wire SYNC_fallingedge = (SYNC[2:1] == 2'b10);
wire SYNC_on = ~SYNC[1];
据我了解。产生一个 3 位寄存器 (sync) 当时钟上升时,sync 等于位 1 和 0 与 (async) 的当前值的组合。SYNC_risingedge 等于(同步)位 2 和 1 以及二进制“01”的值 SYNC_fallingedge 等于(同步)位 2 和 1 以及二进制“10”的值 SYNC_on 等于同步的倒数。
我的问题在引号中的行旁边。
reg [2:0] SYNC;
always @(posedge clk) SYNC <= {SYNC[1:0], ASYNC}; *"does this mean that it concentrates the state of ASYNC with only bits 1 and 0?"*
wire SYNC_risingedge = (SYNC[2:1] == 2'b01); *"is the binary number 01 placed only in bits 2 and 1? if so, how does it affect the previous line?"*
wire SYNC_fallingedge = (SYNC[2:1] == 2'b10); *"same question as previous line"*
wire SYNC_on = ~SYNC[1]; *"What does the [1] mean in ~SYNC[1]?"*
我在网上搜索过,寻找 Verilog 语法来理解这段代码,但没有找到。任何援助将不胜感激。