59 lines
1.8 KiB
Coq
59 lines
1.8 KiB
Coq
|
|
module main;
|
||
|
|
|
||
|
|
reg clk, rst, done;
|
||
|
|
wire [31:0] x;
|
||
|
|
reg [3:0] a;
|
||
|
|
reg [23:0] in, out;
|
||
|
|
reg [2:0] a_fifo_cam_indices[3:0], lt_fifo_cam_indices[3:0];
|
||
|
|
|
||
|
|
// Debug signals to see 'em under signalscan
|
||
|
|
// -- iverilog generates a warning here
|
||
|
|
wire [2:0] db0_a_fifo_cam_indices = a_fifo_cam_indices[0];
|
||
|
|
|
||
|
|
// generate a clock
|
||
|
|
always
|
||
|
|
#10 clk = ~clk;
|
||
|
|
|
||
|
|
// -- iverilog generates a warning here
|
||
|
|
assign x[31:0] = { 28'hfffffff, (~a[3:0] + 4'd1) };
|
||
|
|
|
||
|
|
initial
|
||
|
|
begin
|
||
|
|
$display ("\n<< BEGIN >>");
|
||
|
|
rst = 1'b0;
|
||
|
|
a[3:0] = 4'b0101;
|
||
|
|
|
||
|
|
// -- iverilog internal value is not dealt with correctly (see value
|
||
|
|
out[23:0] = ( rst ? 24'o7654_3210 : in[23:0] );
|
||
|
|
|
||
|
|
casex ( done )
|
||
|
|
// -- iverilog generate errors - "could not match signal"
|
||
|
|
1'b1: { a_fifo_cam_indices[3],
|
||
|
|
a_fifo_cam_indices[2],
|
||
|
|
a_fifo_cam_indices[1],
|
||
|
|
a_fifo_cam_indices[0] } = {3'b000,
|
||
|
|
lt_fifo_cam_indices[3],
|
||
|
|
lt_fifo_cam_indices[2],
|
||
|
|
lt_fifo_cam_indices[1]};
|
||
|
|
1'b0: { a_fifo_cam_indices[3],
|
||
|
|
a_fifo_cam_indices[2],
|
||
|
|
a_fifo_cam_indices[1],
|
||
|
|
a_fifo_cam_indices[0] } = { lt_fifo_cam_indices[3],
|
||
|
|
lt_fifo_cam_indices[2],
|
||
|
|
lt_fifo_cam_indices[1],
|
||
|
|
lt_fifo_cam_indices[0]};
|
||
|
|
endcase
|
||
|
|
|
||
|
|
$display ("\n<< END >>");
|
||
|
|
$finish(0);
|
||
|
|
end
|
||
|
|
|
||
|
|
// Waves definition
|
||
|
|
// initial
|
||
|
|
// begin
|
||
|
|
// $dumpfile("out.dump");
|
||
|
|
// $dumpvars(0, main);
|
||
|
|
// end
|
||
|
|
|
||
|
|
endmodule // main
|