Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Design paradigms

kaz1

Full Member level 5
Full Member level 5
Joined
Aug 15, 2019
Messages
254
Helped
16
Reputation
32
Reaction score
35
Trophy points
28
Location
UK
Activity points
1,543
I believe in these design paradigms:
-Do not generate errors then fix it downstream
-Do not accept inputs that you don't need
-Produce correct outputs, do not correct inputs but leave that to fellow upstream colleague.
-Do not mess up your outputs because the colleague downstream wants you do that.
-Trust your platform and tools, do not verify basics such is if an AND logic is working or not.
-Do not allow another FPGA on board to borrow your FPGA resources. Unless absolutely necessary
-Do not assume a design is ok if it passes sanity check, wait until it is tested extensively

Can anybody think of any other paradigms?

What mystifies me is how long to wait to do things after reset release:
For example would anyone design a circuit that launches a missile immediately after reset release?

Seriously :mad:
 

dpaul

Advanced Member level 5
Advanced Member level 5
Joined
Jan 16, 2008
Messages
1,732
Helped
317
Reputation
635
Reaction score
336
Trophy points
1,373
Location
Germany
Activity points
12,639
What is it that you want to do?
Paradigms vary from project to project, is dependent on the team size, skills and responsibilities of the FPGA engineer.
 

barry

Advanced Member level 7
Advanced Member level 7
Joined
Mar 31, 2005
Messages
6,063
Helped
1,178
Reputation
2,368
Reaction score
1,339
Trophy points
1,393
Location
California, USA
Activity points
32,979
What mystifies me is how long to wait to do things after reset release:
For example would anyone design a circuit that launches a missile immediately after reset release?

Seriously :mad:
If that was a requirement, then I would definitely design a circuit that launched a missile "immediately" (whatever that means) after reset release. FPGA/digital design is, or SHOULD be, deterministic. I don't understand your mystification.
 

weetabixharry

Full Member level 4
Full Member level 4
Joined
Oct 9, 2013
Messages
232
Helped
69
Reputation
142
Reaction score
73
Trophy points
1,318
Location
Sweden
Activity points
3,460
What mystifies me is how long to wait to do things after reset release:
For example would anyone design a circuit that launches a missile immediately after reset release?

Seriously :mad:

There is not necessarily anything special about a reset. For example, consider this flip-flop:

Code:
process(clk)
begin
    if rising_edge(clk) then
        if rst_n = '0' then
            a_reg <= '0';
        else
            a_reg <= a;
        end if;
    end if;
end process;

What if we rename the (active-low) reset to enable? We might then write it like this:

Code:
process(clk)
begin
    if rising_edge(clk) then
        a_reg <= a and enable;
    end if;
end process;

The two implementations are functionally identical and could be synthesized to identical hardware.

It is not unreasonable to expect the 2nd circuit to "do things" in response to enable on the very next rising edge of clk. Similarly, it is not unreasonable to expect the 1st circuit to "do things" in response to rst_n on the very next rising edge of clk. Renaming the signal, or restructuring the HDL code hasn't changed that fact.

If this logic is part of a circuit that controls the launch of a missile, then you would of course need to make absolutely certain that the circuit is not going to behave in an unpredictable manner. That doesn't just apply to a signal that you choose to name a "reset", but to the whole circuit. And it doesn't just apply to circuits that launch missiles; it is very often desirable for a digital circuit to behave predictably in general.
 

barry

Advanced Member level 7
Advanced Member level 7
Joined
Mar 31, 2005
Messages
6,063
Helped
1,178
Reputation
2,368
Reaction score
1,339
Trophy points
1,393
Location
California, USA
Activity points
32,979

kaz1

Full Member level 5
Full Member level 5
Joined
Aug 15, 2019
Messages
254
Helped
16
Reputation
32
Reaction score
35
Trophy points
28
Location
UK
Activity points
1,543
Then I don't want you designing my missle control system..

If you don't trust a synchronous-release reset, then you don't trust ANY synchronous circuit.
That brings us to trusting the tools/platform or not. Remember many of us talk about state machine entering wrong state. A trusted design doesn't need that to be considered. And if it does occur would state reset sort things out...no way. I trust reset release provided timing path is defined and it passed timing.
 

barry

Advanced Member level 7
Advanced Member level 7
Joined
Mar 31, 2005
Messages
6,063
Helped
1,178
Reputation
2,368
Reaction score
1,339
Trophy points
1,393
Location
California, USA
Activity points
32,979
Apparently you are unfamiliar with cosmic rays and radiation effects and ESD whereby a bit can flip and put a state machine in an invalid state. Nothing to do with “trust”; it has to do with good design practice to be able to have a state machine recover from an invalid state.
 

LaTeX Commands Quick-Menu:

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top