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 76850

Article: 76850
Subject: Re: Xilinx S3 late arriving DCM clkin
From: "Brad Smallridge" <bradsmallridge@dslextreme.com>
Date: Tue, 14 Dec 2004 09:44:18 -0800
Links: << >>  << T >>  << A >>
I can see where this approach can lead to a better powerup because the shift 
register will keep the DCM in reset until a few clock pulses arrive and 
pushes the reset signal off.  However, I don't see how DCM will reset if 
clkin stops, or the DCM loses lock, since the LOCKED signal will fail and 
then that will hold the RESET and keep the DCM in permanent reset.  The only 
thing that makes sense to me is to have the LOCKED fail signal start a 
counter, clocked by clkin, to generate a periodic short reset pulse that 
resets the DCM and hopefully clears the LOCKED failed condition.  My only 
concern with this approach is that the clkin signal could fail on the exact 
count or clock cycle whereby the reset pulse was being generated, and this 
again would generate a situation where the DCM was bieing held in a 
permanent reset condition, hmmm, on second thought, I suppose that having 
the DCM in reset isn't so bad if clkin fails, it would just wait until clkin 
reappears, so I think I have my answer, thanks.

> A simple inversion from LOCKED is perhaps a bit rough (I wouldn't do 
> that - and I helped design it!).  But, to read the LOCKED status bit, and 
> the CLKIN_STOPPED status bit, OR them, and then set a bit to be clocked 
> out to reset the DCM (clocked from some other clock source) is a good 
> idea.



Article: 76851
Subject: Re: Introducing MANIK - a 32 bit Soft-Core RISC Processor
From: Walter Banks <walter@bytecraft.com>
Date: Tue, 14 Dec 2004 13:23:13 -0500
Links: << >>  << T >>  << A >>

http://www.niktech.com/ReferenceGuide.pdf

http://www.niktech.com/GettingStarted.pdf

http://www.niktech.com/ReferenceGuide.pdf


Article: 76852
Subject: Re: Trying to get 4 LUTs, MUXF5, MUXF6 in Spartan-3
From: Artenz <usenet+5@ladybug.xs4all.nl>
Date: Tue, 14 Dec 2004 19:44:46 +0100
Links: << >>  << T >>  << A >>
On Mon, 13 Dec 2004 11:37:47 -0800, Chris Ebeling wrote:

>> Artenz
> 
> If you want a specific implementation, there are usually things about
> how you code a given function that can help the guide the tools to your
> intended solution.
> In this case, without the specific coding style the results are not
> optimal from an area (resource) standpoint. I will take this up the the
> synthesis folks.

Thanks. Restructuring the code like you suggest below may not always be a
viable option. For instance, if the logic is in one module, and the 4-1
mux in another (assuming this division makes sense from a design
standpoint), then you'd really want the tools to optimize this, rather
than rewrite the code in a way that makes it hard to maintain and
understand.

> Back to how do I get MUXF5/MUXF6.
> This implies eight to one multiplexing, so use a three bit select in the
> case statement.
> 
> This following will produce the LUT4/MUXF5/MUXF6 logic:
>
> module lut_test8( a, b, c, f, s );
>     input [3:0] a, b;
>     input [1:0] s;
>     input [1:0] f;
>     output c;
> 
> reg  c;
> 
> always @(a or b or f or s)
>     case({s, f[1]})
>         4'b000: c = !f[0]? (a[0] & b[0]) : (a[0] | b[0]); 
>         4'b010: c = !f[0]? (a[1] & b[1]) : (a[1] | b[1]); 
>         4'b100: c = !f[0]? (a[2] & b[2]) : (a[2] | b[2]); 
>         4'b110: c = !f[0]? (a[3] & b[3]) : (a[3] | b[3]);
> 
>         4'b001: c = !f[0]? (a[0] ^ b[0]) : (a[0] & ~b[0]); 
>         4'b011: c = !f[0]? (a[1] ^ b[1]) : (a[1] & ~b[1]); 
>         4'b101: c = !f[0]? (a[2] ^ b[2]) : (a[2] & ~b[2]); 
>         4'b111: c = !f[0]? (a[3] ^ b[3]) : (a[3] & ~b[3]);
>     endcase
> 
> endmodule

