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.

synthesized netlists simulation issue

Status
Not open for further replies.

manpmanp

Newbie level 4
Joined
Sep 16, 2018
Messages
7
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
91
Tools: Synopsys design_vision 2013 / Questasim 10.0d / tech ST65nm

I have several issues with simulation of my synthesized netlists from design_vision.
1- As a simple design, I synthesized a generic multiplier. Behavioral simulations go well, simulation synthesized netlist, the simulator generates several intermediate values which I cannot figure out where from the come!!!

As I mentioned this simple design, is purely combinatorial and simply implemented as:
Code:
entity MultBlock is
  port (
    MultWord1xDI : in  unsigned(WORDLEN_MEM/2-1 downto 0);
    MultWord2xDI : in  unsigned(WORDLEN_MEM/2-1 downto 0);
    MultOutxDO   : out unsigned(WORDLEN_MEM-1 downto 0)
    );
end MultBlock;
architecture rtl of MultBlock is
begin
  MultOutxDO <= MultWord1xDI*MultWord2xDI;
end rtl;

**broken link removed**

A snapshot of the simulator results is added? I tried to make a relation between the real input, midterms and final output investigating different options such as partial product, and, or ..., however no clue what are these values?
Can anyone with experience in this issue help me to understand them, since I need to avoid any wrong result at anytime???
 

Hi,

your attachment is invalid.

There is a timeout.
Don´t waste too much time from uploading_the_attachment to submit_your_post.

Klaus
 

Hi
I tried to post the image inline with the message, probably something went wrong.
I attached the image again to this reply.
BR
 

Attachments

  • Screenshot-3.png
    Screenshot-3.png
    3.7 KB · Views: 127

The different values show up due to the various different combonational paths of the logic arriving to the output at different times due to more cell delay in one path compared to another.
 

just simulate long enough with a stable input and you will see a stable output. that's how combinational logic works, there is nothing wrong here.
 

The different values show up due to the various different combonational paths of the logic arriving to the output at different times due to more cell delay in one path compared to another.

Thanks for your reply.
I am wondering how this effect can be avoided, meaning in synthesis flow how I can control the paths somehow to avoid receiving some invalid midterms. To my specific design application, any wrong or invalid output value is a killer (as long as the output port is stable and giving a value out, this value is taken and been processed on the fly)
I actually simulated it in for a long period. Also added a delay to my testbench for emulating the setup and hold time (for another case with registers in the design)
Any hint is appreciated!
 

I am wondering how this effect can be avoided, meaning in synthesis flow how I can control the paths somehow to avoid receiving some invalid midterms.

You can't, that is not how combinational logic works. Glitches will happen and are completely expected. You need a flop to prevent these 'glitches' from moving further down.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top