Site Home   Archive Home   FAQ Home   How to search the Archive   How to Navigate the Archive   
Compare FPGA features and resources   

Threads starting:
1994JulAugSepOctNovDec1994
1995JanFebMarAprMayJunJulAugSepOctNovDec1995
1996JanFebMarAprMayJunJulAugSepOctNovDec1996
1997JanFebMarAprMayJunJulAugSepOctNovDec1997
1998JanFebMarAprMayJunJulAugSepOctNovDec1998
1999JanFebMarAprMayJunJulAugSepOctNovDec1999
2000JanFebMarAprMayJunJulAugSepOctNovDec2000
2001JanFebMarAprMayJunJulAugSepOctNovDec2001
2002JanFebMarAprMayJunJulAugSepOctNovDec2002
2003JanFebMarAprMayJunJulAugSepOctNovDec2003
2004JanFebMarAprMayJunJulAugSepOctNovDec2004
2005JanFebMarAprMayJunJulAugSepOctNovDec2005
2006JanFebMarAprMayJunJulAugSepOctNovDec2006
2007JanFebMarAprMayJunJulAugSepOctNovDec2007
2008JanFebMarAprMayJunJulAugSepOctNovDec2008
2009JanFebMarAprMayJunJulAugSepOctNovDec2009
2010JanFebMarAprMayJunJulAugSepOctNovDec2010
2011JanFebMarAprMayJunJulAugSepOctNovDec2011
2012JanFebMarAprMayJunJulAugSepOctNovDec2012
2013JanFebMarAprMayJunJulAugSepOctNovDec2013
2014JanFebMarAprMayJunJulAugSepOctNovDec2014
2015JanFebMarAprMayJunJulAugSepOctNovDec2015
2016JanFebMarAprMayJunJulAugSepOctNovDec2016
2017JanFebMarAprMayJunJulAugSepOctNovDec2017
2018JanFebMarAprMayJunJulAugSepOctNovDec2018
2019JanFebMarAprMayJunJulAugSepOctNovDec2019
2020JanFebMarAprMay2020

Authors:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Custom Search

Messages from 134550

Article: 134550
Subject: Re: How to see the contents of BRAM in simulator?
From: aleksa <aleksaZR@gmail.com>
Date: Sun, 17 Aug 2008 13:31:06 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Aug 17, 8:17=A0pm, rickman <gnu...@gmail.com> wrote:
> On Aug 17, 9:17 am, aleksa <aleks...@gmail.com> wrote:
>
> > When I was inferring dual port BRAM with same data bus sizes,
> > I was able to see the contents of BRAM memory locations in ISE
> > simulator.
>
> > Now I'm instatieting (is this word correctly written?)
> > dual port BRAM with port A 8bits and port B 1bit wide data bus,
> > and I cant get ISE sim to show the memory contents.
>
> > Is it not possible or am I doing something wrong?
>
> When you instantiate a vendor supplied component, you are using their
> library element. =A0Often this is just a black box that you can't see
> into. =A0If you want to be able to view the contents of the BRAM, you
> need to infer it instead of instantiating it. =A0Then the HDL code will
> be fully visible. =A0BTW, the most efficient simulation uses integers
> for the actual memory block rather than std_logic_vector.
>
> Rick

thanks

Article: 134551
Subject: Re: why does inferred RAM cause synthesis times to explode?
From: "KJ" <kkjennings@sbcglobal.net>
Date: Sun, 17 Aug 2008 20:21:17 -0400
Links: << >>  << T >>  << A >>

"andersod2" <thechrisanderson@gmail.com> wrote in message 
news:99b1281a-a30f-4949-b6aa-bbf42c3824dc@y38g2000hsy.googlegroups.com...
>
>
>
> KJ,
> Thanks a lot...I think you may be right because I'm getting a lot of
> latch warnings, but didn't understand why.  I am using inferred ram,
> which the docs say will work the same as an explicit template
> instantiation if I just use the typical "reg [w:x] mem[y:z];"
> notation...do you think using a template is always the better way to
> go?

To infer memory in any device you need to follow the template for that 
device.  For FPGAs, you typically have only synchronous memory (as rickman 
and Peter have pointed out), the basic template for this type of memory, in 
VHDL is...

