framebuffer: fix FIFO read clocking
This commit is contained in:
parent
2dfdc8f3c5
commit
99bb705407
|
@ -189,6 +189,7 @@ class FIFO(Actor):
|
||||||
return Fragment(
|
return Fragment(
|
||||||
[
|
[
|
||||||
asfifo.ins["read_en"].eq(1),
|
asfifo.ins["read_en"].eq(1),
|
||||||
|
Cat(self.vga_hsync_n, self.vga_vsync_n, self.vga_r, self.vga_g, self.vga_b).eq(asfifo.outs["data_out"]),
|
||||||
|
|
||||||
self.endpoints["dac"].ack.eq(~asfifo.outs["full"]),
|
self.endpoints["dac"].ack.eq(~asfifo.outs["full"]),
|
||||||
asfifo.ins["write_en"].eq(self.endpoints["dac"].stb),
|
asfifo.ins["write_en"].eq(self.endpoints["dac"].stb),
|
||||||
|
@ -196,8 +197,6 @@ class FIFO(Actor):
|
||||||
|
|
||||||
self.busy.eq(0),
|
self.busy.eq(0),
|
||||||
asfifo.ins["rst"].eq(0)
|
asfifo.ins["rst"].eq(0)
|
||||||
], [
|
|
||||||
Cat(self.vga_hsync_n, self.vga_vsync_n, self.vga_r, self.vga_g, self.vga_b).eq(asfifo.outs["data_out"])
|
|
||||||
],
|
],
|
||||||
instances=[asfifo])
|
instances=[asfifo])
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ module asfifo #(
|
||||||
parameter fifo_depth = (1 << address_width)
|
parameter fifo_depth = (1 << address_width)
|
||||||
) (
|
) (
|
||||||
/* Read port */
|
/* Read port */
|
||||||
output [data_width-1:0] data_out,
|
output reg [data_width-1:0] data_out,
|
||||||
output reg empty,
|
output reg empty,
|
||||||
input read_en,
|
input read_en,
|
||||||
input clk_read,
|
input clk_read,
|
||||||
|
@ -33,7 +33,12 @@ wire set_status, clear_status;
|
||||||
reg status;
|
reg status;
|
||||||
wire preset_full, preset_empty;
|
wire preset_full, preset_empty;
|
||||||
|
|
||||||
assign data_out = mem[read_index];
|
reg [data_width-1:0] data_out0;
|
||||||
|
|
||||||
|
always @(posedge clk_read) begin
|
||||||
|
data_out0 <= mem[read_index];
|
||||||
|
data_out <= data_out0;
|
||||||
|
end
|
||||||
|
|
||||||
always @(posedge clk_write) begin
|
always @(posedge clk_write) begin
|
||||||
if(write_en & !full)
|
if(write_en & !full)
|
||||||
|
|
Loading…
Reference in New Issue