diff options
author | Clifford Wolf <clifford@clifford.at> | 2013-10-21 14:51:58 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2013-10-21 14:51:58 +0200 |
commit | d61699843fc3ecab9c484d911f43877e9a7a9d3d (patch) | |
tree | a763ae52dbe44c6c8995050dc2d749ad03f6552d /tests | |
parent | 56ea2306764e1363688e0f9e1146f98bd48d3037 (diff) | |
download | yosys-d61699843fc3ecab9c484d911f43877e9a7a9d3d.tar.gz yosys-d61699843fc3ecab9c484d911f43877e9a7a9d3d.tar.bz2 yosys-d61699843fc3ecab9c484d911f43877e9a7a9d3d.zip |
Improved handling of dff with async resets
Diffstat (limited to 'tests')
-rw-r--r-- | tests/simple/dff_different_styles.v | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/simple/dff_different_styles.v b/tests/simple/dff_different_styles.v index 23d89b5dc..db88b835e 100644 --- a/tests/simple/dff_different_styles.v +++ b/tests/simple/dff_different_styles.v @@ -50,3 +50,42 @@ always @(posedge clk or negedge arst) begin end endmodule +module dffa4(clk, arst1, arst2, arst3, d, q); +input clk, arst1, arst2, arst3, d; +output reg q; +always @(posedge clk, posedge arst1, posedge arst2, negedge arst3) begin + if (arst1) + q <= 0; + else if (arst2) + q <= 0; + else if (!arst3) + q <= 0; + else + q <= d; +end +endmodule + +module dffsr1(clk, arst, d, q); +input clk, arst, d; +output reg q; +always @(posedge clk, posedge arst) begin + if (arst) + q <= d^d; // constant expression -- but the frontend optimizer does not know that.. + else + q <= d; +end +endmodule + +// module dffsr2(clk, preset, clear, d, q); +// input clk, preset, clear, d; +// output reg q; +// always @(posedge clk, posedge preset, posedge clear) begin +// if (preset) +// q <= 1; +// else if (clear) +// q <= 0; +// else +// q <= d; +// end +// endmodule + |