x393  1.0
FPGAcodeforElphelNC393camera
cmprs_status.v
Go to the documentation of this file.
1 
39 `timescale 1ns/1ps
40 
41 module cmprs_status #(
42  parameter NUM_FRAME_BITS = 4
43  ) (
44  input mrst,
45  input mclk, // system clock
46  input eof_written,
50  input set_interrupts, // data = 2: disable, 3 - enable, 1 - reset irq
51  input [1:0] data_in,
52  output [NUM_FRAME_BITS+7:0] status,
53  output irq
54 );
55 
58  reg is_r; // interrupt status (not masked)
59  reg im_r; // interrupt mask
61 
62  assign status = {frame_irq[NUM_FRAME_BITS - 1:0],
63  3'b0,
67  im_r, is_r};
68  assign irq = is_r && im_r;
69 
70  always @(posedge mclk) begin
71  if (mrst) im_r <= 0;
72  else if (set_interrupts && data_in[1]) im_r <= data_in[0];
73 
74  if (mrst) is_r <= 0;
75  else if (eof_written) is_r <= 1;
76  else if (set_interrupts && (data_in == 1)) is_r <= 0;
77 
79 
81 
83  else if (eof_written) flushing_fifo <= 0;
84  end
85 
86 endmodule
87 
[NUM_FRAME_BITS+7:0] 1798status
Definition: cmprs_status.v:52
[1:0] 1797data_in
Definition: cmprs_status.v:51
1804frame_irqreg[NUM_FRAME_BITS-1:0]
Definition: cmprs_status.v:60
[NUM_FRAME_BITS - 1:0] 1795frame_num_compressed
Definition: cmprs_status.v:49
1789NUM_FRAME_BITS4
Definition: cmprs_status.v:42
1801flushing_fiforeg
Definition: cmprs_status.v:57
1800stuffer_running_rreg
Definition: cmprs_status.v:56