Sign in

username:

password:



Not a member?

Search Comp.Arch.FPGA



Search tips

fpga by Keywords

Altera | ASIC | CPLD | Cyclone | DCM | DDR | DSP | Ethernet | ISE | JTAG | Linux | LVDS | Microblaze | ML310 | Modelsim | NIOS | OPB | PCI | Quartus | RocketIO | SDRAM | Spartan | Spartan3 | SRAM | Stratix | Verilog | VHDL | Virtex | Virtex-4 | Virtex-II | Xilinx | XST

Ads

See Also

DSPEmbedded SystemsElectronics

Comp.Arch.FPGA | RAM Synthesized away

There are 4 messages in this thread.

You are currently looking at messages 0 to 4.

RAM Synthesized away - Alexander Korff - 2005-04-01 12:05:00

Hi,

I use an RAM Block of 28x64 words in my design (Ouartus II 4.2 SP1). I have 
built the RAM with the integrated MegaFunction Editior. The problem is that 
this nice SRAMBlock is  synthesized away (  Warning: Synthesized away node 
4ksram:srama|altsyncram:altsyncram_component|altsyncram_j3u:auto_generated|ram_block1a0&qu
ot; 
... up to 27) When I add JTAG capability or add direct output pins I can see 
that writing into the RAM works(Functional Simulation), because in this case 
the RAM is not Synthesized away.
In the Quartus II Manual I read that in some conditions this may happen and 
they say that the help may help, but I can not find anything about this in 
the help. I use the RAM as a ring buffer I read Adress A put this into an 
register an write a new value to Adress A I got from outside, after this I 
add one to the Adress Counter (running i circles for the Adress counter 
works). I hope you can help me and tell me what I did wrong and what I can 
do to make it work.

Thanks in advance for your help.

With best regards.

Alex 


______________________________
Join the blogging team on FPGARelated.com and earn rewards! Details Here.



Re: RAM Synthesized away - Brad Smallridge - 2005-04-01 14:05:00

Don't know this software but perhpas there is a
switch to keep
it from optimizing the SRAM away.  Can you bring the SRAM
outputs to IOs? 



Re: RAM Synthesized away - John Retta - 2005-04-01 23:57:00

This is usually indicative of a problem with the
synthesis tool
thinking that the RAM (or any block synthesize away) is not used.
Typically because the outputs go to another block which is
also synthesized away because of a syntax error.  When you
add chipscope or bring pins to output .. then suddenly RAM
is not synthesized away because outputs used elsewhere.

So two techniques to isolate are :
[1]  If the outputs go from blk A to blk B to Blk C, etc .
Bring first the outputs of block A to I/O pins ... if there e
error is in block A ... block A and Ram will be trimmed away.
If not ... keep moving outputs down the chain until block
disappears.  This can slip through if there is a subtle port
mismatch in width .... or a name mismatch within offending
block.

[2] Easier way is to use a simulator.  Tie all inputs to a
known level ... and start to track forward flow of signals
until Z's start to show up ... this means nets are not driven.

If you are not using a simulator ... take the effort to learn ...
Quite easy once you get over the learning curve ... curve
can be shortened quite a bit with sample test benches ...
scripts to follow ... but payback is huge.

Regards,
John Retta
Owner and Designer
Retta Technical Consulting Inc.

email : j...@rtc-inc.com
web :  www.rtc-inc.com

"Alexander Korff" <a...@t-online.de> wrote in message
news:d2jv6g$pg5$01$1...@news.t-online.com...
> Hi,
>
> I use an RAM Block of 28x64 words in my design (Ouartus II 4.2 SP1). I
have
> built the RAM with the integrated MegaFunction Editior. The problem is
that
> this nice SRAMBlock is  synthesized away (  Warning: Synthesized away node
>
4ksram:srama|altsyncram:altsyncram_component|altsyncram_j3u:auto_generated|r
am_block1a0"
> ... up to 27) When I add JTAG capability or add direct output pins I can
see
> that writing into the RAM works(Functional Simulation), because in this
case
> the RAM is not Synthesized away.
> In the Quartus II Manual I read that in some conditions this may happen
and
> they say that the help may help, but I can not find anything about this in
> the help. I use the RAM as a ring buffer I read Adress A put this into an
> register an write a new value to Adress A I got from outside, after this I
> add one to the Adress Counter (running i circles for the Adress counter
> works). I hope you can help me and tell me what I did wrong and what I can
> do to make it work.
>
> Thanks in advance for your help.
>
> With best regards.
>
> Alex
>
>



Re: RAM Synthesized away - Alexander Korff - 2005-04-03 08:34:00

I did this and then the RAM is not synthesized away.

Alex