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.

[SOLVED] Simulation post physical synthesis issue

Status
Not open for further replies.

rviera

Newbie level 1
Newbie level 1
Joined
Sep 17, 2010
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Visit site
Activity points
1,298
Hi,

When I perform the logic synthesis in rtl compiler it deletes some "unused" bits, thats ok, I perform the post logical synthesis simulation and the results are still ok. I tell the compiler not to perform the optimization and maintain the bits and the simulation is still OK.

My problem is when I perform the simulation after physical synthesis (encounter). I have some signals in red and the result instead of beying 3E722 is 3E7XX because some bits are unavailable in the multiplier1 and 2, so I thought the problem was with the concatenation, but it doesn't make sense, it works that ways, I can't do "00" & (mul1_A * mul1_B) because I have a number before the multiplication, so I'm in a "deadlock" I don't have any other idea of what is the problem. Is there any command to give to rtl compiler to solve this or it is a vhdl issue?



case cycle is
--THIS IS JUST AN EXAMPLE OF A CYCLE AND HOW THE MULTIPLIER, ADDER AND SUBTRACTOR IS CALLED ON EACH CLK CYCLE
when "0011" =>
mul1_A <= r_b;
mul1_B <= pxplus1;
mul2_A <= r_b;
mul2_B <= pxminus1;
sub1_A <= multiplier1_out;
sub1_B <= multiplier2_out;
r_temp1_next <= multiplier2_out;

at each iteration of the clock I have

process(clk,reset)
begin
if reset='1' then
multiplier1_out <= (others => '0');
multiplier2_out <= (others => '0');
subtractor1_out <= (others => '0');
subtractor2_out <= (others => '0');
adder_out <= (others => '0');
elsif (clk'event and clk='1') then
multiplier1_out <= mul1_A * ("00" & mul1_B);
multiplier2_out <= mul2_A * ("00" & mul2_B);
subtractor1_out <= sub1_A - sub1_B;
subtractor2_out <= sub2_A - sub2_B;
adder_out <= add_A + add_B;
end if;
end process;




Here are my post logical and post physical simulations with the g_x and g_y as main outputs.

simulation_post_logical.jpg

simulation_post_physical.jpg


If someone can give-me an insight I would be very glad.
 

Attachments

  • simulation_post_physical.jpg
    simulation_post_physical.jpg
    220 KB · Views: 125

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top