I may not always want to rewrite the code like this, but at least it's
good to know how it can be done, and perhaps apply this where it doesn't
hurt the readability too much and/or if performance is critical.

Thanks for your help.

Article: 76853
Subject: Re: Linking FPGAs with RocketIOs
From: Petter Gustad <newsmailcomp6@gustad.com>
Date: 14 Dec 2004 21:17:52 +0100
Links: << >>  << T >>  << A >>
Sean Durkin <smd@despammed.com> writes:

> This makes vias in the signal path unavoidable, something I'd rather
> not do if it can be avoided somehow. Any tips or tricks for this?

Swap the differential pairs and to polarity inversion on the receiver.

Petter
-- 
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

Article: 76854
Subject: Re: Need help with CUPL
From: Jim Granville <no.spam@designtools.co.nz>
Date: Wed, 15 Dec 2004 09:23:44 +1300
Links: << >>  << T >>  << A >>
Jim Brain wrote:
> I have tried reading up on CUPL for a CPLD project, but I have been less 
> than successful.  Is there a good tutorial on some of the advanced CUPL 
> stuff?
> 
> In my case, I have some combinatorial logic (CE_OUT=CE_IN & !A7 & !A6 & 
> !A5 & !A4 & !A3), and I grok that pretty well.
> 
> But, in my design, I need to implement a read/write register, and I 
> can't find a good example in CUPL to implement it.  The Data lines need 
> to be HiZ unless the register is being accessed, and if it is, lines go 
> to latch input if Write, lines go to latch output if read.
> 
> Examples would be fine, or just links to a good tutorial that would show 
> a register would be perfect.

These for Atmel devices - this for a HC574 Octal D type device :

[DB7..DB0].oe = !RDN;
    /* Enable on READ LOW => read back Latch contents */

[DB7..DB0].ck = WRN;   /* Latch on the trailing edge of WRN ___/=== */

[DB7..DB0].d  = [DB7..DB0].io; /* D feeds from BUS io pins */


Also, some Atmel devices support this: - equiv to a HC573 Latch device

[DB7..DB0].LE = !WRN;   /* Latch transparent during WRN LOW */

[DB7..DB0].L  = [DB7..DB0].io; /* D feeds from BUS io pins */

-jg


Article: 76855
Subject: altera cyclone and fifo synchronisation
From: GL <a@b.c>
Date: Tue, 14 Dec 2004 22:18:46 +0100
Links: << >>  << T >>  << A >>
I'm using quartus 4.2, and create some fifo with the mega wizard.
on one side, synchronous data are writen at 27 MHz (from external 
pins), and on the other side, I'm reading the data with a 80 MHz clock 
(to my design).

The design assistant give me the following warnings :

Data bits are not synchronized when transferred between asynchronous 
clock domains
Multiple data bits that are transferred across asynchronous clock 
domains are synchronized, but not all bits may be aligned in receiving 
clock domain

my fifos are :
       - without common clock between read and write side
       - the clocks are not synchronized
       - in legacy synchronous mode
       - perfomance are not maximized


What should I do ?

-- 
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net


Article: 76856
Subject: Re: Cyclone device misteriously overheats
From: "Alex Somesan" <alex.somesan@gmail.com>
Date: 14 Dec 2004 14:19:41 -0800
Links: << >>  << T >>  << A >>
Stupid me!
You were right!
I cut the PCB traces of the VCCINT pins off the 3V3 rail and straped
them to 1V5 - works perfectly! No heat, no config mess-up. Thanks for
the advice. I guess it was obvious to the experinces guys out there. I
slaped myself a few times after carefully looking over the datasheet. I
guess now I have to clean up my reputation :).
Thanks for helping!

Alex.


Article: 76857
Subject: Xilinx speed grading
From: "Craig Conway" <usemyfirstname.usemylastname@ni.getridofthis.com>
Date: Tue, 14 Dec 2004 16:28:19 -0600
Links: << >>  << T >>  << A >>
  I'm trying to determine the delay curve of a particular path in a 
