Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

Between infinite and short there is a big difference. -- G. H. Gonnet


devel / comp.arch.fpga / Re: Forcing Synopsys to use only DFFs

SubjectAuthor
* Forcing Synopsys to use only DFFsChris Johnson
`- Forcing Synopsys to use only DFFsgnuarm.del...@gmail.com

1
Forcing Synopsys to use only DFFs

<8b0f22bc-6f7d-4882-bb01-a9f7a90ece4an@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=798&group=comp.arch.fpga#798

  copy link   Newsgroups: comp.arch.fpga
X-Received: by 2002:ac8:7dc4:0:b0:39c:f95f:57fe with SMTP id c4-20020ac87dc4000000b0039cf95f57femr10105397qte.612.1666284599826;
Thu, 20 Oct 2022 09:49:59 -0700 (PDT)
X-Received: by 2002:a05:6808:2393:b0:355:39af:eb6e with SMTP id
bp19-20020a056808239300b0035539afeb6emr11064183oib.40.1666284599580; Thu, 20
Oct 2022 09:49:59 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch.fpga
Date: Thu, 20 Oct 2022 09:49:59 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=208.223.129.170; posting-account=7FgVhgkAAADZWk7dtabH0RDhlNzJB4ki
NNTP-Posting-Host: 208.223.129.170
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8b0f22bc-6f7d-4882-bb01-a9f7a90ece4an@googlegroups.com>
Subject: Forcing Synopsys to use only DFFs
From: email.crj@gmail.com (Chris Johnson)
Injection-Date: Thu, 20 Oct 2022 16:49:59 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1376
 by: Chris Johnson - Thu, 20 Oct 2022 16:49 UTC

I have an application that needs to assure that the FFs reloaded from the combinatorial logic at their inputs on every clock in order to flush radiation induced errors with TMR corrected values.

The FPGA that I am using can implement enable FFs or D FFs. Is it possible to force Synopsys to not use only D FFs to assure that the stored values are updated on every clock?

-Chris

Re: Forcing Synopsys to use only DFFs

<2cf6c3cb-e427-415c-a3af-c0391fb0ae3dn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=799&group=comp.arch.fpga#799

  copy link   Newsgroups: comp.arch.fpga
X-Received: by 2002:ac8:5f47:0:b0:399:aa82:3c6f with SMTP id y7-20020ac85f47000000b00399aa823c6fmr17357338qta.627.1666371229318;
Fri, 21 Oct 2022 09:53:49 -0700 (PDT)
X-Received: by 2002:a05:6808:f10:b0:355:ba4:257e with SMTP id
m16-20020a0568080f1000b003550ba4257emr11007165oiw.58.1666371229042; Fri, 21
Oct 2022 09:53:49 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch.fpga
Date: Fri, 21 Oct 2022 09:53:48 -0700 (PDT)
In-Reply-To: <8b0f22bc-6f7d-4882-bb01-a9f7a90ece4an@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=65.207.89.54; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 65.207.89.54
References: <8b0f22bc-6f7d-4882-bb01-a9f7a90ece4an@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2cf6c3cb-e427-415c-a3af-c0391fb0ae3dn@googlegroups.com>
Subject: Re: Forcing Synopsys to use only DFFs
From: gnuarm.deletethisbit@gmail.com (gnuarm.del...@gmail.com)
Injection-Date: Fri, 21 Oct 2022 16:53:49 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 3229
 by: gnuarm.del...@gmail. - Fri, 21 Oct 2022 16:53 UTC

On Thursday, October 20, 2022 at 12:50:02 PM UTC-4, emai...@gmail.com wrote:
> I have an application that needs to assure that the FFs reloaded from the combinatorial logic at their inputs on every clock in order to flush radiation induced errors with TMR corrected values.
>
> The FPGA that I am using can implement enable FFs or D FFs. Is it possible to force Synopsys to not use only D FFs to assure that the stored values are updated on every clock?

You can assure enables are not used by specifying the logic to be used on every possible combination of inputs, and not using any conditionals with unlisted conditions. For example:

if (rising_edge(clk)) then
if (A = B) then
D <= C or E;
else
D <= C and E;
end if;
end if;

This will use a DFF only because every condition is specified and the FF does not need to remember its state.

if (rising_edge(clk)) then
if (A = B) then
D <= D or C;
end if;
end if;

This will generate an enable because there is no ELSE clause. Same for CASE statements, etc. Every possible condition must have a value specified for the D input.

Likewise, this will use an enable.

if (rising_edge(clk)) then
if (A = B) then
D <= C or E;
else
D <= D;
end if;
end if;

No condition should simply feedback the output to the D input. This will also generate an enable input, since in the ELSE clause the FF does not need a D input, it only needs to remember its previous value.

I had never given this much thought before, but it's possible that to be certain there are no enables generated, that you can't have any combinational path from the FF output to the D input at all. So this might also need to be excluded.

if (rising_edge(clk)) then
if (A = B) then
D <= C or E;
else
D <= C or D;
end if;
end if;

I would need to give some thought to possible conditions that might make use of an enable in this case.

--

Rick C.

- Get 1,000 miles of free Supercharging
- Tesla referral code - https://ts.la/richard11209

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor