Line 42... |
Line 42... |
|
|
module ogfx_reg_fifo (
|
module ogfx_reg_fifo (
|
|
|
// OUTPUTs
|
// OUTPUTs
|
fifo_cnt_o, // Fifo counter
|
fifo_cnt_o, // Fifo counter
|
|
fifo_empty_cnt_o, // Fifo empty words counter
|
fifo_data_o, // Read data output
|
fifo_data_o, // Read data output
|
fifo_done_evt_o, // Fifo has been emptied
|
fifo_done_evt_o, // Fifo has been emptied
|
fifo_empty_o, // Fifo is currentely empty
|
fifo_empty_o, // Fifo is currentely empty
|
fifo_full_o, // Fifo is currentely full
|
fifo_full_o, // Fifo is currentely full
|
fifo_ovfl_evt_o, // Fifo overflow event
|
fifo_ovfl_evt_o, // Fifo overflow event
|
Line 61... |
Line 62... |
);
|
);
|
|
|
// OUTPUTs
|
// OUTPUTs
|
//=========
|
//=========
|
output [3:0] fifo_cnt_o; // Fifo counter
|
output [3:0] fifo_cnt_o; // Fifo counter
|
|
output [3:0] fifo_empty_cnt_o; // Fifo empty word counter
|
output [15:0] fifo_data_o; // Read data output
|
output [15:0] fifo_data_o; // Read data output
|
output fifo_done_evt_o; // Fifo has been emptied
|
output fifo_done_evt_o; // Fifo has been emptied
|
output fifo_empty_o; // Fifo is currentely empty
|
output fifo_empty_o; // Fifo is currentely empty
|
output fifo_full_o; // Fifo is currentely full
|
output fifo_full_o; // Fifo is currentely full
|
output fifo_ovfl_evt_o; // Fifo overflow event
|
output fifo_ovfl_evt_o; // Fifo overflow event
|
Line 96... |
Line 98... |
//============================================================================
|
//============================================================================
|
// 5) FIFO COUNTER
|
// 5) FIFO COUNTER
|
//============================================================================
|
//============================================================================
|
|
|
// Control signals
|
// Control signals
|
wire fifo_full_o = (fifo_cnt_o == FIFO_FULL);
|
assign fifo_full_o = (fifo_cnt_o == FIFO_FULL);
|
wire fifo_empty_o = (fifo_cnt_o == FIFO_EMPTY);
|
assign fifo_empty_o = (fifo_cnt_o == FIFO_EMPTY);
|
|
assign fifo_empty_cnt_o = (FIFO_FULL-fifo_cnt_o);
|
wire fifo_push_int = fifo_push_i & !fifo_full_o;
|
wire fifo_push_int = fifo_push_i & !fifo_full_o;
|
wire fifo_pop_int = fifo_pop_i & !fifo_empty_o;
|
wire fifo_pop_int = fifo_pop_i & !fifo_empty_o;
|
|
|
// Events
|
// Events
|
assign fifo_done_evt_o = ~fifo_empty_o & (fifo_cnt_nxt == FIFO_EMPTY);
|
assign fifo_done_evt_o = ~fifo_empty_o & (fifo_cnt_nxt == FIFO_EMPTY);
|