Virtex2Pro -5 from min timing to max, including all points in between. 
Obviously I can get the two end points (min and max) from the timing 
analyzer, but I assume that points between the two don't necessarily fall on 
a straight line.  I considered also plotting the max timing of the other 
speed grades (-7 and -6), but I don't know what their relationship to each 
other is, so I wouldn't know exactly where to plot them relative to the -5 
max endpoint.

  If anyone knows where performance graphs might exist in the Xilinx 
documenation, or what the relationship of speed grades to each other is, I'd 
be most appreciative of a response.

  Thanks! 



Article: 76858
Subject: Re: Cyclone device misteriously overheats
From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Date: Tue, 14 Dec 2004 15:01:44 -0800
Links: << >>  << T >>  << A >>


Alex Somesan wrote:
(snip)

> I cut the PCB traces of the VCCINT pins off the 3V3 rail and straped
> them to 1V5 - works perfectly! No heat, no config mess-up. Thanks for
> the advice. I guess it was obvious to the experinces guys out there. I
> slaped myself a few times after carefully looking over the datasheet. I
> guess now I have to clean up my reputation :).

And now we all know how tough Cyclone is with excess VccINT.

-- glen


Article: 76859
Subject: Re: Cyclone device misteriously overheats
From: Al Clark <dsp@danvillesignal.com>
Date: Wed, 15 Dec 2004 00:08:32 GMT
Links: << >>  << T >>  << A >>
glen herrmannsfeldt <gah@ugcs.caltech.edu> wrote in news:cpnrgj$qv$1
@gnus01.u.washington.edu:

> 
> 
> Alex Somesan wrote:
> (snip)
> 
>> I cut the PCB traces of the VCCINT pins off the 3V3 rail and straped
>> them to 1V5 - works perfectly! No heat, no config mess-up. Thanks for
>> the advice. I guess it was obvious to the experinces guys out there. I
>> slaped myself a few times after carefully looking over the datasheet. I
>> guess now I have to clean up my reputation :).
> 
> And now we all know how tough Cyclone is with excess VccINT.
> 
> -- glen
> 

Alex,

Don't let us "old timers" give you too much crap. We've all made this 
mistake in one form or another. It called experience.

-- 
Al Clark
Danville Signal Processing, Inc.
--------------------------------------------------------------------
Purveyors of Fine DSP Hardware and other Cool Stuff
Available at http://www.danvillesignal.com

Article: 76860
Subject: Re: altera DDR core simulation with NCSim
From: sdatta@altera.com
Date: 14 Dec 2004 16:32:45 -0800
Links: << >>  << T >>  << A >>
Hi Jan,

The construct written out in the vho netlist by Quartus was illegal,
and that is the reason for the message. This bug exists in Quartus II
4.0, 4.1 and 4.2. In each of these versions, you can workaround this in
one of two ways: The first described in the earlier post which is to
use Assignments->EDA Settings->Simulation, turn Map Illegal Characters
to on, OR the second which is Assignments->EDA
Settings->SimulationMaintain Hierarchy to off.

This bug will be fixed in Quartus II version 5.0.

> >>I think that the _\ construction is illegal but to be honnest: I've
no
> >>desire to dig in the vhdl reference to see who is right, Cadence
and
> >>Synopsys versus Altera.
> > 
> > 
> >

Hope this helps,
Subroto Datta
Altera Corp.


Article: 76861
Subject: Re: PLLs on biphase mark signals
From: "Adam" <1@1.com>
Date: Wed, 15 Dec 2004 00:55:34 GMT
Links: << >>  << T >>  << A >>
Thanks to the responses.  I'm gonna have a go at it on my own first and see
what I come up with.



