?? wptr_full.v
字號:
// 寫指針與"滿"邏輯
module wptr_full (wfull, wptr, afull_n, wreq, wclk, wrst_n);
parameter ADDR_WIDTH = 4;
output wfull;
output [ADDR_WIDTH-1:0] wptr;
input afull_n;
input wreq, wclk, wrst_n;
reg [ADDR_WIDTH-1:0] wptr, wbin;
reg wfull, wfull2;
wire [ADDR_WIDTH-1:0] wgnext, wbnext;
// 寄存器輸出Gray碼讀地址指針
always @(posedge wclk or negedge wrst_n)
if (!wrst_n) begin
wbin <= 0;
wptr <= 0;
end
else begin
wbin <= wbnext;
wptr <= wgnext;
end
// Gray碼計數邏輯
assign wbnext = !wfull ? wbin + wreq : wbin;
assign wgnext = (wbnext>>1) ^ wbnext;
always @(posedge wclk or negedge wrst_n or negedge afull_n)
if (!wrst_n )
{wfull,wfull2} <= 2'b00;
else if (!afull_n)
{wfull,wfull2} <= 2'b11;
else
{wfull,wfull2} <= {wfull2,~afull_n};
endmodule
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -