removed commented code, fixed indentation & code formatting issues
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram18k_sdp/sim/Makefile b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram18k_sdp/sim/Makefile
index ad94052..0cce75d 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram18k_sdp/sim/Makefile
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram18k_sdp/sim/Makefile
@@ -39,7 +39,6 @@
@rm -rf $(word $(1),$(POST_SYNTH)).vcd $(word $(1),$(POST_SYNTH)).vvp $(word $(1),$(POST_SYNTH)).vvp.log $(word $(1),$(POST_SYNTH)).vcd.log
endef
-#FIXME: $(call simulate_post_synth,3)
sim:
$(call simulate_post_synth,1)
$(call clean_post_synth_sim,1)
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram18k_sdp/sim/asymmetric_bram18k_sdp_tb.v b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram18k_sdp/sim/asymmetric_bram18k_sdp_tb.v
index f71ee13..e8ffaa5 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram18k_sdp/sim/asymmetric_bram18k_sdp_tb.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram18k_sdp/sim/asymmetric_bram18k_sdp_tb.v
@@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -23,7 +23,7 @@
localparam ADDR_INCR = 1;
reg clk_0;
- reg clk_1;
+ reg clk_1;
reg rce;
reg [`ADDR_WIDTH1-1:0] ra;
wire [`DATA_WIDTH1-1:0] rq;
@@ -34,12 +34,11 @@
initial clk_0 = 0;
initial clk_1 = 0;
initial ra = 0;
- initial wa = 0;
- initial wd = 0;
+ initial wa = 0;
+ initial wd = 0;
initial rce = 0;
- initial wce = 0;
+ initial wce = 0;
initial forever #(PERIOD / 2.0) clk_0 = ~clk_0;
- //initial forever #(PERIOD / 2.0) clk_1 = ~clk_1;
initial begin
#(PERIOD / 4.0);
forever #(PERIOD / 2.0) clk_1 = ~clk_1;
@@ -72,76 +71,76 @@
error_0_cnt <= error_0_cnt + 1'b1;
end
-case (`STRINGIFY(`TOP))
-"spram_9x2048_18x1024": begin
- initial #(1) begin
- // Write data
- for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
- @(negedge clk_0) begin
- wa = a[`ADDR_WIDTH0-1:0];
- wd = a[9:1];
- wce = 1;
- end
- @(posedge clk_0) begin
- #(PERIOD/10) wce = 0;
- end
- end
- // Read data
- read_test_0 = 1;
- for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
- @(negedge clk_1) begin
- ra = a;
- rce = 1;
- end
- @(posedge clk_1) begin
- expected_0 <= {a[8],a[8],a[7:0],a[7:0]};
- #(PERIOD/10) rce = 0;
- if ( rq !== expected_0) begin
- $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, rq, expected_0, a);
- end else begin
- $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, rq, expected_0, a);
+ case (`STRINGIFY(`TOP))
+ "spram_9x2048_18x1024": begin
+ initial #(1) begin
+ // Write data
+ for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
+ @(negedge clk_0) begin
+ wa = a[`ADDR_WIDTH0-1:0];
+ wd = a[9:1];
+ wce = 1;
+ end
+ @(posedge clk_0) begin
+ #(PERIOD/10) wce = 0;
end
end
- end
- done_0 = 1'b1;
- a = 0;
- end
-end
-"spram_18x1024_9x2048": begin
- initial #(1) begin
- // Write data
- for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
- @(negedge clk_0) begin
- wa = a[`ADDR_WIDTH0-1:0];
- wd = {a[8],a[8],a[7:0],a[7:0]};
- wce = 1;
- end
- @(posedge clk_0) begin
- #(PERIOD/10) wce = 0;
- end
- end
- // Read data
- read_test_0 = 1;
- for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
- @(negedge clk_1) begin
- ra = a;
- rce = 1;
- end
- @(posedge clk_1) begin
- expected_0 <= {a[9:1]};
- #(PERIOD/10) rce = 0;
- if ( rq !== expected_0) begin
- $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, rq, expected_0, a);
- end else begin
- $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, rq, expected_0, a);
+ // Read data
+ read_test_0 = 1;
+ for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
+ @(negedge clk_1) begin
+ ra = a;
+ rce = 1;
+ end
+ @(posedge clk_1) begin
+ expected_0 <= {a[8],a[8],a[7:0],a[7:0]};
+ #(PERIOD/10) rce = 0;
+ if ( rq !== expected_0) begin
+ $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, rq, expected_0, a);
+ end else begin
+ $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, rq, expected_0, a);
+ end
end
end
+ done_0 = 1'b1;
+ a = 0;
end
- done_0 = 1'b1;
- a = 0;
end
-end
-endcase
+ "spram_18x1024_9x2048": begin
+ initial #(1) begin
+ // Write data
+ for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
+ @(negedge clk_0) begin
+ wa = a[`ADDR_WIDTH0-1:0];
+ wd = {a[8],a[8],a[7:0],a[7:0]};
+ wce = 1;
+ end
+ @(posedge clk_0) begin
+ #(PERIOD/10) wce = 0;
+ end
+ end
+ // Read data
+ read_test_0 = 1;
+ for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
+ @(negedge clk_1) begin
+ ra = a;
+ rce = 1;
+ end
+ @(posedge clk_1) begin
+ expected_0 <= {a[9:1]};
+ #(PERIOD/10) rce = 0;
+ if ( rq !== expected_0) begin
+ $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, rq, expected_0, a);
+ end else begin
+ $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, rq, expected_0, a);
+ end
+ end
+ end
+ done_0 = 1'b1;
+ a = 0;
+ end
+ end
+ endcase
// Scan for simulation finish
always @(posedge clk_1) begin
@@ -153,7 +152,7 @@
"spram_9x2048_18x1024": begin
spram_9x2048_18x1024 #() bram (
.clock0(clk_0),
- .clock1(clk_1),
+ .clock1(clk_1),
.REN_i(rce),
.RD_ADDR_i(ra),
.RDATA_o(rq),
@@ -165,7 +164,7 @@
"spram_18x1024_9x2048": begin
spram_18x1024_9x2048 #() bram (
.clock0(clk_0),
- .clock1(clk_1),
+ .clock1(clk_1),
.REN_i(rce),
.RD_ADDR_i(ra),
.RDATA_o(rq),
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_afifo/asymmetric_bram36k_afifo.v b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_afifo/asymmetric_bram36k_afifo.v
index 031a4bd..6cef5f5 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_afifo/asymmetric_bram36k_afifo.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_afifo/asymmetric_bram36k_afifo.v
@@ -33,7 +33,7 @@
AFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -53,8 +53,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module af2048x18_1024x36 (DIN,PUSH,POP,clock0,clock1,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -75,7 +74,7 @@
output Overrun_Error, Underrun_Error;
AFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -95,8 +94,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module af2048x18_4098x9 (DIN,PUSH,POP,clock0,clock1,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -117,7 +115,7 @@
output Overrun_Error, Underrun_Error;
AFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -137,8 +135,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module af1024x36_4098x9 (DIN,PUSH,POP,clock0,clock1,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -159,7 +156,7 @@
output Overrun_Error, Underrun_Error;
AFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -179,6 +176,5 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
\ No newline at end of file
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_afifo/sim/Makefile b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_afifo/sim/Makefile
index 9686158..76bc1c7 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_afifo/sim/Makefile
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_afifo/sim/Makefile
@@ -39,7 +39,6 @@
@rm -rf $(word $(1),$(POST_SYNTH)).vcd $(word $(1),$(POST_SYNTH)).vvp $(word $(1),$(POST_SYNTH)).vvp.log $(word $(1),$(POST_SYNTH)).vcd.log
endef
-#FIXME: $(call simulate_post_synth,3)
sim:
$(call simulate_post_synth,1)
$(call clean_post_synth_sim,1)
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_afifo/sim/asymmetric_bram36k_afifo_tb.v b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_afifo/sim/asymmetric_bram36k_afifo_tb.v
index 5be25e7..dd40a5a 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_afifo/sim/asymmetric_bram36k_afifo_tb.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_afifo/sim/asymmetric_bram36k_afifo_tb.v
@@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -23,32 +23,32 @@
localparam ADDR_INCR = 1;
reg clk0;
- reg clk1;
- reg flush;
+ reg clk1;
+ reg flush;
reg pop;
wire [`DATA_WIDTH1-1:0] dout;
reg push;
- reg [`DATA_WIDTH0-1:0] din;
- wire almost_full,almost_empty;
- wire full, empty;
- wire full_watermark, empty_watermark;
- wire overrun_error, underrun_error;
+ reg [`DATA_WIDTH0-1:0] din;
+ wire almost_full,almost_empty;
+ wire full, empty;
+ wire full_watermark, empty_watermark;
+ wire overrun_error, underrun_error;
- initial
- begin
- clk0 = 0;
- clk1 = 0;
- pop = 0;
- push = 0;
- flush = 1;
- din = 0;
- #40
- flush = 0;
- end
-
+ initial
+ begin
+ clk0 = 0;
+ clk1 = 0;
+ pop = 0;
+ push = 0;
+ flush = 1;
+ din = 0;
+ #40
+ flush = 0;
+ end
+
initial forever #(PERIOD / 3.0) clk0 = ~clk0;
- initial forever #(PERIOD / 2.0) clk1 = ~clk1;
-
+ initial forever #(PERIOD / 2.0) clk1 = ~clk1;
+
initial begin
$dumpfile(`STRINGIFY(`VCD));
$dumpvars;
@@ -58,12 +58,12 @@
reg done;
initial done = 1'b0;
-
- reg read_test;
+
+ reg read_test;
initial read_test = 0;
reg [`DATA_WIDTH1-1:0] expected;
- initial expected = 0;
+ initial expected = 0;
wire error = (read_test) ? dout !== expected : 0;
@@ -74,136 +74,136 @@
error_cnt <= error_cnt + 1'b1;
end
-case (`STRINGIFY(`TOP))
-"af4096x9_1024x36": begin
- initial #(50) begin
- // Write data
- for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
- @(negedge clk0) begin
- din = a[10:2];
- push = 1;
- end
- @(posedge clk0) begin
- #(PERIOD/10) push = 0;
- end
- end
- // Read data
- read_test = 1;
- for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
- @(posedge clk1) begin
- expected <= {a[8],a[8],a[7:0],a[7:0],a[8],a[8],a[7:0],a[7:0]};
- #(PERIOD/10) pop = 0;
- if ( dout !== expected) begin
- $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
- end else begin
- $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
+ case (`STRINGIFY(`TOP))
+ "af4096x9_1024x36": begin
+ initial #(50) begin
+ // Write data
+ for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
+ @(negedge clk0) begin
+ din = a[10:2];
+ push = 1;
+ end
+ @(posedge clk0) begin
+ #(PERIOD/10) push = 0;
end
end
- @(negedge clk1) begin
- pop = 1;
+ // Read data
+ read_test = 1;
+ for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
+ @(posedge clk1) begin
+ expected <= {a[8],a[8],a[7:0],a[7:0],a[8],a[8],a[7:0],a[7:0]};
+ #(PERIOD/10) pop = 0;
+ if ( dout !== expected) begin
+ $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
+ end else begin
+ $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
+ end
+ end
+ @(negedge clk1) begin
+ pop = 1;
+ end
end
+ done = 1'b1;
+ a = 0;
end
- done = 1'b1;
- a = 0;
end
-end
-"af2048x18_1024x36": begin
- initial #(50) begin
- // Write data
- for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
- @(negedge clk0) begin
- din = a[18:1];
- push = 1;
- end
- @(posedge clk0) begin
- #(PERIOD/10) push = 0;
- end
- end
- // Read data
- read_test = 1;
- for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
- @(posedge clk1) begin
- expected <= {a[17:0],a[17:0]};
- #(PERIOD/10) pop = 0;
- if ( dout !== expected) begin
- $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
- end else begin
- $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
+ "af2048x18_1024x36": begin
+ initial #(50) begin
+ // Write data
+ for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
+ @(negedge clk0) begin
+ din = a[18:1];
+ push = 1;
+ end
+ @(posedge clk0) begin
+ #(PERIOD/10) push = 0;
end
end
- @(negedge clk1) begin
- pop = 1;
+ // Read data
+ read_test = 1;
+ for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
+ @(posedge clk1) begin
+ expected <= {a[17:0],a[17:0]};
+ #(PERIOD/10) pop = 0;
+ if ( dout !== expected) begin
+ $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
+ end else begin
+ $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
+ end
+ end
+ @(negedge clk1) begin
+ pop = 1;
+ end
end
+ done = 1'b1;
+ a = 0;
end
- done = 1'b1;
- a = 0;
+ end
+ "af2048x18_4098x9": begin
+ initial #(50) begin
+ // Write data
+ for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
+ @(negedge clk0) begin
+ din = {a[8],a[8],a[7:0],a[7:0]};
+ push = 1;
+ end
+ @(posedge clk0) begin
+ #(PERIOD/10) push = 0;
+ end
+ end
+ // Read data
+ read_test = 1;
+ for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
+ @(posedge clk1) begin
+ expected <= {a[9:1]};
+ #(PERIOD/10) pop = 0;
+ if ( dout !== expected) begin
+ $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
+ end else begin
+ $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
+ end
+ end
+ @(negedge clk1) begin
+ pop = 1;
+ end
+ end
+ done = 1'b1;
+ a = 0;
+ end
end
-end
-"af2048x18_4098x9": begin
- initial #(50) begin
- // Write data
- for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
- @(negedge clk0) begin
- din = {a[8],a[8],a[7:0],a[7:0]};
- push = 1;
- end
- @(posedge clk0) begin
- #(PERIOD/10) push = 0;
- end
- end
- // Read data
- read_test = 1;
- for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
- @(posedge clk1) begin
- expected <= {a[9:1]};
- #(PERIOD/10) pop = 0;
- if ( dout !== expected) begin
- $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
- end else begin
- $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
+ "af1024x36_4098x9": begin
+ initial #(50) begin
+ // Write data
+ for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
+ @(negedge clk0) begin
+ din = {a[8],a[8],a[7:0],a[7:0],a[8],a[8],a[7:0],a[7:0]};
+ push = 1;
+ end
+ @(posedge clk0) begin
+ #(PERIOD/10) push = 0;
end
end
- @(negedge clk1) begin
- pop = 1;
+ // Read data
+ read_test = 1;
+ for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
+ @(posedge clk1) begin
+ expected <= {a[10:2]};
+ #(PERIOD/10) pop = 0;
+ if ( dout !== expected) begin
+ $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
+ end else begin
+ $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
+ end
+ end
+ @(negedge clk1) begin
+ pop = 1;
+ end
end
+ done = 1'b1;
+ a = 0;
end
- done = 1'b1;
- a = 0;
end
-end
-"af1024x36_4098x9": begin
- initial #(50) begin
- // Write data
- for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
- @(negedge clk0) begin
- din = {a[8],a[8],a[7:0],a[7:0],a[8],a[8],a[7:0],a[7:0]};
- push = 1;
- end
- @(posedge clk0) begin
- #(PERIOD/10) push = 0;
- end
- end
- // Read data
- read_test = 1;
- for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
- @(posedge clk1) begin
- expected <= {a[10:2]};
- #(PERIOD/10) pop = 0;
- if ( dout !== expected) begin
- $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
- end else begin
- $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
- end
- end
- @(negedge clk1) begin
- pop = 1;
- end
- end
- done = 1'b1;
- a = 0;
- end
-end
-endcase
+ endcase
// Scan for simulation finish
always @(posedge clk1) begin
@@ -214,78 +214,78 @@
case (`STRINGIFY(`TOP))
"af4096x9_1024x36": begin
af4096x9_1024x36 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .clock1(clk1),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .clock1(clk1),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"af2048x18_1024x36": begin
af2048x18_1024x36 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .clock1(clk1),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .clock1(clk1),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"af2048x18_4098x9": begin
af2048x18_4098x9 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .clock1(clk1),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .clock1(clk1),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"af1024x36_4098x9": begin
af1024x36_4098x9 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .clock1(clk1),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .clock1(clk1),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
endcase
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sdp/sim/Makefile b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sdp/sim/Makefile
index fc7c0e9..88ba3d5 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sdp/sim/Makefile
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sdp/sim/Makefile
@@ -1,10 +1,18 @@
-# Copyright (C) 2019-2022 The SymbiFlow Authors
+# Copyright 2020-2022 F4PGA Authors
#
-# Use of this source code is governed by a ISC-style
-# license that can be found in the LICENSE file or at
-# https://opensource.org/licenses/ISC
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
#
-# SPDX-License-Identifier: ISC
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
TESTBENCH = asymmetric_bram36k_sdp_tb.v
POST_SYNTH = spram_9x4096_36x1024_post_synth spram_18x2048_36x1024_post_synth spram_18x2048_9x4096_post_synth spram_36x1024_18x2048_post_synth
@@ -31,7 +39,6 @@
@rm -rf $(word $(1),$(POST_SYNTH)).vcd $(word $(1),$(POST_SYNTH)).vvp $(word $(1),$(POST_SYNTH)).vvp.log $(word $(1),$(POST_SYNTH)).vcd.log
endef
-#FIXME: $(call simulate_post_synth,3)
sim:
$(call simulate_post_synth,1)
$(call clean_post_synth_sim,1)
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sdp/sim/asymmetric_bram36k_sdp_tb.v b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sdp/sim/asymmetric_bram36k_sdp_tb.v
index 6ddc6c7..38064a3 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sdp/sim/asymmetric_bram36k_sdp_tb.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sdp/sim/asymmetric_bram36k_sdp_tb.v
@@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -23,7 +23,7 @@
localparam ADDR_INCR = 1;
reg clk_0;
- reg clk_1;
+ reg clk_1;
reg rce;
reg [`ADDR_WIDTH1-1:0] ra;
wire [`DATA_WIDTH1-1:0] rq;
@@ -34,12 +34,11 @@
initial clk_0 = 0;
initial clk_1 = 0;
initial ra = 0;
- initial wa = 0;
- initial wd = 0;
+ initial wa = 0;
+ initial wd = 0;
initial rce = 0;
- initial wce = 0;
+ initial wce = 0;
initial forever #(PERIOD / 2.0) clk_0 = ~clk_0;
- //initial forever #(PERIOD / 2.0) clk_1 = ~clk_1;
initial begin
#(PERIOD / 4.0);
forever #(PERIOD / 2.0) clk_1 = ~clk_1;
@@ -72,144 +71,144 @@
error_0_cnt <= error_0_cnt + 1'b1;
end
-case (`STRINGIFY(`TOP))
-"spram_9x4096_36x1024": begin
- initial #(1) begin
- // Write data
- for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
- @(negedge clk_0) begin
- wa = a[`ADDR_WIDTH0-1:0];
- wd = a[10:2];
- wce = 1;
- end
- @(posedge clk_0) begin
- #(PERIOD/10) wce = 0;
- end
- end
- // Read data
- read_test_0 = 1;
- for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
- @(negedge clk_1) begin
- ra = a;
- rce = 1;
- end
- @(posedge clk_1) begin
- expected_0 <= {a[8],a[8],a[7:0],a[7:0],a[8],a[8],a[7:0],a[7:0]};
- #(PERIOD/10) rce = 0;
- if ( rq !== expected_0) begin
- $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, rq, expected_0, a);
- end else begin
- $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, rq, expected_0, a);
+ case (`STRINGIFY(`TOP))
+ "spram_9x4096_36x1024": begin
+ initial #(1) begin
+ // Write data
+ for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
+ @(negedge clk_0) begin
+ wa = a[`ADDR_WIDTH0-1:0];
+ wd = a[10:2];
+ wce = 1;
+ end
+ @(posedge clk_0) begin
+ #(PERIOD/10) wce = 0;
end
end
+ // Read data
+ read_test_0 = 1;
+ for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
+ @(negedge clk_1) begin
+ ra = a;
+ rce = 1;
+ end
+ @(posedge clk_1) begin
+ expected_0 <= {a[8],a[8],a[7:0],a[7:0],a[8],a[8],a[7:0],a[7:0]};
+ #(PERIOD/10) rce = 0;
+ if ( rq !== expected_0) begin
+ $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, rq, expected_0, a);
+ end else begin
+ $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, rq, expected_0, a);
+ end
+ end
+ end
+ done_0 = 1'b1;
+ a = 0;
end
- done_0 = 1'b1;
- a = 0;
end
-end
-"spram_18x2048_36x1024": begin
- initial #(1) begin
- // Write data
- for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
- @(negedge clk_0) begin
- wa = a[`ADDR_WIDTH0-1:0];
- wd = a[18:1];
- wce = 1;
- end
- @(posedge clk_0) begin
- #(PERIOD/10) wce = 0;
- end
- end
- // Read data
- read_test_0 = 1;
- for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
- @(negedge clk_1) begin
- ra = a;
- rce = 1;
- end
- @(posedge clk_1) begin
- expected_0 <= {a[17:0],a[17:0]};
- #(PERIOD/10) rce = 0;
- if ( rq !== expected_0) begin
- $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, rq, expected_0, a);
- end else begin
- $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, rq, expected_0, a);
+ "spram_18x2048_36x1024": begin
+ initial #(1) begin
+ // Write data
+ for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
+ @(negedge clk_0) begin
+ wa = a[`ADDR_WIDTH0-1:0];
+ wd = a[18:1];
+ wce = 1;
+ end
+ @(posedge clk_0) begin
+ #(PERIOD/10) wce = 0;
end
end
+ // Read data
+ read_test_0 = 1;
+ for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
+ @(negedge clk_1) begin
+ ra = a;
+ rce = 1;
+ end
+ @(posedge clk_1) begin
+ expected_0 <= {a[17:0],a[17:0]};
+ #(PERIOD/10) rce = 0;
+ if ( rq !== expected_0) begin
+ $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, rq, expected_0, a);
+ end else begin
+ $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, rq, expected_0, a);
+ end
+ end
+ end
+ done_0 = 1'b1;
+ a = 0;
end
- done_0 = 1'b1;
- a = 0;
+ end
+ "spram_18x2048_9x4096": begin
+ initial #(1) begin
+ // Write data
+ for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
+ @(negedge clk_0) begin
+ wa = a[`ADDR_WIDTH0-1:0];
+ wd = {a[8],a[8],a[7:0],a[7:0]};
+ wce = 1;
+ end
+ @(posedge clk_0) begin
+ #(PERIOD/10) wce = 0;
+ end
+ end
+ // Read data
+ read_test_0 = 1;
+ for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
+ @(negedge clk_1) begin
+ ra = a;
+ rce = 1;
+ end
+ @(posedge clk_1) begin
+ expected_0 <= {a[9:1]};
+ #(PERIOD/10) rce = 0;
+ if ( rq !== expected_0) begin
+ $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, rq, expected_0, a);
+ end else begin
+ $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, rq, expected_0, a);
+ end
+ end
+ end
+ done_0 = 1'b1;
+ a = 0;
+ end
end
-end
-"spram_18x2048_9x4096": begin
- initial #(1) begin
- // Write data
- for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
- @(negedge clk_0) begin
- wa = a[`ADDR_WIDTH0-1:0];
- wd = {a[8],a[8],a[7:0],a[7:0]};
- wce = 1;
- end
- @(posedge clk_0) begin
- #(PERIOD/10) wce = 0;
- end
- end
- // Read data
- read_test_0 = 1;
- for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
- @(negedge clk_1) begin
- ra = a;
- rce = 1;
- end
- @(posedge clk_1) begin
- expected_0 <= {a[9:1]};
- #(PERIOD/10) rce = 0;
- if ( rq !== expected_0) begin
- $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, rq, expected_0, a);
- end else begin
- $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, rq, expected_0, a);
+ "spram_36x1024_18x2048": begin
+ initial #(1) begin
+ // Write data
+ for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
+ @(negedge clk_0) begin
+ wa = a[`ADDR_WIDTH0-1:0];
+ wd = {a[17:0],a[17:0]};
+ wce = 1;
+ end
+ @(posedge clk_0) begin
+ #(PERIOD/10) wce = 0;
end
end
+ // Read data
+ read_test_0 = 1;
+ for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
+ @(negedge clk_1) begin
+ ra = a;
+ rce = 1;
+ end
+ @(posedge clk_1) begin
+ expected_0 <= {a[18:1]};
+ #(PERIOD/10) rce = 0;
+ if ( rq !== expected_0) begin
+ $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, rq, expected_0, a);
+ end else begin
+ $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, rq, expected_0, a);
+ end
+ end
+ end
+ done_0 = 1'b1;
+ a = 0;
end
- done_0 = 1'b1;
- a = 0;
end
-end
-"spram_36x1024_18x2048": begin
- initial #(1) begin
- // Write data
- for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
- @(negedge clk_0) begin
- wa = a[`ADDR_WIDTH0-1:0];
- wd = {a[17:0],a[17:0]};
- wce = 1;
- end
- @(posedge clk_0) begin
- #(PERIOD/10) wce = 0;
- end
- end
- // Read data
- read_test_0 = 1;
- for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
- @(negedge clk_1) begin
- ra = a;
- rce = 1;
- end
- @(posedge clk_1) begin
- expected_0 <= {a[18:1]};
- #(PERIOD/10) rce = 0;
- if ( rq !== expected_0) begin
- $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, rq, expected_0, a);
- end else begin
- $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, rq, expected_0, a);
- end
- end
- end
- done_0 = 1'b1;
- a = 0;
- end
-end
-endcase
+ endcase
// Scan for simulation finish
always @(posedge clk_1) begin
@@ -221,7 +220,7 @@
"spram_9x4096_36x1024": begin
spram_9x4096_36x1024 #() bram (
.clock0(clk_0),
- .clock1(clk_1),
+ .clock1(clk_1),
.REN_i(rce),
.RD_ADDR_i(ra),
.RDATA_o(rq),
@@ -233,7 +232,7 @@
"spram_18x2048_36x1024": begin
spram_18x2048_36x1024 #() bram (
.clock0(clk_0),
- .clock1(clk_1),
+ .clock1(clk_1),
.REN_i(rce),
.RD_ADDR_i(ra),
.RDATA_o(rq),
@@ -245,7 +244,7 @@
"spram_18x2048_9x4096": begin
spram_18x2048_9x4096 #() bram (
.clock0(clk_0),
- .clock1(clk_1),
+ .clock1(clk_1),
.REN_i(rce),
.RD_ADDR_i(ra),
.RDATA_o(rq),
@@ -257,7 +256,7 @@
"spram_36x1024_18x2048": begin
spram_36x1024_18x2048 #() bram (
.clock0(clk_0),
- .clock1(clk_1),
+ .clock1(clk_1),
.REN_i(rce),
.RD_ADDR_i(ra),
.RDATA_o(rq),
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sfifo/asymmetric_bram36k_sfifo.v b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sfifo/asymmetric_bram36k_sfifo.v
index fd01e93..c0b6507 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sfifo/asymmetric_bram36k_sfifo.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sfifo/asymmetric_bram36k_sfifo.v
@@ -32,7 +32,7 @@
output Overrun_Error, Underrun_Error;
SFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -51,8 +51,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module f2048x18_1024x36 (DIN,PUSH,POP,clock0,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -73,7 +72,7 @@
output Overrun_Error, Underrun_Error;
SFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -92,8 +91,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module f2048x18_4098x9 (DIN,PUSH,POP,clock0,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -114,7 +112,7 @@
output Overrun_Error, Underrun_Error;
SFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -133,8 +131,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module f1024x36_2048x18 (DIN,PUSH,POP,clock0,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -155,7 +152,7 @@
output Overrun_Error, Underrun_Error;
SFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -174,6 +171,5 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
\ No newline at end of file
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sfifo/sim/Makefile b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sfifo/sim/Makefile
index a015284..e13baa3 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sfifo/sim/Makefile
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sfifo/sim/Makefile
@@ -39,7 +39,6 @@
@rm -rf $(word $(1),$(POST_SYNTH)).vcd $(word $(1),$(POST_SYNTH)).vvp $(word $(1),$(POST_SYNTH)).vvp.log $(word $(1),$(POST_SYNTH)).vcd.log
endef
-#FIXME: $(call simulate_post_synth,3)
sim:
$(call simulate_post_synth,1)
$(call clean_post_synth_sim,1)
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sfifo/sim/asymmetric_bram36k_sfifo_tb.v b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sfifo/sim/asymmetric_bram36k_sfifo_tb.v
index ba6775d..b1c753c 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sfifo/sim/asymmetric_bram36k_sfifo_tb.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/asymmetric_bram36k_sfifo/sim/asymmetric_bram36k_sfifo_tb.v
@@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -23,29 +23,29 @@
localparam ADDR_INCR = 1;
reg clk0;
- reg flush;
+ reg flush;
reg pop;
wire [`DATA_WIDTH1-1:0] dout;
reg push;
reg [`DATA_WIDTH0-1:0] din;
- wire almost_full,almost_empty;
- wire full, empty;
- wire full_watermark, empty_watermark;
- wire overrun_error, underrun_error;
+ wire almost_full,almost_empty;
+ wire full, empty;
+ wire full_watermark, empty_watermark;
+ wire overrun_error, underrun_error;
- initial
- begin
- clk0 = 0;
- pop = 0;
- push = 0;
- flush = 1;
- din = 0;
- #40
- flush = 0;
- end
-
+ initial
+ begin
+ clk0 = 0;
+ pop = 0;
+ push = 0;
+ flush = 1;
+ din = 0;
+ #40
+ flush = 0;
+ end
+
initial forever #(PERIOD / 3.0) clk0 = ~clk0;
-
+
initial begin
$dumpfile(`STRINGIFY(`VCD));
$dumpvars;
@@ -55,12 +55,12 @@
reg done;
initial done = 1'b0;
-
- reg read_test;
+
+ reg read_test;
initial read_test = 0;
reg [`DATA_WIDTH1-1:0] expected;
- initial expected = 0;
+ initial expected = 0;
wire error = (read_test) ? dout !== expected : 0;
@@ -71,136 +71,136 @@
error_cnt <= error_cnt + 1'b1;
end
-case (`STRINGIFY(`TOP))
-"f4096x9_1024x36": begin
- initial #(50) begin
- // Write data
- for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
- @(negedge clk0) begin
- din = a[10:2];
- push = 1;
- end
- @(posedge clk0) begin
- #(PERIOD/10) push = 0;
- end
- end
- // Read data
- read_test = 1;
- for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
- @(posedge clk0) begin
- expected <= {a[8],a[8],a[7:0],a[7:0],a[8],a[8],a[7:0],a[7:0]};
- #(PERIOD/10) pop = 0;
- if ( dout !== expected) begin
- $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
- end else begin
- $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
+ case (`STRINGIFY(`TOP))
+ "f4096x9_1024x36": begin
+ initial #(50) begin
+ // Write data
+ for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
+ @(negedge clk0) begin
+ din = a[10:2];
+ push = 1;
+ end
+ @(posedge clk0) begin
+ #(PERIOD/10) push = 0;
end
end
- @(negedge clk0) begin
- pop = 1;
+ // Read data
+ read_test = 1;
+ for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
+ @(posedge clk0) begin
+ expected <= {a[8],a[8],a[7:0],a[7:0],a[8],a[8],a[7:0],a[7:0]};
+ #(PERIOD/10) pop = 0;
+ if ( dout !== expected) begin
+ $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
+ end else begin
+ $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
+ end
+ end
+ @(negedge clk0) begin
+ pop = 1;
+ end
end
+ done = 1'b1;
+ a = 0;
end
- done = 1'b1;
- a = 0;
end
-end
-"f2048x18_1024x36": begin
- initial #(50) begin
- // Write data
- for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
- @(negedge clk0) begin
- din = a[18:1];
- push = 1;
- end
- @(posedge clk0) begin
- #(PERIOD/10) push = 0;
- end
- end
- // Read data
- read_test = 1;
- for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
- @(posedge clk0) begin
- expected <= {a[17:0],a[17:0]};
- #(PERIOD/10) pop = 0;
- if ( dout !== expected) begin
- $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
- end else begin
- $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
+ "f2048x18_1024x36": begin
+ initial #(50) begin
+ // Write data
+ for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
+ @(negedge clk0) begin
+ din = a[18:1];
+ push = 1;
+ end
+ @(posedge clk0) begin
+ #(PERIOD/10) push = 0;
end
end
- @(negedge clk0) begin
- pop = 1;
+ // Read data
+ read_test = 1;
+ for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
+ @(posedge clk0) begin
+ expected <= {a[17:0],a[17:0]};
+ #(PERIOD/10) pop = 0;
+ if ( dout !== expected) begin
+ $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
+ end else begin
+ $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
+ end
+ end
+ @(negedge clk0) begin
+ pop = 1;
+ end
end
+ done = 1'b1;
+ a = 0;
end
- done = 1'b1;
- a = 0;
+ end
+ "f2048x18_4098x9": begin
+ initial #(50) begin
+ // Write data
+ for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
+ @(negedge clk0) begin
+ din = {a[8],a[8],a[7:0],a[7:0]};
+ push = 1;
+ end
+ @(posedge clk0) begin
+ #(PERIOD/10) push = 0;
+ end
+ end
+ // Read data
+ read_test = 1;
+ for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
+ @(posedge clk0) begin
+ expected <= {a[9:1]};
+ #(PERIOD/10) pop = 0;
+ if ( dout !== expected) begin
+ $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
+ end else begin
+ $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
+ end
+ end
+ @(negedge clk0) begin
+ pop = 1;
+ end
+ end
+ done = 1'b1;
+ a = 0;
+ end
end
-end
-"f2048x18_4098x9": begin
- initial #(50) begin
- // Write data
- for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
- @(negedge clk0) begin
- din = {a[8],a[8],a[7:0],a[7:0]};
- push = 1;
- end
- @(posedge clk0) begin
- #(PERIOD/10) push = 0;
- end
- end
- // Read data
- read_test = 1;
- for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
- @(posedge clk0) begin
- expected <= {a[9:1]};
- #(PERIOD/10) pop = 0;
- if ( dout !== expected) begin
- $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
- end else begin
- $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
+ "f1024x36_2048x18": begin
+ initial #(50) begin
+ // Write data
+ for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
+ @(negedge clk0) begin
+ din = {a[17:0],a[17:0]};
+ push = 1;
+ end
+ @(posedge clk0) begin
+ #(PERIOD/10) push = 0;
end
end
- @(negedge clk0) begin
- pop = 1;
+ // Read data
+ read_test = 1;
+ for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
+ @(posedge clk0) begin
+ expected <= {a[18:1]};
+ #(PERIOD/10) pop = 0;
+ if ( dout !== expected) begin
+ $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
+ end else begin
+ $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
+ end
+ end
+ @(negedge clk0) begin
+ pop = 1;
+ end
end
+ done = 1'b1;
+ a = 0;
end
- done = 1'b1;
- a = 0;
end
-end
-"f1024x36_2048x18": begin
- initial #(50) begin
- // Write data
- for (a = 0; a < (1<<`ADDR_WIDTH0) ; a = a + ADDR_INCR) begin
- @(negedge clk0) begin
- din = {a[17:0],a[17:0]};
- push = 1;
- end
- @(posedge clk0) begin
- #(PERIOD/10) push = 0;
- end
- end
- // Read data
- read_test = 1;
- for (a = 0; a < (1<<`ADDR_WIDTH1); a = a + ADDR_INCR) begin
- @(posedge clk0) begin
- expected <= {a[18:1]};
- #(PERIOD/10) pop = 0;
- if ( dout !== expected) begin
- $display("%d: PORT 0: FAIL: mismatch act=%x exp=%x at %x", $time, dout, expected, a);
- end else begin
- $display("%d: PORT 0: OK: act=%x exp=%x at %x", $time, dout, expected, a);
- end
- end
- @(negedge clk0) begin
- pop = 1;
- end
- end
- done = 1'b1;
- a = 0;
- end
-end
-endcase
+ endcase
// Scan for simulation finish
always @(posedge clk0) begin
@@ -211,74 +211,74 @@
case (`STRINGIFY(`TOP))
"f4096x9_1024x36": begin
f4096x9_1024x36 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"f2048x18_1024x36": begin
f2048x18_1024x36 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"f2048x18_4098x9": begin
f2048x18_4098x9 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"f1024x36_2048x18": begin
f1024x36_2048x18 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
endcase
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_afifo/bram18k_afifo.v b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_afifo/bram18k_afifo.v
index e4aa0e9..bd1fa13 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_afifo/bram18k_afifo.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_afifo/bram18k_afifo.v
@@ -32,7 +32,7 @@
output Overrun_Error, Underrun_Error;
AFIFO_18K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -52,8 +52,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module af1024x16_1024x16 (DIN,PUSH,POP,clock0,clock1,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -74,7 +73,7 @@
output Overrun_Error, Underrun_Error;
AFIFO_18K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -94,8 +93,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module af2048x9_2048x9 (DIN,PUSH,POP,clock0,clock1,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -116,7 +114,7 @@
output Overrun_Error, Underrun_Error;
AFIFO_18K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -136,8 +134,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module af2048x8_2048x8 (DIN,PUSH,POP,clock0,clock1,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -158,7 +155,7 @@
output Overrun_Error, Underrun_Error;
AFIFO_18K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -178,6 +175,5 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
\ No newline at end of file
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_afifo/sim/Makefile b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_afifo/sim/Makefile
index 0153897..3c2bce7 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_afifo/sim/Makefile
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_afifo/sim/Makefile
@@ -39,7 +39,6 @@
@rm -rf $(word $(1),$(POST_SYNTH)).vcd $(word $(1),$(POST_SYNTH)).vvp $(word $(1),$(POST_SYNTH)).vvp.log $(word $(1),$(POST_SYNTH)).vcd.log
endef
-# FIXME: $(call simulate_post_synth,5)
sim:
$(call simulate_post_synth,1)
$(call clean_post_synth_sim,1)
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_afifo/sim/bram18k_afifo_tb.v b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_afifo/sim/bram18k_afifo_tb.v
index 62460b1..1795312 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_afifo/sim/bram18k_afifo_tb.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_afifo/sim/bram18k_afifo_tb.v
@@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -23,32 +23,32 @@
localparam ADDR_INCR = 1;
reg clk0;
- reg clk1;
- reg flush;
+ reg clk1;
+ reg flush;
reg pop;
wire [`DATA_WIDTH1-1:0] dout;
reg push;
reg [`DATA_WIDTH0-1:0] din;
- wire almost_full,almost_empty;
- wire full, empty;
- wire full_watermark, empty_watermark;
- wire overrun_error, underrun_error;
+ wire almost_full,almost_empty;
+ wire full, empty;
+ wire full_watermark, empty_watermark;
+ wire overrun_error, underrun_error;
- initial
- begin
- clk0 = 0;
- clk1 = 0;
- pop = 0;
- push = 0;
- flush = 1;
- din = 0;
- #40
- flush = 0;
- end
-
+ initial
+ begin
+ clk0 = 0;
+ clk1 = 0;
+ pop = 0;
+ push = 0;
+ flush = 1;
+ din = 0;
+ #40
+ flush = 0;
+ end
+
initial forever #(PERIOD / 3.0) clk0 = ~clk0;
- initial forever #(PERIOD / 2.0) clk1 = ~clk1;
-
+ initial forever #(PERIOD / 2.0) clk1 = ~clk1;
+
initial begin
$dumpfile(`STRINGIFY(`VCD));
$dumpvars;
@@ -63,7 +63,7 @@
initial read_test = 0;
reg [`DATA_WIDTH1-1:0] expected;
- initial expected = 0;
+ initial expected = 0;
always @(posedge clk1) begin
expected <= (a | (a << 20) | 20'h55000) & {`DATA_WIDTH1{1'b1}};
@@ -79,7 +79,7 @@
end
initial #(50) begin
- @(posedge clk0)
+ @(posedge clk0)
// Write data
for (a = 0; a < (1<<`ADDR_WIDTH0); a = a + ADDR_INCR) begin
@(negedge clk0) begin
@@ -117,78 +117,78 @@
case (`STRINGIFY(`TOP))
"af1024x18_1024x18": begin
af1024x18_1024x18 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .clock1(clk1),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .clock1(clk1),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"af1024x16_1024x16": begin
af1024x16_1024x16 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .clock1(clk1),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .clock1(clk1),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"af2048x9_2048x9": begin
af2048x9_2048x9 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .clock1(clk1),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .clock1(clk1),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"af2048x8_2048x8": begin
af2048x8_2048x8 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .clock1(clk1),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .clock1(clk1),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
endcase
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sdp/sim/Makefile b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sdp/sim/Makefile
index 4a8ae5e..aeb9aec 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sdp/sim/Makefile
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sdp/sim/Makefile
@@ -39,7 +39,6 @@
@rm -rf $(word $(1),$(POST_SYNTH)).vcd $(word $(1),$(POST_SYNTH)).vvp $(word $(1),$(POST_SYNTH)).vvp.log $(word $(1),$(POST_SYNTH)).vcd.log
endef
-#FIXME: $(call simulate_post_synth,3)
sim:
$(call simulate_post_synth,1)
$(call clean_post_synth_sim,1)
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sdp/sim/bram18k_sdp_tb.v b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sdp/sim/bram18k_sdp_tb.v
index 1294edd..8d91922 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sdp/sim/bram18k_sdp_tb.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sdp/sim/bram18k_sdp_tb.v
@@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -126,7 +126,7 @@
end
end
done_0 = 1'b1;
- a = 0;
+ a = 0;
end
// PART 1
@@ -159,7 +159,7 @@
end
end
done_1 = 1'b1;
- b = (1<<`ADDR_WIDTH1) / 2;
+ b = (1<<`ADDR_WIDTH1) / 2;
end
// Scan for simulation finish
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sfifo/bram18k_sfifo.v b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sfifo/bram18k_sfifo.v
index d018b00..c559134 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sfifo/bram18k_sfifo.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sfifo/bram18k_sfifo.v
@@ -32,7 +32,7 @@
output Overrun_Error, Underrun_Error;
SFIFO_18K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -51,8 +51,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module f1024x16_1024x16 (DIN,PUSH,POP,clock0,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -73,7 +72,7 @@
output Overrun_Error, Underrun_Error;
SFIFO_18K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -92,8 +91,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module f2048x9_2048x9 (DIN,PUSH,POP,clock0,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -114,7 +112,7 @@
output Overrun_Error, Underrun_Error;
SFIFO_18K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -133,8 +131,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module f2048x8_2048x8 (DIN,PUSH,POP,clock0,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -155,7 +152,7 @@
output Overrun_Error, Underrun_Error;
SFIFO_18K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -174,6 +171,5 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
\ No newline at end of file
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sfifo/sim/Makefile b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sfifo/sim/Makefile
index 2a46d29..86a1b10 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sfifo/sim/Makefile
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sfifo/sim/Makefile
@@ -39,7 +39,6 @@
@rm -rf $(word $(1),$(POST_SYNTH)).vcd $(word $(1),$(POST_SYNTH)).vvp $(word $(1),$(POST_SYNTH)).vvp.log $(word $(1),$(POST_SYNTH)).vcd.log
endef
-# FIXME: $(call simulate_post_synth,5)
sim:
$(call simulate_post_synth,1)
$(call clean_post_synth_sim,1)
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sfifo/sim/bram18k_sfifo_tb.v b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sfifo/sim/bram18k_sfifo_tb.v
index f5c56cf..579d881 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sfifo/sim/bram18k_sfifo_tb.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_sfifo/sim/bram18k_sfifo_tb.v
@@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -23,29 +23,29 @@
localparam ADDR_INCR = 1;
reg clk;
- reg flush;
+ reg flush;
reg pop;
wire [`DATA_WIDTH1-1:0] dout;
reg push;
reg [`DATA_WIDTH0-1:0] din;
- wire almost_full,almost_empty;
- wire full, empty;
- wire full_watermark, empty_watermark;
- wire overrun_error, underrun_error;
+ wire almost_full,almost_empty;
+ wire full, empty;
+ wire full_watermark, empty_watermark;
+ wire overrun_error, underrun_error;
- initial
- begin
- clk = 0;
- pop = 0;
- push = 0;
- flush = 1;
- din = 0;
- #40
- flush = 0;
- end
-
+ initial
+ begin
+ clk = 0;
+ pop = 0;
+ push = 0;
+ flush = 1;
+ din = 0;
+ #40
+ flush = 0;
+ end
+
initial forever #(PERIOD / 3.0) clk = ~clk;
-
+
initial begin
$dumpfile(`STRINGIFY(`VCD));
$dumpvars;
@@ -55,12 +55,12 @@
reg done;
initial done = 1'b0;
-
+
reg read_test;
initial read_test = 0;
reg [`DATA_WIDTH1-1:0] expected;
- initial expected = 0;
+ initial expected = 0;
always @(posedge clk) begin
expected <= (a | (a << 20) | 20'h55000) & {`DATA_WIDTH1{1'b1}};
@@ -76,7 +76,7 @@
end
initial #(50) begin
- @(posedge clk)
+ @(posedge clk)
// Write data
for (a = 0; a < (1<<`ADDR_WIDTH0); a = a + ADDR_INCR) begin
@(negedge clk) begin
@@ -114,75 +114,75 @@
case (`STRINGIFY(`TOP))
"f1024x18_1024x18": begin
f1024x18_1024x18 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"f1024x16_1024x16": begin
f1024x16_1024x16 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"f2048x9_2048x9": begin
f2048x9_2048x9 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"f2048x8_2048x8": begin
f2048x8_2048x8 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
- end
+ end
endcase
endmodule
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_tdp/sim/Makefile b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_tdp/sim/Makefile
index 83ea28e..b9883eb 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_tdp/sim/Makefile
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_tdp/sim/Makefile
@@ -39,7 +39,6 @@
@rm -rf $(word $(1),$(POST_SYNTH)).vcd $(word $(1),$(POST_SYNTH)).vvp $(word $(1),$(POST_SYNTH)).vvp.log $(word $(1),$(POST_SYNTH)).vcd.log
endef
-#FIXME: $(call simulate_post_synth,3)
sim:
$(call simulate_post_synth,1)
$(call clean_post_synth_sim,1)
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_tdp/sim/bram18k_tdp_tb.v b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_tdp/sim/bram18k_tdp_tb.v
index ec5ca14..004f32c 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_tdp/sim/bram18k_tdp_tb.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram18k_tdp/sim/bram18k_tdp_tb.v
@@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -24,29 +24,29 @@
reg clk_a;
reg rce_a_0;
- reg rce_a_1;
+ reg rce_a_1;
reg [`ADDR_WIDTH0-1:0] ra_a_0;
- reg [`ADDR_WIDTH1-1:0] ra_a_1;
+ reg [`ADDR_WIDTH1-1:0] ra_a_1;
wire [`DATA_WIDTH0-1:0] rq_a_0;
wire [`DATA_WIDTH1-1:0] rq_a_1;
reg wce_a_0;
- reg wce_a_1;
+ reg wce_a_1;
reg [`ADDR_WIDTH0-1:0] wa_a_0;
- reg [`ADDR_WIDTH1-1:0] wa_a_1;
+ reg [`ADDR_WIDTH1-1:0] wa_a_1;
reg [`DATA_WIDTH0-1:0] wd_a_0;
reg [`DATA_WIDTH1-1:0] wd_a_1;
reg clk_b;
reg rce_b_0;
- reg rce_b_1;
+ reg rce_b_1;
reg [`ADDR_WIDTH0-1:0] ra_b_0;
- reg [`ADDR_WIDTH1-1:0] ra_b_1;
+ reg [`ADDR_WIDTH1-1:0] ra_b_1;
wire [`DATA_WIDTH0-1:0] rq_b_0;
wire [`DATA_WIDTH1-1:0] rq_b_1;
reg wce_b_0;
- reg wce_b_1;
+ reg wce_b_1;
reg [`ADDR_WIDTH0-1:0] wa_b_0;
- reg [`ADDR_WIDTH1-1:0] wa_b_1;
+ reg [`ADDR_WIDTH1-1:0] wa_b_1;
reg [`DATA_WIDTH0-1:0] wd_b_0;
reg [`DATA_WIDTH1-1:0] wd_b_1;
@@ -54,22 +54,22 @@
initial clk_a = 0;
initial clk_b = 0;
initial ra_a_0 = 0;
- initial ra_a_1 = 0;
+ initial ra_a_1 = 0;
initial ra_b_0 = 0;
- initial ra_b_1 = 0;
+ initial ra_b_1 = 0;
initial rce_a_0 = 0;
- initial rce_a_1 = 0;
+ initial rce_a_1 = 0;
initial rce_b_0 = 0;
- initial rce_b_1 = 0;
+ initial rce_b_1 = 0;
initial wce_a_0 = 0;
- initial wce_a_1 = 0;
+ initial wce_a_1 = 0;
initial wce_b_0 = 0;
- initial wce_b_1 = 0;
+ initial wce_b_1 = 0;
initial forever #(PERIOD / 2.0) clk_a = ~clk_a;
initial begin
#(PERIOD / 4.0);
forever #(PERIOD / 2.0) clk_b = ~clk_b;
- end
+ end
initial begin
$dumpfile(`STRINGIFY(`VCD));
$dumpvars;
@@ -96,12 +96,12 @@
reg [`DATA_WIDTH1-1:0] expected_b_1;
always @(posedge clk_a) begin
- expected_a_0 <= (a0 | (a0 << 20) | 20'h55000) & {`DATA_WIDTH0{1'b1}};
- expected_a_1 <= ((a1+1) | ((a1+1) << 20) | 20'h55000) & {`DATA_WIDTH1{1'b1}};
+ expected_a_0 <= (a0 | (a0 << 20) | 20'h55000) & {`DATA_WIDTH0{1'b1}};
+ expected_a_1 <= ((a1+1) | ((a1+1) << 20) | 20'h55000) & {`DATA_WIDTH1{1'b1}};
end
always @(posedge clk_b) begin
- expected_b_0 <= ((b0+2) | ((b0+2) << 20) | 20'h55000) & {`DATA_WIDTH0{1'b1}};
- expected_b_1 <= ((b1+3) | ((b1+3) << 20) | 20'h55000) & {`DATA_WIDTH1{1'b1}};
+ expected_b_0 <= ((b0+2) | ((b0+2) << 20) | 20'h55000) & {`DATA_WIDTH0{1'b1}};
+ expected_b_1 <= ((b1+3) | ((b1+3) << 20) | 20'h55000) & {`DATA_WIDTH1{1'b1}};
end
wire error_a_0 = a0 != 0 ? (rq_a_0 !== expected_a_0) : 0;
@@ -158,10 +158,10 @@
end
end
done_a0 = 1'b1;
- a0 = 0;
- // PORTs B0
- @(posedge clk_b)
- #2;
+ a0 = 0;
+ // PORTs B0
+ @(posedge clk_b)
+ #2;
// Write data
for (b0 = (1<<`ADDR_WIDTH0) / 2; b0 < (1<<`ADDR_WIDTH0); b0 = b0 + ADDR_INCR) begin
@(negedge clk_b) begin
@@ -189,10 +189,10 @@
end
end
done_b0 = 1'b1;
- b0 = (1<<`ADDR_WIDTH0) / 2;
- // PORTs A1
- @(posedge clk_a)
- #2;
+ b0 = (1<<`ADDR_WIDTH0) / 2;
+ // PORTs A1
+ @(posedge clk_a)
+ #2;
// Write data
for (a1 = 0; a1 < (1<<`ADDR_WIDTH1) / 2; a1 = a1 + ADDR_INCR) begin
@(negedge clk_a) begin
@@ -220,10 +220,10 @@
end
end
done_a1 = 1'b1;
- a1 = 0;
- // PORTs B1
- @(posedge clk_b)
- #2;
+ a1 = 0;
+ // PORTs B1
+ @(posedge clk_b)
+ #2;
// Write data
for (b1 = (1<<`ADDR_WIDTH1) / 2; b1 < (1<<`ADDR_WIDTH1); b1 = b1 + ADDR_INCR) begin
@(negedge clk_b) begin
@@ -251,7 +251,7 @@
end
end
done_b1 = 1'b1;
- b1 = (1<<`ADDR_WIDTH1) / 2;
+ b1 = (1<<`ADDR_WIDTH1) / 2;
end
// Scan for simulation finish
@@ -259,7 +259,7 @@
if (done_sim)
$finish_and_return( (error_a_0_cnt == 0 & error_b_0_cnt == 0 & error_a_1_cnt == 0 & error_b_1_cnt == 0) ? 0 : -1 );
end
-
+
case (`STRINGIFY(`TOP))
"dpram_18x1024_9x2048": begin
dpram_18x1024_9x2048 #() bram (
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_afifo/bram36k_afifo.v b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_afifo/bram36k_afifo.v
index 1b97e7f..2fc55ee 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_afifo/bram36k_afifo.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_afifo/bram36k_afifo.v
@@ -32,7 +32,7 @@
output Overrun_Error, Underrun_Error;
AFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -52,8 +52,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module af2048x18_2048x18 (DIN,PUSH,POP,clock0,clock1,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -74,7 +73,7 @@
output Overrun_Error, Underrun_Error;
AFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -94,8 +93,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module af4096x9_4096x9 (DIN,PUSH,POP,clock0,clock1,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -116,7 +114,7 @@
output Overrun_Error, Underrun_Error;
AFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -136,6 +134,5 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
\ No newline at end of file
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_afifo/sim/Makefile b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_afifo/sim/Makefile
index 8b777b5..7c93214 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_afifo/sim/Makefile
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_afifo/sim/Makefile
@@ -39,7 +39,6 @@
@rm -rf $(word $(1),$(POST_SYNTH)).vcd $(word $(1),$(POST_SYNTH)).vvp $(word $(1),$(POST_SYNTH)).vvp.log $(word $(1),$(POST_SYNTH)).vcd.log
endef
-# FIXME: $(call simulate_post_synth,5)
sim:
$(call simulate_post_synth,1)
$(call clean_post_synth_sim,1)
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_afifo/sim/bram36k_afifo_tb.v b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_afifo/sim/bram36k_afifo_tb.v
index addf547..48424fc 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_afifo/sim/bram36k_afifo_tb.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_afifo/sim/bram36k_afifo_tb.v
@@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -23,32 +23,32 @@
localparam ADDR_INCR = 1;
reg clk0;
- reg clk1;
- reg flush;
+ reg clk1;
+ reg flush;
reg pop;
wire [`DATA_WIDTH1-1:0] dout;
reg push;
reg [`DATA_WIDTH0-1:0] din;
- wire almost_full,almost_empty;
- wire full, empty;
- wire full_watermark, empty_watermark;
- wire overrun_error, underrun_error;
+ wire almost_full,almost_empty;
+ wire full, empty;
+ wire full_watermark, empty_watermark;
+ wire overrun_error, underrun_error;
- initial
- begin
- clk0 = 0;
- clk1 = 0;
- pop = 0;
- push = 0;
- flush = 1;
- din = 0;
- #40
- flush = 0;
- end
-
+ initial
+ begin
+ clk0 = 0;
+ clk1 = 0;
+ pop = 0;
+ push = 0;
+ flush = 1;
+ din = 0;
+ #40
+ flush = 0;
+ end
+
initial forever #(PERIOD / 3.0) clk0 = ~clk0;
- initial forever #(PERIOD / 2.0) clk1 = ~clk1;
-
+ initial forever #(PERIOD / 2.0) clk1 = ~clk1;
+
initial begin
$dumpfile(`STRINGIFY(`VCD));
$dumpvars;
@@ -58,12 +58,12 @@
reg done;
initial done = 1'b0;
-
- reg read_test;
+
+ reg read_test;
initial read_test = 0;
reg [`DATA_WIDTH1-1:0] expected;
- initial expected = 0;
+ initial expected = 0;
always @(posedge clk1) begin
expected <= (a | (a << 20) | 20'h55000) & {`DATA_WIDTH1{1'b1}};
@@ -80,7 +80,7 @@
initial #(50) begin
- @(posedge clk0)
+ @(posedge clk0)
// Write data
for (a = 0; a < (1<<`ADDR_WIDTH0); a = a + ADDR_INCR) begin
@(negedge clk0) begin
@@ -118,59 +118,59 @@
case (`STRINGIFY(`TOP))
"af1024x36_1024x36": begin
af1024x36_1024x36 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .clock1(clk1),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .clock1(clk1),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"af2048x18_2048x18": begin
af2048x18_2048x18 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .clock1(clk1),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .clock1(clk1),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"af4096x9_4096x9": begin
af4096x9_4096x9 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk0),
- .clock1(clk1),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk0),
+ .clock1(clk1),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
endcase
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sdp/sim/Makefile b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sdp/sim/Makefile
index ca7d1af..05b231f 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sdp/sim/Makefile
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sdp/sim/Makefile
@@ -35,7 +35,6 @@
@rm -rf $(word $(1),$(POST_SYNTH)).vcd $(word $(1),$(POST_SYNTH)).vvp $(word $(1),$(POST_SYNTH)).vvp.log $(word $(1),$(POST_SYNTH)).vcd.log
endef
-# FIXME: $(call simulate_post_synth,5)
sim:
$(call simulate_post_synth,1)
$(call clean_post_synth_sim,1)
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sdp/sim/bram36k_sdp_tb.v b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sdp/sim/bram36k_sdp_tb.v
index 1c003ec..c47b873 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sdp/sim/bram36k_sdp_tb.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sdp/sim/bram36k_sdp_tb.v
@@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -103,7 +103,7 @@
"spram_36x1024": begin
spram_36x1024 #() bram (
.clock0(clk),
- .clock1(clk),
+ .clock1(clk),
.REN_i(rce),
.RD_ADDR_i(ra),
.RDATA_o(rq),
@@ -115,7 +115,7 @@
"spram_32x1024": begin
spram_32x1024 #() bram (
.clock0(clk),
- .clock1(clk),
+ .clock1(clk),
.REN_i(rce),
.RD_ADDR_i(ra),
.RDATA_o(rq),
@@ -127,7 +127,7 @@
"spram_18x2048": begin
spram_18x2048 #() bram (
.clock0(clk),
- .clock1(clk),
+ .clock1(clk),
.REN_i(rce),
.RD_ADDR_i(ra),
.RDATA_o(rq),
@@ -139,7 +139,7 @@
"spram_16x2048": begin
spram_16x2048 #() bram (
.clock0(clk),
- .clock1(clk),
+ .clock1(clk),
.REN_i(rce),
.RD_ADDR_i(ra),
.RDATA_o(rq),
@@ -151,7 +151,7 @@
"spram_9x4096": begin
spram_9x4096 #() bram (
.clock0(clk),
- .clock1(clk),
+ .clock1(clk),
.REN_i(rce),
.RD_ADDR_i(ra),
.RDATA_o(rq),
@@ -163,7 +163,7 @@
"spram_8x4096": begin
spram_8x4096 #() bram (
.clock0(clk),
- .clock1(clk),
+ .clock1(clk),
.REN_i(rce),
.RD_ADDR_i(ra),
.RDATA_o(rq),
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sfifo/bram36k_sfifo.v b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sfifo/bram36k_sfifo.v
index 63df3b2..d3bf2d6 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sfifo/bram36k_sfifo.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sfifo/bram36k_sfifo.v
@@ -32,7 +32,7 @@
output Overrun_Error, Underrun_Error;
SFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -51,8 +51,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module f2048x18_2048x18 (DIN,PUSH,POP,clock0,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -73,7 +72,7 @@
output Overrun_Error, Underrun_Error;
SFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -92,8 +91,7 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
module f4096x9_4096x9 (DIN,PUSH,POP,clock0,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
@@ -114,7 +112,7 @@
output Overrun_Error, Underrun_Error;
SFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
- )
+ )
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
@@ -133,6 +131,5 @@
.Empty(Empty),
.DOUT(DOUT)
- );
-
+ );
endmodule
\ No newline at end of file
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sfifo/sim/Makefile b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sfifo/sim/Makefile
index 1cb26f3..e31e1d0 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sfifo/sim/Makefile
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sfifo/sim/Makefile
@@ -39,7 +39,6 @@
@rm -rf $(word $(1),$(POST_SYNTH)).vcd $(word $(1),$(POST_SYNTH)).vvp $(word $(1),$(POST_SYNTH)).vvp.log $(word $(1),$(POST_SYNTH)).vcd.log
endef
-# FIXME: $(call simulate_post_synth,5)
sim:
$(call simulate_post_synth,1)
$(call clean_post_synth_sim,1)
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sfifo/sim/bram36k_sfifo_tb.v b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sfifo/sim/bram36k_sfifo_tb.v
index df2362c..76be519 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sfifo/sim/bram36k_sfifo_tb.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_sfifo/sim/bram36k_sfifo_tb.v
@@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -23,29 +23,29 @@
localparam ADDR_INCR = 1;
reg clk;
- reg flush;
+ reg flush;
reg pop;
wire [`DATA_WIDTH1-1:0] dout;
reg push;
reg [`DATA_WIDTH0-1:0] din;
- wire almost_full,almost_empty;
- wire full, empty;
- wire full_watermark, empty_watermark;
- wire overrun_error, underrun_error;
+ wire almost_full,almost_empty;
+ wire full, empty;
+ wire full_watermark, empty_watermark;
+ wire overrun_error, underrun_error;
- initial
- begin
- clk = 0;
- pop = 0;
- push = 0;
- flush = 1;
- din = 0;
- #40
- flush = 0;
- end
-
+ initial
+ begin
+ clk = 0;
+ pop = 0;
+ push = 0;
+ flush = 1;
+ din = 0;
+ #40
+ flush = 0;
+ end
+
initial forever #(PERIOD / 3.0) clk = ~clk;
-
+
initial begin
$dumpfile(`STRINGIFY(`VCD));
$dumpvars;
@@ -55,12 +55,12 @@
reg done;
initial done = 1'b0;
-
+
reg read_test;
initial read_test = 0;
reg [`DATA_WIDTH1-1:0] expected;
- initial expected = 0;
+ initial expected = 0;
always @(posedge clk) begin
expected <= (a | (a << 20) | 20'h55000) & {`DATA_WIDTH1{1'b1}};
@@ -76,7 +76,7 @@
end
initial #(50) begin
- @(posedge clk)
+ @(posedge clk)
// Write data
for (a = 0; a < (1<<`ADDR_WIDTH0); a = a + ADDR_INCR) begin
@(negedge clk) begin
@@ -114,56 +114,56 @@
case (`STRINGIFY(`TOP))
"f1024x36_1024x36": begin
f1024x36_1024x36 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"f2048x18_2048x18": begin
f2048x18_2048x18 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
"f4096x9_4096x9": begin
f4096x9_4096x9 #() afifo (
- .DIN(din),
- .PUSH(push),
- .POP(pop),
- .clock0(clk),
- .Async_Flush(flush),
- .Almost_Full(almost_full),
- .Almost_Empty(almost_empty),
- .Full(full),
- .Empty(empty),
- .Full_Watermark(full_watermark),
- .Empty_Watermark(empty_watermark),
- .Overrun_Error(overrun_error),
- .Underrun_Error(underrun_error),
- .DOUT(dout)
+ .DIN(din),
+ .PUSH(push),
+ .POP(pop),
+ .clock0(clk),
+ .Async_Flush(flush),
+ .Almost_Full(almost_full),
+ .Almost_Empty(almost_empty),
+ .Full(full),
+ .Empty(empty),
+ .Full_Watermark(full_watermark),
+ .Empty_Watermark(empty_watermark),
+ .Overrun_Error(overrun_error),
+ .Underrun_Error(underrun_error),
+ .DOUT(dout)
);
end
endcase
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_tdp/sim/Makefile b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_tdp/sim/Makefile
index 2a0c20d..6ce8344 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_tdp/sim/Makefile
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_tdp/sim/Makefile
@@ -35,7 +35,6 @@
@rm -rf $(word $(1),$(POST_SYNTH)).vcd $(word $(1),$(POST_SYNTH)).vvp $(word $(1),$(POST_SYNTH)).vvp.log $(word $(1),$(POST_SYNTH)).vcd.log
endef
-# FIXME: $(call simulate_post_synth,5)
sim:
$(call simulate_post_synth,1)
$(call clean_post_synth_sim,1)
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_tdp/sim/bram36k_tdp_tb.v b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_tdp/sim/bram36k_tdp_tb.v
index 01de7e7..646561a 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_tdp/sim/bram36k_tdp_tb.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/bram36k_tdp/sim/bram36k_tdp_tb.v
@@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -157,7 +157,7 @@
if (done_sim)
$finish_and_return( (error_a_cnt == 0 & error_b_cnt == 0) ? 0 : -1 );
end
-
+
case (`STRINGIFY(`TOP))
"dpram_36x1024": begin
dpram_36x1024 #() bram (
@@ -168,7 +168,7 @@
.WEN1_i(wce_a),
.WR1_ADDR_i(wa_a),
.WDATA1_i(wd_a),
-
+
.clock1(clk_b),
.REN2_i(rce_b),
.RD2_ADDR_i(ra_b),
@@ -187,7 +187,7 @@
.WEN1_i(wce_a),
.WR1_ADDR_i(wa_a),
.WDATA1_i(wd_a),
-
+
.clock1(clk_b),
.REN2_i(rce_b),
.RD2_ADDR_i(ra_b),
@@ -206,7 +206,7 @@
.WEN1_i(wce_a),
.WR1_ADDR_i(wa_a),
.WDATA1_i(wd_a),
-
+
.clock1(clk_b),
.REN2_i(rce_b),
.RD2_ADDR_i(ra_b),