Article: 76862
Subject: Re: Xilinx speed grading
From: "Peter" <peter@xilinx.com>
Date: 14 Dec 2004 17:07:38 -0800
Links: << >>  << T >>  << A >>
Craig, remember that "speed grades" are an artificial way of
segregating devices that are naturally made with a continuum of
performance parameters. To accomodate the unavoidable manufacturing
spread, IC manufacturers sort the devices into bins, so that they can
guarantee performance, but also sell the devices that came out slow or
"not so fast".
In a perfect world, all parameters would scale perfectly, i.e. a device
marked slow would have all its delays longer by the same factor, as
compared to the devices labeled fast.
The world is not perfect.
The only thing you can be sure of is that you will never buy a part
that is slower than its specification.
All parameters will be better than the spec, but not all by the same
percentage.
Let me therefore discourage you from your elaborate plans. There is no
simple answer.
Peter Alfke
==============================
Craig Conway wrote:
> I'm trying to determine the delay curve of a particular path in a
> Virtex2Pro -5 from min timing to max, including all points in
between.
> Obviously I can get the two end points (min and max) from the timing
> analyzer, but I assume that points between the two don't necessarily
fall on
> a straight line.  I considered also plotting the max timing of the
other
> speed grades (-7 and -6), but I don't know what their relationship to
each
> other is, so I wouldn't know exactly where to plot them relative to
the -5
> max endpoint.
>
>   If anyone knows where performance graphs might exist in the Xilinx
> documenation, or what the relationship of speed grades to each other
is, I'd 
> be most appreciative of a response.
> 
>   Thanks!


Article: 76863
Subject: Re: Xilinx S3 late arriving DCM clkin
From: "Brad Smallridge" <bradsmallridge@dslextreme.com>
Date: Tue, 14 Dec 2004 17:27:47 -0800
Links: << >>  << T >>  << A >>
Works great, heres the code:

-- coregen dcm
component dcm port(
 rst_in       : in  std_logic;
 clkin_in     : in  std_logic;
 locked_out   : out std_logic;
 clkfx_out    : out std_logic;
 clkfx180_out : out std_logic;
 clk0_out     : out std_logic);
end component;

-- coregen  20 bit binary counter with threshold0
component bc20
port (
  q         : out std_logic_vector(19 downto 0);
  clk       : in std_logic;
  q_thresh0 : out std_logic);
end component;

begin

 inst_dcm: dcm port map(
   rst_in       => dcm_reset,
   clkin_in     => oscin,
   locked_out   => dcm_lock,
   clkfx_out    => clk,
   clkfx180_out => sramclk,
   clk0_out     => open );

dcm_reset_counter : bc20
port map (
  q => open,
  clk => oscin,
  q_thresh0 => reset_cnt_pulse);

 dcm_reset <= reset_cnt_pulse and (not dcm_lock);
 -- Do a periodic reset pulse if no dcm lock is available
 -- The reset_cnt_pulse comes from a 20 bit counter threshold.
 -- It's a one 20ns pulse with a 20mS period @50MHz oscin frequency.
 -- This is twice the time needed for a 10mS LOCK.
 -- The counter clocks on oscin input, not the dcm output clk.

-- scope <= reset_cnt_pulse; -- testing purposes
 -- should trigger but not be seen on scope
 -- because of tiny duty cycle

 reset_process:process (dcm_lock,resetpushbutton)
 begin
   reset  <= not (dcm_lock and resetpushbutton);
 end process;

Enjoy,

Brad Smallridge
b r a d @ a i v i s i o n . c o m 



Article: 76864
Subject: Re: Cylone Problem with Large Shift Register
From: "Peter" <peter@xilinx.com>
Date: 14 Dec 2004 17:39:48 -0800
Links: << >>  << T >>  << A >>
It's amazing how everything can become a Xilinx vs Altera battle.
It seems to me that the original posting was not really looking for the
most compact solution. Both Altera and Xilinx can of course provide
RAM-based shift registers, and as long as you stay below 16K length,
the A and X solutions are indistinguishable.

But let me fix one bad misstatement:
It does of course take  45 SRL16s to implement a 720 bit shift
register, but these 45 SRL16s fit in lessthan six CLBs, since there are
eight LUTs in a CLB.
That takes less silicon area than any big RAM in either Altera or
Xilinx chips...

Peter Alfke


Article: 76865
Subject: Re: Cyclone device misteriously overheats
From: "Jeroen" <jayjay.1974@xs4all.nl>
Date: Wed, 15 Dec 2004 02:54:06 +0100
Links: << >>  << T >>  << A >>