process(clk)
begin
  if rising_edge(clk) then
    if (write_enable = '1') then
      ram(write_address) <= write_data;
    end if;
    read_data <= ram(read_address);
  end if;
end process;

> In fact I lifted the code for
> my mem module from a verilog site...

Hopefully one that produces synthesizable Verilog code.

> if there's a a way I can guarantee
> that the inferred ram will be put in a block I would very much like to
> know as I find it much easier to work with than the template.  Is that
> a constraints thing?

As I mentioned in the first post, I've found occasion where I had to add an 
attribute to the 'read_address' signal in order to get the tool to use the 
internal memory.  I would suggest:
- Take the above snippet of code (or peruse Xilinx's website for their 
template) and get that working in Verilog.
- Build just that module and see if it does indeed get built correctly using 
the internal memory.
- Integrate that into your real design and rebuild and check that it also 
gets built correctly (this is the point where I found that it wasn't and 
needed the extra attribute attached to 'read_address).
- If all else fails, open a case with Xilinx.

KJ 



Article: 134552
Subject: Re: video timing with TFP410
From: bkurtz@engineer.com
Date: Sun, 17 Aug 2008 18:05:52 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Aug 15, 3:13=A0pm, stewa...@gmail.com wrote:
> I want to implement 1280x1024but cannot synthesize an 108MHz pixel
> block for the timing. =A0I would prefer to use a 100 MHz (generated from
> 200) but can also make a 104 or 112 Mhz.
>
> Normal 1280x1024 timing:
> Horizontal
> Resolution pixels: 1280
> Front porch pixels: 48
> Sync pulse pixels: 112
> Back porch pixel: 248
> Veritcle
> Resolution lines: 1024
> Front porch lines: 1
> Sync pulse lines: 3
> Back porch lines: 38
>
> Has anyone had any experience altering the porch/sync lengths and
> pixel clock to keep 60Hz that will sync to an LCD monitor?
>
> Thanks!

Here is a Cyclone III design that takes 4 SD and blends them on top of
1 HD signal and sends it out on DVI with the resolution you require,
and it uses the TVP410 which is available for Altera boards from
Bitec.  It requires a few things to be set it up, so if you want to
see it run or recompile you'll need instructions.   Otherwise can see
all the video timing in the project.  Its done in Quartus 8.0 and uses
all Altera IP without any HDL (no kidding), so it should be easy to
follow dataflow wise.

There's a good amount of run-time control, so you can move the PIPs
around, resize them using Nios as the controller.

The demo:
http://www.alteraforum.com/outgoing/VIP_3c120_80.zip

instructions (if you want to run it or recompile)
http://www.alteraforum.com/outgoing/demo_instructions.doc

blk

Article: 134553
Subject: MJL Cyclone Development kit and Quartus II
From: MarkAren <markaren10@yahoo.com>
Date: Sun, 17 Aug 2008 23:15:15 -0700 (PDT)
Links: << >>  << T >>  << A >>
Hi All,

I have a second hand MJL Cyclone Development kit with Altera
EP1C20F400C7 FPGA and EPM3064ATC configuration controller. The factory
supplied FLASH code is GERMS built using NIOS I.

I have successfully compiled a test file using Quartus II, V7.2. I
have also loaded and run the SRAM Object File (.SOF) file using a USB
Byte Blaster using the JTAG interface.

I am now trying to convert the .SOF into a .FLASH format for loading
into the FLASH on the development board using the GERMS debugger.

The conversion process I have used so far is
	sof2flash --input=LED.sof --output=LED.flash --offset=0x01300000

The loading process I have used is
	./Nios-run p com2 led.flash

Using GERMS (m01300000) I can confirm that the code has been
programmed into FLASH but the test code does not run.

I have been around the houses for several hours and am running out of
ideas.

Any thoughts ?

Many thanks,

Mark

Article: 134554
Subject: Re: why does inferred RAM cause synthesis times to explode?
From: rickman <gnuarm@gmail.com>
Date: Mon, 18 Aug 2008 07:06:32 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Aug 17, 8:21 pm, "KJ" <kkjenni...@sbcglobal.net> wrote:
> "andersod2" <thechrisander...@gmail.com> wrote in message
>
> news:99b1281a-a30f-4949-b6aa-bbf42c3824dc@y38g2000hsy.googlegroups.com...
>
>
>
> > KJ,
> > Thanks a lot...I think you may be right because I'm getting a lot of
> > latch warnings, but didn't understand why.  I am using inferred ram,
> > which the docs say will work the same as an explicit template
> > instantiation if I just use the typical "reg [w:x] mem[y:z];"
> > notation...do you think using a template is always the better way to
> > go?
>
> To infer memory in any device you need to follow the template for that
> device.  For FPGAs, you typically have only synchronous memory (as rickman
> and Peter have pointed out), the basic template for this type of memory, in
> VHDL is...
>
> process(clk)
> begin
>   if rising_edge(clk) then
>     if (write_enable = '1') then
>       ram(write_address) <= write_data;
>     end if;
>     read_data <= ram(read_address);
>   end if;
> end process;
>
> > In fact I lifted the code for
> > my mem module from a verilog site...
>
> Hopefully one that produces synthesizable Verilog code.
>
> > if there's a a way I can guarantee
> > that the inferred ram will be put in a block I would very much like to
> > know as I find it much easier to work with than the template.  Is that
> > a constraints thing?
>
> As I mentioned in the first post, I've found occasion where I had to add an
> attribute to the 'read_address' signal in order to get the tool to use the
> internal memory.  I would suggest:
> - Take the above snippet of code (or peruse Xilinx's website for their
> template) and get that working in Verilog.
> - Build just that module and see if it does indeed get built correctly using
> the internal memory.
> - Integrate that into your real design and rebuild and check that it also
> gets built correctly (this is the point where I found that it wasn't and
> needed the extra attribute attached to 'read_address).
> - If all else fails, open a case with Xilinx.

Please keep in mind that when looking for templates, it is not the
logic vendor who sets the standard, it is the synthesis tool vendor.
So rather than looking at the Xilinx/Altera/Lattice site, I suggest
that you look at Synplicity/Mentor... depending on your tool.

Rick

Article: 134555
Subject: Re: XMD & Ultracontroller
From: Patrick Dubois <prdubois@gmail.com>
Date: Mon, 18 Aug 2008 08:36:43 -0700 (PDT)
Links: << >>  << T >>  << A >>
On 13 ao=FBt, 23:56, Manny <mlou...@hotmail.com> wrote:
> Hi,
>
> I don't know why whenever I try to connect via XMD to a preloaded
> Ultracontroller-II design, I get the following error:
> ERROR: PowerPC405 Version UNKNOWN. The PowerPC405 Config String is Not
> Valid : 0xffffffff.
>
> I'm working with an ml403 v4fx board. I then switch back to SYS ACE
> and XMD works again, i.e. overwrite my FPGA.
>
> Another issue that I'm not sure about is the following: I'm trying to
> route a clock through one of the gpio's but can't scope anything. Is
> it to do with the DEBUGHALT method used by UC?
>
> This Ultracontroller thing has given me some fair grief already. Would
> be grateful for any insight/tip.
>
> Cheers,
> -Manny

My advice would be to avoid the Ultracontroller completely. I used the
UC-II in my master's project and would probably not use it again. The
workflow is quite different than the normal EDK flow and as a result,
you run into all kinds of problems. The UC advantages are not worth
the problems in my opinion. Xilinx seem to agree, the UC-II ref
designs have not been updated since 2005 as far as I can tell...

Patrick

Article: 134556
Subject: Re: A timing question
From: tersono <ethel.thefrog@ntlworld.com>
Date: Mon, 18 Aug 2008 17:11:49 +0100
Links: << >>  << T >>  << A >>
On Sun, 17 Aug 2008 09:49:30 +0100, "Symon" <symon_brewer@hotmail.com>
wrote:

<snip>

Thanks to one and all.

The DCM approach had occured to me.

The DDR approach I'll look into.

The comment that program is designed to calculate delays from input A
to output B, rather than between output B and output C, confirms a
vague suspicion I'd already formed.

Thanks again! 

Article: 134557
Subject: Re: why does inferred RAM cause synthesis times to explode?
From: KJ <kkjennings@sbcglobal.net>
Date: Mon, 18 Aug 2008 09:28:12 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Aug 18, 10:06=A0am, rickman <gnu...@gmail.com> wrote:
> On Aug 17, 8:21 pm, "KJ" <kkjenni...@sbcglobal.net> wrote:
>
> Please keep in mind that when looking for templates, it is not the
> logic vendor who sets the standard, it is the synthesis tool vendor.
> So rather than looking at the Xilinx/Altera/Lattice site, I suggest
> that you look at Synplicity/Mentor... depending on your tool.
>
> Rick

Good point, but in this particular instance the synthesis tool that is
being used is 'Webpack ISE' from Xilinx.

KJ

Article: 134558
Subject: More work, less posts
From: austin <austin@xilinx.com>
Date: Mon, 18 Aug 2008 10:04:52 -0700 (PDT)
Links: << >>  << T >>  << A >>
As many of you are aware,

Xilinx has had a re-organization to provide focus, and better serve
our customers.  My role has changed, and as part of that change, I no
longer will be posting here on c.a.f.

I strongly recommend that folks try our forums at:

http://forums.xilinx.com/xlnx/

where there is a healthy activity.

If you have a problem, webcase is also the best and fastest way to get
an answer (as a Xilinx customer).

If you are a student, you need to ask your professor, who then has
access to our support.

I am always available at my xilinx.com email address, and I will reply
as I am able, to help resolve any technical issues not resolved by the
above methods.

Austin Lesea

Article: 134559
Subject: Re: More work, less posts
From: dalai lamah <antonio12358@hotmail.com>
Date: Mon, 18 Aug 2008 18:19:32 GMT
Links: << >>  << T >>  << A >>
Un bel giorno austin digiṭ:

> I strongly recommend that folks try our forums at:

You should give the possibility to access the forums also with NNTP and a
news client. Web forums are disappointing.

-- 
emboliaschizoide.splinder.com

Article: 134560
Subject: Re: More work, less posts
From: John_H <newsgroup@johnhandwork.com>
Date: Mon, 18 Aug 2008 13:30:31 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Aug 18, 10:04=A0am, austin <aus...@xilinx.com> wrote:
> As many of you are aware,
>
> Xilinx has had a re-organization to provide focus, and better serve
> our customers. =A0My role has changed, and as part of that change, I no
> longer will be posting here on c.a.f.
>
<snip>
>
> Austin Lesea

I'll be in the group that misses your regular involvement here.  I
hope your new challenges give you great satisfaction and brings us -
the customers - better products.

Thanks,
- John Handwork

Article: 134561
Subject: Spartan-3AN JTAG problem
From: Lars <noreply.larthe@gmail.com>
Date: Mon, 18 Aug 2008 13:51:12 -0700 (PDT)
Links: << >>  << T >>  << A >>
Hi!
I am trying out my first S-3AN design and immediatley stumbled on a
problem when connecting the Platform Cable USB II to the JTAG port. I
had expected to find a chain of 2 devices, the FPGA and the SPI Flash,
but that was not the case. Only one device found and Impact didn't
even recognize that as a Xilinx device. Oddly enough, it did seem
report deduced values om M[2:0] and VS[2:0] that matched the setting
on the board, but I could not assign the bitfile to the device.

Most likley this is caused by some dumb error of mine, possibly even a
faulty board (an original design that is currently only in one
sample), so I do not expect to get any immediate help here, but if by
chance anyone has had a similar experiance, I might benifit from that.
Also if someone who has worked more with S-3AN can tell me what to
expect in terms of JTAG topology, that would be much appreciated. I
will do some more debugging tomorrow night and will add any findings
to this (rather meagre) post after that.

Thanks!
/Lars

P.S. Remove the obvious from my email address if you want to answer
directly. D.S.

Article: 134562
Subject: Re: why does inferred RAM cause synthesis times to explode?
From: andersod2 <thechrisanderson@gmail.com>
Date: Mon, 18 Aug 2008 14:10:29 -0700 (PDT)
Links: << >>  << T >>  << A >>


Ok, thanks much guys.  Haven't had time to work on this the last
couple of days, so will get back to it soon.  I was indeed using async
ram and had no idea that synchronous was required.  I read in one of
the xilinx docs (can't remember which) that the above declaration I
posted was all I needed for inference.  I think I will go the
instantiation route, though as that seems a bit more sure-fire.  Will
post if I have more problems with that route.


Article: 134563
Subject: Re: why does inferred RAM cause synthesis times to explode?
From: rickman <gnuarm@gmail.com>
Date: Mon, 18 Aug 2008 17:06:59 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Aug 18, 5:10 pm, andersod2 <thechrisander...@gmail.com> wrote:
> Ok, thanks much guys.  Haven't had time to work on this the last
> couple of days, so will get back to it soon.  I was indeed using async
> ram and had no idea that synchronous was required.  I read in one of
> the xilinx docs (can't remember which) that the above declaration I
> posted was all I needed for inference.  I think I will go the
> instantiation route, though as that seems a bit more sure-fire.  Will
> post if I have more problems with that route.

Keep in mind that when using instantiation it can be hard, if not
impossible to view the contents of RAM since this is a black box to
the simulator.  You will only be able to see the inputs and outputs.
If you infer the RAM, you can directly view it to see what was written
at any given time.  I expect that inferred RAM will model correctly
when performing a post-route timing simulation.

Rick

Article: 134564
Subject: Setting a control parameter in Active HDL
From: rickman <gnuarm@gmail.com>
Date: Mon, 18 Aug 2008 17:15:38 -0700 (PDT)
Links: << >>  << T >>  << A >>
I want to run some simulations where I change one controlling
parameter that selects the specifics of the test bench.  Is there a
way to do that without recompiling the source code?  It seems like
there should be an input to the simulation other than the source code
files.  I know this is available in C compiles.  A define value can be
set from the command line.

I looked in the Active HDL help file, but unless you know what you are
looking for and what it is called, their search is hard to use.

Rick

Article: 134565
Subject: Re: More work, less posts
From: David Brown <david@westcontrol.removethisbit.com>
Date: Tue, 19 Aug 2008 08:51:26 +0200
Links: << >>  << T >>  << A >>
austin wrote:
> As many of you are aware,
> 
> Xilinx has had a re-organization to provide focus, and better serve
> our customers.  My role has changed, and as part of that change, I no
> longer will be posting here on c.a.f.
> 
> I strongly recommend that folks try our forums at:
> 
> http://forums.xilinx.com/xlnx/
> 
> where there is a healthy activity.
> 
> If you have a problem, webcase is also the best and fastest way to get
> an answer (as a Xilinx customer).
> 
> If you are a student, you need to ask your professor, who then has
> access to our support.
> 
> I am always available at my xilinx.com email address, and I will reply
> as I am able, to help resolve any technical issues not resolved by the
> above methods.
> 
> Austin Lesea

I do very little work with FPGAs, and none at all with Xilinx (I work 
mostly with microcontrollers), and seldom post here.  But I will miss 
your input in this group - it is often precisely because I *don't* work 
with you parts that it is useful other ideas and opinions.  Altera are 
sadly underrepresented in this group because they aim more for web 
forums - I would prefer a greater mix (even if it means more "my FPGA is 
bigger than your FPGA" threads - they can be informative and 
entertaining if they can keep a polite tone), not more specialisation.

mvh.,

David

Article: 134566
Subject: Re: why does inferred RAM cause synthesis times to explode?
From: Martin Thompson <martin.j.thompson@trw.com>
Date: Tue, 19 Aug 2008 09:31:57 +0100
Links: << >>  << T >>  << A >>
rickman <gnuarm@gmail.com> writes:

> On Aug 18, 5:10 pm, andersod2 <thechrisander...@gmail.com> wrote:
>> Ok, thanks much guys.  Haven't had time to work on this the last
>> couple of days, so will get back to it soon.  I was indeed using async
>> ram and had no idea that synchronous was required.  I read in one of
>> the xilinx docs (can't remember which) that the above declaration I
>> posted was all I needed for inference.  I think I will go the
>> instantiation route, though as that seems a bit more sure-fire.  Will
>> post if I have more problems with that route.
>
> Keep in mind that when using instantiation it can be hard, if not
> impossible to view the contents of RAM since this is a black box to
> the simulator.  

Certainly the Xilinx models are not black-box to the simulaator - they
are still written in VHDL.  They can be a bit cryptic for the user,
especially if you've instantiated (or coregen'ed) a set of RAMs, one
for each data bit, but the info is all there.

Having said that, I haven't had the need to instantiate a RAM, except
in the case of a dual-port RAM with two different clocks, which my
current synth tools can't infer.

<snip>

Cheers,
Martin
-- 
martin.j.thompson@trw.com 
TRW Conekt - Consultancy in Engineering, Knowledge and Technology
http://www.conekt.net/electronics.html

Article: 134567
Subject: Re: why does inferred RAM cause synthesis times to explode?
From: Jonathan Bromley <jonathan.bromley@MYCOMPANY.com>
Date: Tue, 19 Aug 2008 10:15:50 +0100
Links: << >>  << T >>  << A >>
On Tue, 19 Aug 2008 09:31:57 +0100, Martin Thompson wrote:

>Having said that, I haven't had the need to instantiate a RAM, except
>in the case of a dual-port RAM with two different clocks, which my
>current synth tools can't infer.

Hmmmm....  I've been playing with a cache design that needs
rather wide data words.  I decided I could get 72-bit wide
single-port memory out of just one BlockRAM by using both
ports simultaneously, with addresses that were identical
save for just one bit that was tied to 0 on one port and
tied to 1 on the other.  

I wrote a nice inference model...

Two major synth tools correctly inferred the memory as 
a write-first BlockRAM, but inferred two distinct RAM
blocks instead of using both ports, thereby wasting 
half of each block.

ISE 8.2 (yeah, I know it's ancient, but I haven't got
around to installing anything newer yet) just locked-up
with 100% CPU usage, presumably because it failed to 
infer the RAM from my description and was trying to
build a gazillion registers instead.  Must go look up
the correct inference templates for XST :-)

Does anyone know how to pull this double-width/single-port
trick without using instantiation?
-- 
Jonathan Bromley, Consultant

DOULOS - Developing Design Know-how
VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services

Doulos Ltd., 22 Market Place, Ringwood, BH24 1AW, UK
jonathan.bromley@MYCOMPANY.com
http://www.MYCOMPANY.com

The contents of this message may contain personal views which 
are not the views of Doulos Ltd., unless specifically stated.

Article: 134568
Subject: Re: why does inferred RAM cause synthesis times to explode?
From: andersod2 <thechrisanderson@gmail.com>
Date: Tue, 19 Aug 2008 02:51:16 -0700 (PDT)
Links: << >>  << T >>  << A >>


was actually trying something very similar myself...perhaps same
problem...that's why I'm going for instantiation for now...tell me if
you find a good inference model...


Article: 134569
Subject: Re: why does inferred RAM cause synthesis times to explode?
From: Jonathan Bromley <jonathan.bromley@MYCOMPANY.com>
Date: Tue, 19 Aug 2008 12:03:09 +0100
Links: << >>  << T >>  << A >>
On Tue, 19 Aug 2008 10:15:50 +0100, Jonathan Bromley wrote:

>ISE 8.2 (yeah, I know it's ancient, but I haven't got
>around to installing anything newer yet) just locked-up
>with 100% CPU usage, presumably because it failed to 
>infer the RAM from my description and was trying to
>build a gazillion registers instead.  Must go look up
>the correct inference templates for XST :-)

Ahah! Got it...

XST User Guide is a bit woolly about Verilog 
RAM inference. It turns out that this form is OK:

  always @(posedge clock)
    if (enable) begin
      if (write) begin
        mem[address] <= write_data;
        read_data <= write_data ;
      end else begin
        read_data <= mem[address];
      end
    end

but this form is not - it hangs XST:

  always @(posedge clock)
    if (enable) begin
      if (write) begin
        mem[address] = write_data;
      end
      read_data <= mem[address];
    end

Despite what it says in the XST user guide, it seems 
that the same story applies in VHDL: the memory store
must be a signal.

Have I missed something?
-- 
Jonathan Bromley, Consultant

DOULOS - Developing Design Know-how
VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services

Doulos Ltd., 22 Market Place, Ringwood, BH24 1AW, UK
jonathan.bromley@MYCOMPANY.com
http://www.MYCOMPANY.com

The contents of this message may contain personal views which 
are not the views of Doulos Ltd., unless specifically stated.

Article: 134570
Subject: Re: More work, less posts
From: morphiend <morphiend@gmail.com>
Date: Tue, 19 Aug 2008 05:25:49 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Aug 18, 1:04=A0pm, austin <aus...@xilinx.com> wrote:
> I strongly recommend that folks try our forums at:
>
> http://forums.xilinx.com/xlnx/
>
> where there is a healthy activity.

By many people just looking for someone to do their work. At its re-
birth, it was filled with a decent amount of people honestly posting
about questions and problems. Now it has turned into a haven for those
who don't even take the time to read the names of the buttons on the
GUIs. They just so happened to get something from somewhere and then
they wonder why it doesn't work. </rant>

I actually stopped browsing through it a few months back because of
the deluge of questions that either were barely comprehensible or just
down right looking for someone to fix their stuff. I have since
started reading it again, but am still a little underwhelmed.

I will definitely miss you here on caf. I still look forward to
reading your "blog" posts on the forums.

-- Mike

Article: 134571
Subject: Re: why does inferred RAM cause synthesis times to explode?
From: rickman <gnuarm@gmail.com>
Date: Tue, 19 Aug 2008 06:03:36 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Aug 19, 5:15 am, Jonathan Bromley <jonathan.brom...@MYCOMPANY.com>
wrote:
> On Tue, 19 Aug 2008 09:31:57 +0100, Martin Thompson wrote:
> >Having said that, I haven't had the need to instantiate a RAM, except
> >in the case of a dual-port RAM with two different clocks, which my
> >current synth tools can't infer.
>
> Hmmmm....  I've been playing with a cache design that needs
> rather wide data words.  I decided I could get 72-bit wide
> single-port memory out of just one BlockRAM by using both
> ports simultaneously, with addresses that were identical
> save for just one bit that was tied to 0 on one port and
> tied to 1 on the other.
>
> I wrote a nice inference model...
>
> Two major synth tools correctly inferred the memory as
> a write-first BlockRAM, but inferred two distinct RAM
> blocks instead of using both ports, thereby wasting
> half of each block.
>
> ISE 8.2 (yeah, I know it's ancient, but I haven't got
> around to installing anything newer yet) just locked-up
> with 100% CPU usage, presumably because it failed to
> infer the RAM from my description and was trying to
> build a gazillion registers instead.  Must go look up
> the correct inference templates for XST :-)
>
> Does anyone know how to pull this double-width/single-port
> trick without using instantiation?

I don't know for sure, but I expect you can make it work by inferring
a standard dual port memory where both ports access the same address
space.  I expect the vendors have a template for that.  Then just feed
the two addresses with the high bit set or clear depending on the
port.  The source you show below may infer memory, but it is single
port.  I don't see any reason to expect the tools to be able to
recognize that you are using half of two memories and they can combine
them into one dual port memory.

Rick

Article: 134572
Subject: Re: why does inferred RAM cause synthesis times to explode?
From: rickman <gnuarm@gmail.com>
Date: Tue, 19 Aug 2008 06:20:51 -0700 (PDT)
Links: << >>  << T >>  << A >>

  always @(posedge clock)
    if (enable1) begin
      if (write1) begin
        mem[address1] <= write_data1;
        read_data1 <= write_data1 ;
      end else begin
        read_data1 <= mem[address1];
      end
    end
    if (enable2) begin
      if (write2) begin
        mem[address2] <= write_data2;
        read_data2 <= write_data2 ;
      end else begin
        read_data2 <= mem[address2];
      end
    end


How about this as a dual port memory?

Rick

Article: 134573
Subject: Re: why does inferred RAM cause synthesis times to explode?
From: Jonathan Bromley <jonathan.bromley@MYCOMPANY.com>
Date: Tue, 19 Aug 2008 15:22:51 +0100
Links: << >>  << T >>  << A >>
On Tue, 19 Aug 2008 06:20:51 -0700 (PDT), rickman wrote:

>
>  always @(posedge clock)
>    if (enable1) begin
>      if (write1) begin
>        mem[address1] <= write_data1;
>        read_data1 <= write_data1 ;
>      end else begin
>        read_data1 <= mem[address1];
>      end
>    end
>    if (enable2) begin
>      if (write2) begin
>        mem[address2] <= write_data2;
>        read_data2 <= write_data2 ;
>      end else begin
>        read_data2 <= mem[address2];
>      end
>    end
>
>
>How about this as a dual port memory?

It's a fine model, but I can't find a synth tool that
will infer DP memory when both ports can write.

If only one of the two ports has write, it's OK.
-- 
Jonathan Bromley, Consultant

DOULOS - Developing Design Know-how
VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services

Doulos Ltd., 22 Market Place, Ringwood, BH24 1AW, UK
jonathan.bromley@MYCOMPANY.com
http://www.MYCOMPANY.com

The contents of this message may contain personal views which 
are not the views of Doulos Ltd., unless specifically stated.

Article: 134574
Subject: Re: altera cyclone3 vertical migration
From: "Nial Stewart" <nial*REMOVE_THIS*@nialstewartdevelopments.co.uk>
Date: Tue, 19 Aug 2008 16:44:03 +0100
Links: << >>  << T >>  << A >>
> Hi,
> How does the vertical migration, using different parts with the same package work with the altera 
> cyclone 3 devices?  For the EP3C40 and
> EP3C16 parts in the FBGA464 packages, pin D7 is gnd on the 16K part,
> and D7 is diffio on the 40K part.  Also some gnd pins on the 40K part
> are I/O on the 16K part.  So to design a PCB that can work with both of
> these parts alot of extra I/O will have to be grounded I guess?
> cheers,
> Jamie

Jamie,

Be careful here the documentation's not that clear, you could easily get
your fingers burnt with this migration.

We discovered that the vref's change position between the different
devices that are supposed to be 'easily' migrate-able. It took a
big spreadsheet cross-referencing the three parts (we wanted to
be able to use the '55 too) to get a pinout that was compatable.



Nial.





Site Home   Archive Home   FAQ Home   How to search the Archive   How to Navigate the Archive   
Compare FPGA features and resources   

Threads starting:
1994JulAugSepOctNovDec1994
1995JanFebMarAprMayJunJulAugSepOctNovDec1995
1996JanFebMarAprMayJunJulAugSepOctNovDec1996
1997JanFebMarAprMayJunJulAugSepOctNovDec1997
1998JanFebMarAprMayJunJulAugSepOctNovDec1998
1999JanFebMarAprMayJunJulAugSepOctNovDec1999
2000JanFebMarAprMayJunJulAugSepOctNovDec2000
2001JanFebMarAprMayJunJulAugSepOctNovDec2001
2002JanFebMarAprMayJunJulAugSepOctNovDec2002
2003JanFebMarAprMayJunJulAugSepOctNovDec2003
2004JanFebMarAprMayJunJulAugSepOctNovDec2004
2005JanFebMarAprMayJunJulAugSepOctNovDec2005
2006JanFebMarAprMayJunJulAugSepOctNovDec2006
2007JanFebMarAprMayJunJulAugSepOctNovDec2007
2008JanFebMarAprMayJunJulAugSepOctNovDec2008
2009JanFebMarAprMayJunJulAugSepOctNovDec2009
2010JanFebMarAprMayJunJulAugSepOctNovDec2010
2011JanFebMarAprMayJunJulAugSepOctNovDec2011
2012JanFebMarAprMayJunJulAugSepOctNovDec2012
2013JanFebMarAprMayJunJulAugSepOctNovDec2013
2014JanFebMarAprMayJunJulAugSepOctNovDec2014
2015JanFebMarAprMayJunJulAugSepOctNovDec2015
2016JanFebMarAprMayJunJulAugSepOctNovDec2016
2017JanFebMarAprMayJunJulAugSepOctNovDec2017
2018JanFebMarAprMayJunJulAugSepOctNovDec2018
2019JanFebMarAprMayJunJulAugSepOctNovDec2019
2020JanFebMarAprMay2020

Authors:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Custom Search