aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Ravensloft <dan.ravensloft@gmail.com>2020-05-28 11:33:19 +0100
committerMarcelina Koƛcielnicka <mwk@0x04.net>2020-07-04 19:45:10 +0200
commitc6765443fdb57938418fb2b80bf56cda0e7d229b (patch)
treef5fc653018e45f3a9febd623f4f7cea7823e1906
parent52fbaeca07a5d8d0a3776d56665dc3bdaadf96b4 (diff)
downloadyosys-c6765443fdb57938418fb2b80bf56cda0e7d229b.tar.gz
yosys-c6765443fdb57938418fb2b80bf56cda0e7d229b.tar.bz2
yosys-c6765443fdb57938418fb2b80bf56cda0e7d229b.zip
Improve MISTRAL_FF specify rules
Co-authored-by: Eddie Hung <eddie@fpgeh.com>
-rw-r--r--techlibs/intel_alm/common/dff_sim.v9
-rw-r--r--tests/arch/intel_alm/fsm.ys3
2 files changed, 6 insertions, 6 deletions
diff --git a/techlibs/intel_alm/common/dff_sim.v b/techlibs/intel_alm/common/dff_sim.v
index 38e3d6618..9ff8f9f67 100644
--- a/techlibs/intel_alm/common/dff_sim.v
+++ b/techlibs/intel_alm/common/dff_sim.v
@@ -79,10 +79,9 @@ module MISTRAL_FF(
);
specify
- if (ENA) (posedge CLK => (Q : DATAIN)) = `SYNCPATH;
- if (ENA) (posedge CLK => (Q : SCLR)) = `SYNCPATH;
- if (ENA) (posedge CLK => (Q : SLOAD)) = `SYNCPATH;
- if (ENA) (posedge CLK => (Q : SDATA)) = `SYNCPATH;
+ if (ENA && ACLR !== 1'b0 && !SCLR && !SLOAD) (posedge CLK => (Q : DATAIN)) = `SYNCPATH;
+ if (ENA && SCLR) (posedge CLK => (Q : 1'b0)) = `SYNCPATH;
+ if (ENA && !SCLR && SLOAD) (posedge CLK => (Q : SDATA)) = `SYNCPATH;
$setup(DATAIN, posedge CLK, `SYNCSETUP);
$setup(ENA, posedge CLK, `SYNCSETUP);
@@ -90,7 +89,7 @@ specify
$setup(SLOAD, posedge CLK, `SYNCSETUP);
$setup(SDATA, posedge CLK, `SYNCSETUP);
- if (!ACLR) (ACLR => Q) = `COMBPATH;
+ if (ACLR === 1'b0) (ACLR => Q) = `COMBPATH;
endspecify
initial begin
diff --git a/tests/arch/intel_alm/fsm.ys b/tests/arch/intel_alm/fsm.ys
index 20321c62f..02e4a9789 100644
--- a/tests/arch/intel_alm/fsm.ys
+++ b/tests/arch/intel_alm/fsm.ys
@@ -13,7 +13,8 @@ cd fsm # Constrain all select calls below inside the top module
select -assert-count 6 t:MISTRAL_FF
select -assert-max 2 t:MISTRAL_ALUT2 # Clang returns 2, GCC returns 1
+select -assert-count 1 t:MISTRAL_ALUT3
select -assert-max 1 t:MISTRAL_ALUT4 # Clang returns 0, GCC returns 1
select -assert-max 5 t:MISTRAL_ALUT5 # Clang returns 5, GCC returns 4
select -assert-max 2 t:MISTRAL_ALUT6 # Clang returns 1, GCC returns 2
-select -assert-none t:MISTRAL_FF t:MISTRAL_ALUT2 t:MISTRAL_ALUT4 t:MISTRAL_ALUT5 t:MISTRAL_ALUT6 %% t:* %D
+select -assert-none t:MISTRAL_FF t:MISTRAL_ALUT2 t:MISTRAL_ALUT3 t:MISTRAL_ALUT4 t:MISTRAL_ALUT5 t:MISTRAL_ALUT6 %% t:* %D