"Alex Somesan" <alex.somesan@gmail.com> wrote in message
news:1103050426.348763.286140@z14g2000cwz.googlegroups.com...
> Stupid me!
> You were right!
> I cut the PCB traces of the VCCINT pins off the 3V3 rail and straped
> them to 1V5 - works perfectly! No heat, no config mess-up. Thanks for
> the advice. I guess it was obvious to the experinces guys out there. I
> slaped myself a few times after carefully looking over the datasheet. I
> guess now I have to clean up my reputation :).
> Thanks for helping!
>
> Alex.
>

Good to hear it's working now. Luckily it's only a cheap easily replacable
Cyclone and not a Stratix housed in a 1508 pin FBGA package that's worth
several  thousand $ :)

Jeroen



Article: 76866
Subject: algorithm: square operation
From: fwj_733 <fwj@nmrs.ac.cn>
Date: Tue, 14 Dec 2004 18:04:15 -0800
Links: << >>  << T >>  << A >>
There is a lot of square operations in my FPGA projects (using Xilinx VitexE). Now, I complete them by multiple, but this method is slice consuming and slow. As we know, square operation has many characters, which multiple operation of any random numberic don' have, then could we utilize these features to calculate square operations more economical and more fast? Thanks for all advice. Best Regards

Article: 76867
Subject: Re: altera cyclone and fifo synchronisation
From: "Peter" <peter@xilinx.com>
Date: 14 Dec 2004 18:04:40 -0800
Links: << >>  << T >>  << A >>
GL, you have every right to expect your design to work.
Any FIFO worth its name must accomodate two unrelated clock domains,
one for reading, one for writing. That is actually quite trivial,using
a dual-port RAM for the data storage.
What is not so trivial is the reliable detection of FULL and EMPTY.
I work at Altera's competitor, but I do assume that Cyclone can handle
your requirements.
Otherwise: Welcome to the end of the alphabet...
I just tested our newest FIFO at roughly 500 and 200 MHz asynchronous
reads and writes, going EMPTY 200 million times a second, for a whole
week, with not a single decoding and control error.
So it can be done...
Peter Alfke, Xilinx Applications
========================
GL wrote:
> I'm using quartus 4.2, and create some fifo with the mega wizard.
> on one side, synchronous data are writen at 27 MHz (from external
> pins), and on the other side, I'm reading the data with a 80 MHz
clock
> (to my design).
>
> The design assistant give me the following warnings :
>
> Data bits are not synchronized when transferred between asynchronous
> clock domains
> Multiple data bits that are transferred across asynchronous clock
> domains are synchronized, but not all bits may be aligned in
receiving
> clock domain
>
> my fifos are :
>        - without common clock between read and write side
>        - the clocks are not synchronized
>        - in legacy synchronous mode
>        - perfomance are not maximized
>
>
> What should I do ?
>
> --
> Ceci est une signature automatique de MesNews.
> Site : http://www.mesnews.net


Article: 76868
Subject: Re: algorithm: square operation
From: ben@ben.com (Ben Jackson)
Date: Wed, 15 Dec 2004 03:47:01 GMT
Links: << >>  << T >>  << A >>
In article <ee8aa81.-1@webx.sUN8CHnE>, fwj_733  <fwj@nmrs.ac.cn> wrote:
>There is a lot of square operations in my FPGA projects (using Xilinx
>VitexE).

There may be shortcuts if you need a series of squares, for example.
You can compute that as

	sq = 0;
	for (i = 1; i < n; ++i) {
		sq = sq + (i << 1) - 1;
		// i * i == sq
	}

-- 
Ben Jackson
<ben@ben.com>
http://www.ben.com/

Article: 76869
Subject: Virtex2 I/O standards
From: "gja" <geeja.ats.at@att.net>
Date: Tue, 14 Dec 2004 23:21:48 -0500
Links: << >>  << T >>  << A >>
For Virtex II parts, I see that the Vih and Vil levels are the same for 
LVTTL and LVCMOS33, my question is are the input structures really different 
or are they the same for the two standards.  Also, are the output structures 
for LVTTL the same as LVCMOS33, since both Vol are the same, and LVTTL Voh 
is a subset of LVCMOS33 Voh. 



