From 5e58350b9841df9caff7b62cbf84843fcbe5d2e4 Mon Sep 17 00:00:00 2001 From: Meinhard Kissich Date: Thu, 18 May 2023 01:58:06 +0200 Subject: [PATCH] FF clk from ring oscillator --- ice40/regressions/issue1158/roclk.json.gz | Bin 0 -> 7631 bytes ice40/regressions/issue1158/roclk.npnr | 1 + ice40/regressions/issue1158/roclk.pcf | 2 + ice40/regressions/issue1158/roclk.v | 48 ++++++++++++++++++++++ ice40/regressions/issue1158/roclk.ys | 4 ++ 5 files changed, 55 insertions(+) create mode 100644 ice40/regressions/issue1158/roclk.json.gz create mode 100644 ice40/regressions/issue1158/roclk.npnr create mode 100644 ice40/regressions/issue1158/roclk.pcf create mode 100644 ice40/regressions/issue1158/roclk.v create mode 100644 ice40/regressions/issue1158/roclk.ys diff --git a/ice40/regressions/issue1158/roclk.json.gz b/ice40/regressions/issue1158/roclk.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..7bab3a54861505b129049c5ee2722c244554abab GIT binary patch literal 7631 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 ICmPEC1N$rX4gdfE literal 0 HcmV?d00001 diff --git a/ice40/regressions/issue1158/roclk.npnr b/ice40/regressions/issue1158/roclk.npnr new file mode 100644 index 0000000..934bac4 --- /dev/null +++ b/ice40/regressions/issue1158/roclk.npnr @@ -0,0 +1 @@ +--hx8k --ignore-loops diff --git a/ice40/regressions/issue1158/roclk.pcf b/ice40/regressions/issue1158/roclk.pcf new file mode 100644 index 0000000..1873d38 --- /dev/null +++ b/ice40/regressions/issue1158/roclk.pcf @@ -0,0 +1,2 @@ + +set_io --warn-no-port dclk_o L9 \ No newline at end of file diff --git a/ice40/regressions/issue1158/roclk.v b/ice40/regressions/issue1158/roclk.v new file mode 100644 index 0000000..8ef5047 --- /dev/null +++ b/ice40/regressions/issue1158/roclk.v @@ -0,0 +1,48 @@ + +module roclk ( + output wire dclk_o +); + +wire ro1; +wire ro2; +wire ro3; + +(* keep *) SB_LUT4 #( + .LUT_INIT(16'd1) +) i_inv1 ( + .O ( ro2 ), + .I0 ( ro1 ), + .I1 ( 1'b0 ), + .I2 ( 1'b0 ), + .I3 ( 1'b0 ) +); + +(* keep *) SB_LUT4 #( + .LUT_INIT(16'd1) +) i_inv2 ( + .O ( ro3 ), + .I0 ( ro2 ), + .I1 ( 1'b0 ), + .I2 ( 1'b0 ), + .I3 ( 1'b0 ) +); + +(* keep *) SB_LUT4 #( + .LUT_INIT(16'd1) +) i_inv3 ( + .O ( ro1 ), + .I0 ( ro3 ), + .I1 ( 1'b0 ), + .I2 ( 1'b0 ), + .I3 ( 1'b0 ) +); + +reg flop; + +assign dclk_o = flop; + +always @(posedge ro3) begin + flop <= ~flop; +end + +endmodule \ No newline at end of file diff --git a/ice40/regressions/issue1158/roclk.ys b/ice40/regressions/issue1158/roclk.ys new file mode 100644 index 0000000..f9629dc --- /dev/null +++ b/ice40/regressions/issue1158/roclk.ys @@ -0,0 +1,4 @@ +read_verilog roclk.v +hierarchy -top roclk +synth_ice40 +write_json roclk.json \ No newline at end of file