Article: 76870
Subject: Re: altera cyclone and fifo synchronisation
From: "Vaughn Betz" <no_spam@altera.com>
Date: Tue, 14 Dec 2004 23:40:28 -0500
Links: << >>  << T >>  << A >>
GL,

Your design sounds OK to me, but it's hard to be sure without seeing it.
Using FIFOs to transfer data between asynchronous clock domains is of course
standard usage, so the Quartus megawizard FIFOs will work fine for that.

I suspect we have an overzealous warning in the Design Assistant.  The
warning you're getting is that when you transfer a data word (that is wider
than 1 bit), you have to be careful that all the bits arrive in the same
cycle in the receiving clock domain.  A FIFO will take care of that.

If you send me your design, I'll open a software problem report on it, get
someone to check that the design analyzer isn't being too overcautious, and
if it is we'll fix this case.

Regards,

Vaughn Betz
Altera
v b e t z (at) altera.com [Remove spaces and add @ to reach me]



"GL" <a@b.c> wrote in message news:mn.753a7d4ca170b3de.23732@b.c...
> I'm using quartus 4.2, and create some fifo with the mega wizard.
> on one side, synchronous data are writen at 27 MHz (from external
> pins), and on the other side, I'm reading the data with a 80 MHz clock
> (to my design).
>
> The design assistant give me the following warnings :
>
> Data bits are not synchronized when transferred between asynchronous
> clock domains
> Multiple data bits that are transferred across asynchronous clock
> domains are synchronized, but not all bits may be aligned in receiving
> clock domain
>
> my fifos are :
>        - without common clock between read and write side
>        - the clocks are not synchronized
>        - in legacy synchronous mode
>        - perfomance are not maximized
>
>
> What should I do ?
>
> --
> Ceci est une signature automatique de MesNews.
> Site : http://www.mesnews.net
>



Article: 76871
Subject: Re: Cylone Problem with Large Shift Register
From: "Vaughn Betz" <no_spam@altera.com>
Date: Wed, 15 Dec 2004 00:01:06 -0500
Links: << >>  << T >>  << A >>
> It's amazing how everything can become a Xilinx vs Altera battle.
> It seems to me that the original posting was not really looking for the
> most compact solution.

Peter,

If you check my post, you will see that I was replying to the poster's
question of whether or not Altera was at a disadvantage on shift registers
vs. Xilinx.

> Both Altera and Xilinx can of course provide
> RAM-based shift registers, and as long as you stay below 16K length,
> the A and X solutions are indistinguishable.

The area of a Xilinx BlockRAM (18 kbit RAM) is of course a lot larger than
that of either an Altera M512 RAM (576 bits) or an Altera M4K RAM (4.5
kbit).  All the extra RAM area beyond what the shift register needs is
wasted, so having a variety of RAM sizes and a lot of smaller RAMs makes for
a more efficient FIFO mapping of shift registers than having only a
relatively small nuber of BlockRAMs of one size.  Now, of course Xilinx has
the SRL16's to implement smaller shift registers, so it's less crucial to
have small RAMs around to build FIFOs for moderate size shift registers.
The solutions are different, and you can argue about which is better, but
they are certainly not indistinguisable.

> But let me fix one bad misstatement:
> It does of course take  45 SRL16s to implement a 720 bit shift
> register, but these 45 SRL16s fit in lessthan six CLBs, since there are
> eight LUTs in a CLB.
> That takes less silicon area than any big RAM in either Altera or
> Xilinx chips...

An M4K RAM also takes less area than 6 CLBs, and can do a significantly
bigger shift register than 720 bits.  An M512 can't quite do 720 bits, (can
do 512 bit shifts) and has an area that's somewhere in the 1 to 2 CLB range.
So I don't agree with your argument that area is lower for SRL16's for this
case.

Vaughn Betz
Altera
v b e t z (at) altera.com [Remove spaces and put in proper @ to reach me]

"Peter" <peter@xilinx.com> wrote in message
news:1103074788.884558.87760@f14g2000cwb.googlegroups.com...
> It's amazing how everything can become a Xilinx vs Altera battle.
> It seems to me that the original posting was not really looking for the
> most compact solution. Both Altera and Xilinx can of course provide
> RAM-based shift registers, and as long as you stay below 16K length,
> the A and X solutions are indistinguishable.
>
> But let me fix one bad misstatement:
> It does of course take  45 SRL16s to implement a 720 bit shift
> register, but these 45 SRL16s fit in lessthan six CLBs, since there are
> eight LUTs in a CLB.
> That takes less silicon area than any big RAM in either Altera or
> Xilinx chips...
>
> Peter Alfke
>



Article: 76872
Subject: Is it me or quartus ?
From: "Fred Bartoli" <fred._canxxxel_this_bartoli@RemoveThatAlso_free.fr_AndThisToo>
Date: Wed, 15 Dec 2004 08:11:14 +0100
Links: << >>  << T >>  << A >>
Hello,

I have the following code :



width = 128

architecture bhv of yy is
 function Stop_Sense ( IsSigCell, StopNextCells : std_ulogic_vector(Width-1
downto 0);
      CurrentCell : natural range 0 to Width-1;
      LookAheadDepth : natural range 1 to 16
      ) return std_ulogic is
 begin
  L1:for i in 1 to LookAheadDepth - 1 loop
   if (CurrentCell - i) >= 0 then
    if StopNextCells(CurrentCell - i) = '1' then
     return '1';
    else
     if IsSigCell(CurrentCell - i) = '1' then
      exit;
     end if;
    end if;
   end if;
  end loop;
  return '0';
 end;

signal StopNextCells : std_ulogic_vector (Width-1 downto 0);
signal StopCell  : std_ulogic_vector (Width-1 downto 0);
signal IsBoundaryCell : std_ulogic_vector (Width-1 downto 0);

begin
.
.

 StopCells: for i in 0 to Width-1 generate
  StopCell(i) <= Stop_Sense(IsBoundaryCell, StopNextCells, i, N1_max);
  end generate;

.
.
end bhv;



The function returns '1' when the StopNextCells vector contains at least a
'1' after the CurrentCell position and before the CurrentCell+LookAheadDepth
position and the first '1' in the IsSigCell vector.

Works OK in simulation, but quartus synthesize this as a simple OR on the
next N1_max StopNextCells positions which is not the intended behaviour.

What am I doing wrong in the code ?

BTW, I have 2 of these entities, plus as much of 2 other kinds of this, so I
have the equivalent of 1024 of these functions. Is there a more efficient
way to pack the logic ?


-- 
Thanks,
Fred.




Article: 76873
Subject: Re: Linking FPGAs with RocketIOs
From: Sean Durkin <smd@despammed.com>
Date: Wed, 15 Dec 2004 08:13:04 +0100
Links: << >>  << T >>  << A >>
Symon wrote:
> Sean,
> Rotate one of the FPGAs by 180 degrees.
Won't help, the TX/RX positions are exactly the same on top and bottom 
side. If I rotate one FPGA, I again have TX-pairs opposite of other 
TX-pairs, so to get to the RX-pair I have to cross signals again, same 
thing...

cu,
Sean

Article: 76874
Subject: Re: Linking FPGAs with RocketIOs
From: Sean Durkin <smd@despammed.com>
Date: Wed, 15 Dec 2004 08:24:33 +0100
Links: << >>  << T >>  << A >>
Sean Durkin wrote:
> Symon wrote:
> 
>> Sean,
>> Rotate one of the FPGAs by 180 degrees.
> 
> Won't help, the TX/RX positions are exactly the same on top and bottom 
> side. If I rotate one FPGA, I again have TX-pairs opposite of other 
> TX-pairs, so to get to the RX-pair I have to cross signals again, same 
> thing...
I take back everything I said and confess my stupidity to this 
newsgroup... have you ever had one of those days...? :)

Of course Symon was right...

cu,
Sean



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