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 58425

Article: 58425
Subject: Re: Floorplanner "features"
From: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Date: Wed, 23 Jul 2003 11:08:45 +0000 (UTC)
Links: << >>  << T >>  << A >>
Martin Euredjian <0_0_0_0_@pacbell.net> wrote:
: Working with the Floorplanner tonight (5.2, latest service pack) I had the
: pleasant experience of having the software mangle my extensive UCF file for
: no good reason.  All floorplanning constraints being used are area
: constraints except for hard locations for such things as multipliers and
: SelectRAM.

: Thankfully a culture of frequent backups saved the day (night) with a bit of
: work.

: This leads me to ask:  Are there any undocumented gotcha's I should look out
: for?

: Also, is there a way to have Floorplanner write more sensible area
: constraints?  Wildcards are allowed in the instance specification, but it
: doesn't seem to know how to use them.  So, if I want to allocate an area to
: the "input_fifo*" instance I get 100 lines of "INST" specifications instead
: of a simple:

: INST "input_fifo*" AREA_GROUP = "grp_input_fifo";

: Is there a way to convince it to do it right?


In my opinion, the concept of a single UCF file is flawed. Timing
constraints,  pin assignments and other constraints should be separated in
different files.

Bye
-- 
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

Article: 58426
Subject: Re: Floorplanner "features"
From: "Martin Euredjian" <0_0_0_0_@pacbell.net>
Date: Wed, 23 Jul 2003 11:31:31 GMT
Links: << >>  << T >>  << A >>
"Uwe Bonnes" <bon@elektron.ikp.physik.tu-darmstadt.de> wrote:

> In my opinion, the concept of a single UCF file is flawed. Timing
> constraints,  pin assignments and other constraints should be separated in
> different files.

I can agree with that.  I've also had the experience of the UCF file being
removed from the project without so much as a warning.  Of course, the first
thing that happens is that your pin assignments (I/O standards, etc.) are
gone.  Given that the tools are exceedingly happy to assign I/O as they see
fit.  If you are not awake through all of this you might just fire-up IMPACT
and send that bit stream down the extra-happy JTAG connection.  Of course,
all bets are off when the thing comes out of program mode and you might just
blow an expensive FPGA into useless silicon before you can figure out what
happened.

So, yes, I can agree with what you say.  Pin assignments should be regarded
as sacred.  And the tools should not fail if, at various stages of
development, no logic is attached to the design's I/O (I know this can be
overriden).

...at 4:20 AM some of these things cese to be funny real fast.


-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Martin Euredjian

To send private email:
0_0_0_0_@pacbell.net
where
"0_0_0_0_"  =  "martineu"





Article: 58427
Subject: Re: Clock rate increase for FEC aplications
From: ivansimoes@msn.com (Ivan)
Date: 23 Jul 2003 05:00:29 -0700
Links: << >>  << T >>  << A >>
In fact I'm using one more byte added to the DVB codeword to provide
synchronism and signalling. This system is design for a point-to-point
RF link and must be continuous, I don't know if a burst transmition
could be allowed.

Thanks

Ivan

"Kevin Neilson" <kevin_neilson@removethistextcomcast.net> wrote in message news:<eyhTa.118994$ye4.87015@sccrnsc01>...
> "Ivan" <ivansimoes@msn.com> wrote in message
> news:4746b99b.0307221230.53adc209@posting.google.com...
> > I'm design a FEC scheme using Reed-Solomon and FPGA Cyclone (Altera).
> > The input clock is 2.048MHz and the output must be (205/188)*2.048MHz
> > (~2.233191MHz). The problem is in the increase clock rate at the
> > output. The internal PLL works only whit frequencies above 15MHz and
> > the factor 205/188 can't be achieve too. I think increase rate is a
> > commom problem in channel coding application but I do not have any
> > success searching related topics on internet or on books. For example,
> > in celular a initial bit rate of 4.8kbps is increased to ~70kbps at
> > the end of coding process, and there are a lot of intermediary rates
> > (9.6kbps,32kbps etc).
> >
> > Using a external PLL was the first idea but I'd like to implement all
> > the scheme in fpga. My actual aproach is to use a digital NCO (derived
> > from a sample clock of 200MHz) with the central frequency in
> > 2.233191MHz and a loop control related with the input clock. In the
> > loop control the input clock and output clocks are conected to
> > counters, when the input counter is 188 the output counter is sampled
> > and the count value expected is 205, if it is false a new numeric
> > control is applied to the NCO to correct the frequency.
> >
> > I dont know if it can works well and if anybody have any suggestion or
> > idea I'd appreciate.
> >
> > Thanks
> >
> > Ivan
> 
> Ivan,
> Do you mean 204/188?  That's the normal RS code rate for DVB.  You can use a
> digital PLL that will track the input clock such that the NCO vector spins
> at 204/188 * input_clk, as long as you don't mind the 5ns jitter of the
> output clock.
> 
> If this is a DVB modulator, you may have successive stages that change the
> code rate (like a trellis coder) and it's best just to clock only the final
> stage at the required rate, and let each stage fetch data irregulary from
> the previous stage as it is required.
> 
> Another method is to have a fixed output clock that runs faster than the
> required rate of 204/188*input_clock.  When the input FIFO underflows, a
> null packet is transmitted while the input FIFO fills again.
> -Kevin

Article: 58428
Subject: Altera Nios 3: Using Interface To User Logic Problem
From: syevgen1@hotmail.com (Yevgeny K.)
Date: 23 Jul 2003 05:13:24 -0700
Links: << >>  << T >>  << A >>
Hi all.

I have a problem with Altera's Nios :
I've added the Interface To User Logic, which is supposed to be interface to 
the SDRAM controller/arbiter.
I'm using this interface instead of NIOSes SDRAM controller because I have
several devices that are accessing same SDRAM, and I have special arbiter for 
it. So the interface is supposed to connect NIOS to that arbiter.

When Nios writes to SDRAM, it's supposed to set the "chip_select" and "write"
bits, and supply the address and data to write. Then NIOS is supposed to wait
for the "ready" bit from the arbiter, and only then NIOS should end the 
transaction by turning off the "chip_select" bit.

The problem is that NIOS doesn't wait for that "ready" bit - it's just turning
off the "chip_select" bit, thus the transaction is concidered by the arbiter 
as aborted. 

How can I make NIOS to wait for the "ready" from the arbiter?
I think I've tryed every signal there : "dataready", "dataready_n", etc...

Or maybe there is a way to configure NIOSes SDRAM controller to support
two NIOS CPUs instead of using that external arbiter?

Has anyone tryed something like this?

Thanks in advance,
Yevgeny.

Article: 58429
Subject: Spurious Machine Check Exceptions [WAS: Re: Insight Reference Board
From: Jon Masters <jonathan@jonmasters.org>
Date: Wed, 23 Jul 2003 13:20:43 +0100
Links: << >>  << T >>  << A >>
Jon Masters wrote:

> Switching back to real mode causes a lot of problems at the moment - 
> start_kernel turns off the MMU to setup exception handlers and so on[0].
> When this happens it does the usual rfi trick to switch IR|DR off in the 
> MSR and jump to the next instruction which generates a Machine Check.

It now looks as though Machine Check is being generated every time I do 
an rfi from the point I was at but disabling MSR_ME works ok so I 
believe these Machine Check exceptions may be erroneously generated due 
to something with the hardware definition - any suggestions are welcome?

Jon.


Article: 58430
Subject: Re: Spurious Machine Check Exceptions [WAS: Re: Insight Reference
From: Jon Masters <jonathan@jonmasters.org>
Date: Wed, 23 Jul 2003 15:05:58 +0100
Links: << >>  << T >>  << A >>
Hi,

The chip revision is 20010820 which I also recently discovered has a 
nice list of errata. I especially like CPU_210 and the uTLB one.

CPU_210 issue rules out a lot of standard PowerPC atomic operation 
sequences accessing system memory while the latter affects TLBs.

Jon.


Article: 58431
Subject: Generate .mcs file
From: Erik Spaenig <erik.spaenigREMOVE@seitzinger-popp.de>
Date: Wed, 23 Jul 2003 17:06:58 +0200
Links: << >>  << T >>  << A >>
Hi at all,

how can I automaticly generate an MCS-file with the WebPack 5.2 (SP2)
on every syntheziser-run?
in the old WebPack 4.x there is a program
that does it automticly on every syntheziser-run

Thanks for help

Erik

Article: 58432
Subject: Re: inputs and outputs for clb in ISE5
From: "Avrum" <avrum@REMOVEsympatico.ca>
Date: Wed, 23 Jul 2003 11:51:21 -0400
Links: << >>  << T >>  << A >>
I think that what you are asking for is the "Ratsnest". When the ratsnest
option is turned on, the tool will display all the connections from a
selected cell (CLB or IOB), to all other cells connected by nets.

For some reason (that I never understood) there are TWO mechanisms to turn
on ratsnest view, and both of them must be on to actually see the ratsnest.
The more obvious one is the icon in the toolbar, which identifies itself as
"Toggle Rubber Bands". It is an icon with one dot on the left connected to 4
dots on the right by magenta lines. The less obvious one is done from the
menus

Edit->Preferences...
  Select the Ratsnest tab
    Check the "Display nets connected to selected logic"

With this option selected, and the Toggle Rubber Bands depressed, you will
see the ratsnest.

Avrum


"Atif" <atif@kics.edu.pk> wrote in message
news:6a0a3f23.0307230041.79dc6b08@posting.google.com...
> Hello all,
> I'm using xsa100 (xc2s100) board with registered evaluation version of
> Xilinx ISE5. I'm a newbie to this. I'm following the instructions in
> the manual "Introduction to webpack 4.1 for FPGAs" downloaded from
> http://www.xess.com/appnotes/webpack-4_1-fpga.pdf.
>
> I've written a code in Verilog for leddec (7 segment display). Then I
> follow the steps written in the manual. For the step in manual "to
> constraining the Fit", I can not find "Edit implantation constraints
> (Constraint editor)" in the "User Constraints" process to assign the
> FPGA pins to my I/Os. But I find "Assign package pins" in the "User
> constraints" of ISE5. On clicking this, it says that there is no
> Implementation constraint file. I make a new one by Project<-New
> Sourse<-Implementation constraint file and add this to current
> project. Now "Assign package pins" works. I assign the I/O signals to
> the FPGA pins as written in the manual.
>
> Everthing is allright so far. But in the step of "viewing the chip",
> when I click "view/edit Placed design (Floor planner)", it shows me
> the CLB's and Inputs and output pads.
> But inpouts and outputs are not associated with CLB's. As I click CLB,
> it should show the I/Os associated with it in shape of arrows from CLB
> to all the I/Os. But This does not happen.
>
> Can anyone please help me telling me where is the error and how to
> remove it?
>
> One more question, at each step, ISE5 gives me the warning that its an
> evaluation version. Will this warning create a problem anywhere in the
> design on loading and testing it to FPGA?
>
> Sorry for bothering such a huge textl.
>
> Regards
>
> Atif Nadeem
> Research Associate
> Al-Khawarizmi Institute of Computer Science,
> University of Engineering & Tech., Lahore
> Pakistan, 54890



Article: 58433
Subject: Re: asynchronous FIFO
From: Peter Alfke <peter@xilinx.com>
Date: Wed, 23 Jul 2003 09:01:50 -0700
Links: << >>  << T >>  << A >>
Allan, I considered that obvious. All hell breaks loose everywhere when
routing delays exceed the clock period.
Peter Alfke
===============================
Allan Herriman wrote:
> 
> On Tue, 22 Jul 2003 09:21:34 -0700, Peter Alfke <peter@xilinx.com>
> wrote:
> 
> >Yes, you have to be paranoid. But there is no problem with crossing the
> >clock domain boundary using a Grey signal.
> 
> To be more precise: there is no problem with crossing the clock domain
> boundary using a Gray signal, provided that the maximum routing skew
> is less than the period of the source clock.
> 
> Regards,
> Allan.

Article: 58434
Subject: Re: asynchronous FIFO
From: Peter Alfke <peter@xilinx.com>
Date: Wed, 23 Jul 2003 09:06:14 -0700
Links: << >>  << T >>  << A >>
Nyquist has nothing to do with this, and metastability ( with or without
exclamation marks) is not an issue when you move a Grey-coded register
value across the clock boundary.

Peter Alfke
========================
Andrew Paule wrote:
> 
> Just remember nyquist - if you forget - metastability!!!!!!!!!!
> 
> Andrew Paule
> 
>

Article: 58435
Subject: Re: FPGA Editor
From: Philip Freidin <philip@fliptronics.com>
Date: Wed, 23 Jul 2003 16:49:30 GMT
Links: << >>  << T >>  << A >>
On Wed, 23 Jul 2003 10:55:03 GMT, "Martin Euredjian" <0_0_0_0_@pacbell.net> wrote:
>"Ray Andraka" <ray@andraka.com> wrote:
>
>> The automatic placment algorithms, while better than in the past, still
>suck.  I
>> do a large amount of explicit placement using a structural hierarchy.  The
>> relative placements (in the form of RLOCs) are in the code, and these are
>built
>> up hierarchically.  Some examples of the floorplans can be seen on the
>gallery
>> page of my website (thanks Phil Freidin for that idea).
>
>Could I bother you to provide an example of how to do this?  Are you saying
>that you locate placement constraints within the HDL modules themselves?
>How exactly are they "built up hierarchically"?

For simple placement, see the following:

   http://www.fpga-faq.com/FAQ_Pages/0011_Verilog_RLOCs.htm
   http://www.fpga-faq.com/FAQ_Pages/0010_VHDL_RLOCs.htm

What Ray is writing about is more complex, and probably can only
be done in VHDL, as it requires directives like generate to build
large sophisticated designs. Hopefully he will post an example of
his more interesting code.

>I searched Google for a post from Phil Freidin on the subject but failed to
>locate anything applicable.

Ray was thanking me above for the idea of placing floorplanning
pictures on his web site, which I have been doing for many years.

You can find mine at:

   http://www.fliptronics.com/gallery.html

and his at:

   http://www.andraka.com/gallery.htm

>Thanks,

A fairly dated tutorial on floorplanning exists at:

   http://www.fliptronics.com/floorplanning1.html

These days, what I called floorplanning, is now called placement, and
the term floorplanning is now used to describe techniques such as
area constraints.

Philip

Philip Freidin
Fliptronics

Article: 58436
Subject: Re: asynchronous FIFO
From: "John_H" <johnhandwork@mail.com>
Date: Wed, 23 Jul 2003 17:17:43 GMT
Links: << >>  << T >>  << A >>
I have trouble remembering so it's always nice to see the reference once
more.  As noted in http://www.nist.gov/dads/HTML/graycode.html , "The codes
were first patented by Frank Gray, a Bell Labs researcher, in 1953."  The
code is a "Gray code" as opposed to a "gray code" or "grey code" because
it's named after the inventor.  The capitalization is because it's a proper
name.  Personally, I like it much better than the "Frank code" alternative.

The original patent number referenced in other sources is 2632058 for those
who'd like to peruse the uspto.gov database.  (I don't have the proper TIFF
viewer handy to see it for myself)

Enjoy!
- John_H



Article: 58437
Subject: Re: CRC questions
From: luwork@hotmail.com (Alex)
Date: 23 Jul 2003 10:37:53 -0700
Links: << >>  << T >>  << A >>
Theoretically, the delay differences of the implemented CRC circuit
are based on the maximum number of XOR levels of an input but nothing
to do with the total XORs in the implementation. But when I compared
the synthesis results of my design, the same number of XOR levels get
the different results if the total number of XORs are different. I
don't know why, any one can help me to explain this?

If the above situation is correct, then I don't think you can get a
reasonable result for CRC-32. Since the number of XORs is dramatically
large compared with the CRC-16 implementation. So even if you only
have maximum 78 XORs per input, the speed will be very low, since the
total number of XOR increases.

"Avrum" <avrum@REMOVEsympatico.ca> wrote in message news:<roBSa.539$1I5.79766@news20.bellglobal.com>...
> You can do a LOT more than that at 100MHz - we have done CRC16 at 128bits
> per cycle at over 100MHz with no trouble at all (12.8Tbps) in a Virtex-II,
> slowest speed grade. For a CRC16 of 128 bits, each CRC bit is a function of
> a subset of the 128bits coming in and the 16 CRC bits from the previous
> calculation - the most complex bit contains about half the terms (so is the
> XOR of about 70 bits). Thus, the complete CRC calculator is 16 XOR trees
> each with less than 70 inputs.
> 
> A CRC 32 would only be slightly slower, since the largest term would have
> slightly more inputs (probably closer to 78), so you would have 32 XOR trees
> each with less than 78 inputs - it would be slower, but not much slower. It
> would, however, consume more than twice the resources (which aren't tiny).
> 
> Avrum
> 
> 
> "Kevin Neilson" <kevin_neilson@removethistextcomcast.net> wrote in message
> news:7DqSa.90603$wk6.25402@rwcrnsc52.ops.asp.att.net...
> > Unsing lookup tables for CRC in an FPGA isn't really worthwhile because
>  it's
> > really easier just to do it with hardware, and it takes less logic.  If
>  you
> > are only processing one bit per cycle, then both CRC32 or CRC64 have
>  pretty
> > trivial implementations.  You can run this type of circuit over 200MHz
> > easily.  If you are processing more than one bit per cycle, it becomes
>  more
> > difficult and you incur more levels of logic, but for a CRC of only five
>  or
> > six bits, I would estimate you could still process one byte per cycle at
> > well over 100MHz (800Mbps).  Some tricks can increase that speed.
> > -Kevin
> >
> > "Jimmy Zhang" <crackeur@comcast.net> wrote in message
> > news:WTnSa.89454$OZ2.19172@rwcrnsc54...
> > > Hi,
> > >
> > >  I was wondering if anyone can help answer a few questions on CRC.
> > >
> > >  Does FPGA use table lookups to do CRC calculation? Does it help to do
>  so?
> > >
> > >  Also is CRC64 considerably more expensive than CRC32 using FPGA
> > > implementation? What is the reasonable performance number for CRC32 or
>  CRC
> > > 64?
> > >
> > >  Thanks,
> > > Jimmy
> > >
> > >
> >
> >

Article: 58438
Subject: Re: Synplify syn_direct_enable doesn't work for me.
From: symon_brewer@hotmail.com (Symon)
Date: 23 Jul 2003 10:44:04 -0700
Links: << >>  << T >>  << A >>
Hi Jim,
     Close, but no cigar! When I put the syn_keep on toggle, the FF
data_int1 problem is cured! Sadly, Synplify then ignores my
syn_direct_enable directive on the enable to the 4 counter FFs that
make up toggle!
     Any further thoughts? BTW, my interim work around is to make
toggle a std_logic_vector and pick out bits in my code. This seems to
work thus far.
     Thanks for your help on this, it's much appreciated! 
                    cheers, Syms.

p.s. This is what I added to the code:-

attribute syn_keep: boolean; 
attribute syn_keep of toggle : signal is true;


"Jim Robinson" <jim@synplicity.com> wrote in message news:<mpjTa.27433$Nf.71843@sea-read.news.verio.net>...
> Symon,
> 
> You are using the syn_direct_enable directive correctly.
> As you noticed, you achieved the desired behavior on the
> data_int2 Flip Flop, but data_int1 FF was not correct.
> 
> Synplify seems to be loosing the direct_enable when
> it is evaluating the integer expression toggle=0 along with
> the enable expression.
> 
> It is possible to work around this problem by placing a "syn_keep"
> directive on toggle.  The syn_keep directive creates an
> optimization boundary and this prevents Synplify from optimizing
> toggle together with enable and thus produces the results
> you expected.  Your test case with my modifications follows
> below.  I realize the RTL posted on this message is just a
> test case, but I assume that a similar work around can be used
> on your actual design.  If you need assistance getting this
> to work on your design please do not hesitate to contact me
> or any of our Corporate Application Engineers at
> support@synplicity.com.
> 
> Obviously this is a bug in Synplify and I have filed bug # 107936.
> This will be fixed in a future release.  Please let me know if the
> work around will solve your problem in the short term and
> how urgently you require a fix to be incorporated into the tool.
> 
> Best Regards,
> Jim Robinson
> jim@synplicity.com
> 
> 
> 
> 
> library IEEE;
> use IEEE.STD_LOGIC_1164.all;
> 
> entity direct_enable_test is
>   port (
>     signal res_n            : in    std_logic;  -- General reset.
>     signal clock            : in    std_logic;  -- clock 350MHz
>     signal toggle_in        : in    integer range 0 to 15;  -- toggle value
>     signal data             : out   std_logic   -- data
>     );
> end direct_enable_test;
> 
> architecture direct_enable_test_arch of direct_enable_test is
> 
> signal enable   : std_logic;
> 
> signal data_int1 : std_logic;
> signal data_int2 : std_logic;
> signal toggle   : integer range 0 to 15;  -- toggle value
> attribute syn_direct_enable: boolean;
> attribute syn_direct_enable of enable : signal is true;
> attribute syn_keep: boolean;                         -- Workaround
> attribute syn_keep of toggle : signal is true;       -- Workaround
> 
> begin
> 
> 
> data <= data_int1 or data_int2;
> 
> process (res_n, clock)
>   begin
>     if (res_n = '0') then
>       enable <= '0';
>       toggle <= 0;
>     elsif rising_edge (clock) then
>       enable <= not enable;
>       if enable = '1' then
>         toggle <= (toggle + 1) mod 16;
>       end if;
>     end if;
>   end process;
> 
> process (res_n, clock)
>   begin
>     if (res_n = '0') then
>       data_int1 <= '0';
>     elsif rising_edge (clock) then
>       if enable = '1' then
>         if toggle = 0 then
>           data_int1 <= not data_int1;
>         end if;
>       end if;
>     end if;
>   end process;
> 
> process (res_n, clock)
>   begin
>     if (res_n = '0') then
>       data_int2 <= '0';
>     elsif rising_edge (clock) then
>       if enable = '1' then
>         if toggle_in = 0 then
>           data_int2 <= not data_int2;
>         end if;
>       end if;
>     end if;
>   end process;
> 
> end direct_enable_test_arch;

Article: 58439
Subject: Re: asynchronous FIFO
From: Peter Alfke <peter@xilinx.com>
Date: Wed, 23 Jul 2003 11:21:20 -0700
Links: << >>  << T >>  << A >>
Thanks.
So lets remember: "Gray with an a!"
Honor where honor is due.
Peter Alfke

J

Article: 58440
Subject: Re: asynchronous FIFO
From: already5chosen@yahoo.com (Michael S)
Date: 23 Jul 2003 11:57:23 -0700
Links: << >>  << T >>  << A >>
"Barry Brown" <barry_brown@agilent.com> wrote in message news:<1058824681.854644@cswreg.cos.agilent.com>...
> A few more details I should have mentioned:
>     write clock is 40 MHz
>     read clock is 75 MHz
>     I only need the "number of words in FIFO" count on the read clock side
> 
> Here is what I have been thinking -
> Gray counters for read and write addresses.  Re-clock the gray write address
> with the read clock, then convert it back to binary.  Subtract the read
> address from the re-clocked write address (both in binary), to get the
> number of words in the FIFO.  It seems that if I re-clock the write address
> while it's in gray code, I should only have a one count ambiguity.
> 
> Anyone see a flaw, or have a better idea?
> 

It's far simpler than this. 

Everything is binary. Reclock LS bit of the write address with the
read clock (3 consecutive FFs). Detect edges (XOR 2nd and 3dr FFs -
the 1st is here to fight metastability). On edges increment "number of
words in FIFO" count. On read pulse decrement. When both - don't
change. That's about all.

11.6ns difference in the clock periods is more than enough for
reliable edge detection.

The count has a latency of 2-3 read cycles relatively to the "true"
count, but any metastability-safe design would suffer a similar
latency. Typically it doesn't matter.
You can cut the latency by one clock by combinatorial summation of the
count with the output of the edge detector.
The only issue I see with this design - after the reset you should
wait one write clock before pushing 1st data in.

Article: 58441
Subject: Re: FPGA Editor
From: rickman <spamgoeshere4@yahoo.com>
Date: Wed, 23 Jul 2003 16:08:46 -0400
Links: << >>  << T >>  << A >>
Martin Euredjian wrote:
> 
> Another related question.
> 
> Is there a way to area-constrain the logic corresponding to an HDL module
> and then have the tools take an iterative approach to getting the best
> placement (say, timing and data-path alignment) within that area?

I don't know about the iterative placement approach, but you can use
area location constraints.  But most likely you will do better with
relative location constraints within your critical modules.  Then the
tool can put the module anywhere it likes, but the high speed paths
within the module will likely find the better routing provided by your
hand placement.  

-- 

Rick "rickman" Collins

rick.collins@XYarius.com
Ignore the reply address. To email me use the above address with the XY
removed.

Arius - A Signal Processing Solutions Company
Specializing in DSP and FPGA design      URL http://www.arius.com
4 King Ave                               301-682-7772 Voice
Frederick, MD 21701-3110                 301-682-7666 FAX

Article: 58442
Subject: Re: Using Quartus with VHDL
From: rickman <spamgoeshere4@yahoo.com>
Date: Wed, 23 Jul 2003 16:16:51 -0400
Links: << >>  << T >>  << A >>
Allan Herriman wrote:
> 
> On Wed, 23 Jul 2003 04:01:10 -0400, rickman <spamgoeshere4@yahoo.com>
> wrote:
> 
> >I am creating a new design in Quartus using VHDL.  It has been a long
> >time since I have used VHDL and so I am relearning a lot of the issues
> >with the language.  I have found a couple of cases where the Quartus
> >compiler either flagged an error that had nothing to do with the problem
> >in my source code or did not flag an error and produced wrong logic.
> >
> >The problem I am having now is that my design is not being synthesized
> >fully or large parts are being optimized away.  I have checked the
> >generated equations as best I can and compared to my source and can not
> >find a reason that this should be happening.
> >
> >I have a ticket open with support, but they have not even asked me for
> >my code yet and I doubt that we will get much going until that happens.
> >
> >I started this post about 10 hours ago and had to leave before I
> >finished.  When I got back I continued working on the problem before I
> >completed the message.  I finally found the problem.  Seems that if you
> >have a mismatch in the size of the vectors in an assignment or
> >comparison, the software does not complain, it just produces some bad
> >logic.  Mainly it takes out all the subsequent logic.  Trying to sort
> >through a design at the equation level and figure out what part is
> >missing and what part remains is not a simple task.
> 
> Your simulator would have picked up the error straight away during
> either compilation or elaboration.  Did you simulate your design?

No, I did not simulate the design because it is nowhere near complete. 
I have been away from hands on VHDL design and am not very familiar with
the Quartus tool.  So I am building my design up in pieces and trying to
verify that it is correctly synthesized before I move on to the next
piece.  It never occurred to me that I needed to run a simulation to
verify that my code would synthesize correctly.  Perhaps I need to dig
into that next.  

-- 

Rick "rickman" Collins

rick.collins@XYarius.com
Ignore the reply address. To email me use the above address with the XY
removed.

Arius - A Signal Processing Solutions Company
Specializing in DSP and FPGA design      URL http://www.arius.com
4 King Ave                               301-682-7772 Voice
Frederick, MD 21701-3110                 301-682-7666 FAX

Article: 58443
Subject: Re: CRC questions
From: rickman <spamgoeshere4@yahoo.com>
Date: Wed, 23 Jul 2003 16:33:01 -0400
Links: << >>  << T >>  << A >>
I'm not sure I understand everything you are trying to say, but the
point is that the number of inputs to the various bits of the CRC does
not continue to increase beyond a certain point.  First you can divide
the inputs into two groups, the feedback from the last value of the CRC
and the inputs from the data stream.  This is important to understand
since the feedback bits can not be pipelined, while the data inputs
can.  

If you are only calculating a small number of bits at a time, the
maximum number of inputs is about equal to the number of bits you are
calculating.  An example is a four bit calculation of a CRC.  Mostly the
sparse feedback and input bits will not overlap much so that the number
of inputs to each bit will be about four with some at five or six.  But
once you get to large numbers of input bits being calculated in one
operation, you will find that many of the bits start to cancel
themselved out of a given bit since an XOR of an item with itself an
even number of times is equal to '0' and has no effect on that bit.  An
odd number of inputs of the same bit to an XOR operator is the same as a
single bit.  So in CRC computations with large numbers of bits being
input in one clock cycle, the number of inputs tends toward about half
the inputs and half the feedback bits being used as inputs at each CRC
bit being calculated.  

If you are calculating 64 bits at one time the change from a CRC-16 to a
CRC-32 will only change the number of inputs to each bit from about 72
to 80 or by about 8.  Of course some bit computations will be a bit more
than half and some a bit less than half, but they don't vary a lot from
the average.  


Alex wrote:
> 
> Theoretically, the delay differences of the implemented CRC circuit
> are based on the maximum number of XOR levels of an input but nothing
> to do with the total XORs in the implementation. But when I compared
> the synthesis results of my design, the same number of XOR levels get
> the different results if the total number of XORs are different. I
> don't know why, any one can help me to explain this?
> 
> If the above situation is correct, then I don't think you can get a
> reasonable result for CRC-32. Since the number of XORs is dramatically
> large compared with the CRC-16 implementation. So even if you only
> have maximum 78 XORs per input, the speed will be very low, since the
> total number of XOR increases.
> 
> "Avrum" <avrum@REMOVEsympatico.ca> wrote in message news:<roBSa.539$1I5.79766@news20.bellglobal.com>...
> > You can do a LOT more than that at 100MHz - we have done CRC16 at 128bits
> > per cycle at over 100MHz with no trouble at all (12.8Tbps) in a Virtex-II,
> > slowest speed grade. For a CRC16 of 128 bits, each CRC bit is a function of
> > a subset of the 128bits coming in and the 16 CRC bits from the previous
> > calculation - the most complex bit contains about half the terms (so is the
> > XOR of about 70 bits). Thus, the complete CRC calculator is 16 XOR trees
> > each with less than 70 inputs.
> >
> > A CRC 32 would only be slightly slower, since the largest term would have
> > slightly more inputs (probably closer to 78), so you would have 32 XOR trees
> > each with less than 78 inputs - it would be slower, but not much slower. It
> > would, however, consume more than twice the resources (which aren't tiny).
> >
> > Avrum
> >
> >
> > "Kevin Neilson" <kevin_neilson@removethistextcomcast.net> wrote in message
> > news:7DqSa.90603$wk6.25402@rwcrnsc52.ops.asp.att.net...
> > > Unsing lookup tables for CRC in an FPGA isn't really worthwhile because
> >  it's
> > > really easier just to do it with hardware, and it takes less logic.  If
> >  you
> > > are only processing one bit per cycle, then both CRC32 or CRC64 have
> >  pretty
> > > trivial implementations.  You can run this type of circuit over 200MHz
> > > easily.  If you are processing more than one bit per cycle, it becomes
> >  more
> > > difficult and you incur more levels of logic, but for a CRC of only five
> >  or
> > > six bits, I would estimate you could still process one byte per cycle at
> > > well over 100MHz (800Mbps).  Some tricks can increase that speed.
> > > -Kevin
> > >
> > > "Jimmy Zhang" <crackeur@comcast.net> wrote in message
> > > news:WTnSa.89454$OZ2.19172@rwcrnsc54...
> > > > Hi,
> > > >
> > > >  I was wondering if anyone can help answer a few questions on CRC.
> > > >
> > > >  Does FPGA use table lookups to do CRC calculation? Does it help to do
> >  so?
> > > >
> > > >  Also is CRC64 considerably more expensive than CRC32 using FPGA
> > > > implementation? What is the reasonable performance number for CRC32 or
> >  CRC
> > > > 64?
> > > >
> > > >  Thanks,
> > > > Jimmy
> > > >
> > > >
> > >
> > >

-- 

Rick "rickman" Collins

rick.collins@XYarius.com
Ignore the reply address. To email me use the above address with the XY
removed.

Arius - A Signal Processing Solutions Company
Specializing in DSP and FPGA design      URL http://www.arius.com
4 King Ave                               301-682-7772 Voice
Frederick, MD 21701-3110                 301-682-7666 FAX

Article: 58444
Subject: Re: FPGA Editor
From: "Martin Euredjian" <0_0_0_0_@pacbell.net>
Date: Wed, 23 Jul 2003 21:54:18 GMT
Links: << >>  << T >>  << A >>
So ... it sure sounds like I'm trying to swim upstream.

Is there a constraint that could cause data paths to be aligned better or is
it futile to even try?

Take a pipe consisting of four eight-bit registers (as a simple example).
Can one over-constrain?  Set a low maximum delay for the nets?

Take an FIR module, for example.  Are we doomed to hand-placement of such a
beast?


-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Martin Euredjian

To send private email:
0_0_0_0_@pacbell.net
where
"0_0_0_0_"  =  "martineu"



"rickman" <spamgoeshere4@yahoo.com> wrote in message
news:3F1EEB4E.5B323FCA@yahoo.com...
> Martin Euredjian wrote:
> >
> > Another related question.
> >
> > Is there a way to area-constrain the logic corresponding to an HDL
module
> > and then have the tools take an iterative approach to getting the best
> > placement (say, timing and data-path alignment) within that area?
>
> I don't know about the iterative placement approach, but you can use
> area location constraints.  But most likely you will do better with
> relative location constraints within your critical modules.  Then the
> tool can put the module anywhere it likes, but the high speed paths
> within the module will likely find the better routing provided by your
> hand placement.
>
> -- 
>
> Rick "rickman" Collins
>
> rick.collins@XYarius.com
> Ignore the reply address. To email me use the above address with the XY
> removed.
>
> Arius - A Signal Processing Solutions Company
> Specializing in DSP and FPGA design      URL http://www.arius.com
> 4 King Ave                               301-682-7772 Voice
> Frederick, MD 21701-3110                 301-682-7666 FAX
>



Article: 58445
Subject: Re: iMPACT batch mode
From: John Williams <jwilliams@itee.uq.edu.au>
Date: Thu, 24 Jul 2003 07:57:29 +1000
Links: << >>  << T >>  << A >>
Hi Aurash,,

Aurelian Lazarut wrote:
> John,
> Try:
> promgen -help

ah ha!  thanks for that.  Perhaps a X-ref from the iMPACT doco to 
PROMGEN might be in order for a future release.

Thanks again,

John

> 
> Cheers,
> Aurash
> 
> John Williams wrote:
> 
> 
>>hi folks,
>>
>>I'm trying to convert a .bit file into an MCS file suitable for putting
>>into a configuration PROM.  I can do this just fine with the GUI, via
>>the following path of steps
>>
>>Prepare Configuration Files ->
>>PROM file ->
>>Choose target (Serial PROM, MCS format etc) ->
>>Add Device XC18V04 ->
>>Add File (download.bit) -> Finish
>>
>>I can then download this file to the PROM, and it will configure the
>>FPGA and so on.
>>
>>However, I want to automate this procedure into an iMPACT batch file.
>>The doco is a bit obtuse on the subject - there are plenty of batch mode
>>examples for configuring devices, but none I could find for generating
>>PROM files.
>>
>>I've got this far:
>>
>>$ impact -batch
>> >setmode -pff
>> >setsubmode -pffserial
>> >addpromdevice -p 1 -name xc18v04
>>
>>However, if I now try to use assignfile, and give it the input bitfile:
>> >assignfile -p 1 -file download.bit
>>
>>it bombs with a fatal error.
>>
>>I'm figuring I'm close, just need to
>>
>>(a) assign a bit file that goes into the prom file
>>(b) generate the file
>>
>>There's the 'generate' command but that also bombs, presumably because I
>>haven't properly assigned a bitfile yet.
>>
>>Can anyone point me in the right direction?
>>
>>Thanks,
>>
>>John
> 
> 
> --
>  __
> / /\/\ Aurelian Lazarut
> \ \  / System Verification Engineer
> / /  \ Xilinx Ireland
> \_\/\/
> 
> phone: 353 01 4032639
> fax: 353 01 4640324
> 
> 


-- 
Dr John Williams, Research Fellow,
Reconfigurable Computing, School of ITEE
University of Queensland, Brisbane, Australia
Ph : (07) 3365 8305


Article: 58446
Subject: Re: FPGA Editor
From: Ray Andraka <ray@andraka.com>
Date: Wed, 23 Jul 2003 18:02:24 -0400
Links: << >>  << T >>  << A >>
Basically, the lowest level of your hierarchy, at least the parts you want to
place, are xilinx unisim primitives.   Using the VHDL generate construct allows
you to describe the logic and placement for one bit, and then have that
replicated in a sort of step and repeat fashion to build up your bottom level
macros.  Those macros can then be used in a larger design by putting RLOCs on
the macro.  The following is the generate loop to make a registered adder.  That
adder component can then be used in the next level up and placed by putting an
RLOC attribute on the component following the same format as inside the generate
loop.  The adder is a reusable component that can then be used in many designs
without having to change anything.  Likewise, the next level up might be a
filter generate macro or something like that that builds a placed component that
can then be used in a higher level design.

L:for i in 0 to width-1 generate
 constant rc_str : string := "R" & itoa( origin -(i/2))  & "C0" & ".S" &
itoa(slice mod 2);
 constant xy_str : string := "x0y" & itoa((i/2)-origin) ;
 constant rloc_str : string := pickstring(virtex,rc_str,xy_str);
 signal l,s,qr,qs: STD_LOGIC;
 attribute BEL of U1:label is bel_lut(i mod 2);
 attribute BEL of U3:label is bel_xor(i mod 2);
 attribute BEL of U4:label is bel_ff(i mod 2);
 attribute RLOC   of U1 : label is rloc_str;
 attribute RLOC   of U2 : label is rloc_str;
 attribute RLOC   of U3 : label is rloc_str;
 attribute RLOC   of U4 : label is rloc_str;
 begin
  U1: fmap_xor2 port map(
   a=> ax(i),
   b=> bx(i),
   z=> l);

  U2: MUXCY port map (
   O  => cy(i+1),
   CI => cy(i),
   DI => ax(i),
   S  => l );

  U3: XORCY port map (
   O  => s,
   CI => cy(i),
   LI => l );

   U4: FDRE port map (
    Q  => q(i),
    D  => s,
   R => lcl_rst,
   CE => lcl_ce,
   C  => clk );
  end generate L;


Martin Euredjian wrote:

> "Ray Andraka" <ray@andraka.com> wrote:
>
> > The automatic placment algorithms, while better than in the past, still
> suck.  I
> > do a large amount of explicit placement using a structural hierarchy.  The
> > relative placements (in the form of RLOCs) are in the code, and these are
> built
> > up hierarchically.  Some examples of the floorplans can be seen on the
> gallery
> > page of my website (thanks Phil Freidin for that idea).
>
> Could I bother you to provide an example of how to do this?  Are you saying
> that you locate placement constraints within the HDL modules themselves?
> How exactly are they "built up hierarchically"?
>
> I searched Google for a post from Phil Freidin on the subject but failed to
> locate anything applicable.
>
> Thanks,
>
> --
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Martin Euredjian
>
> To send private email:
> 0_0_0_0_@pacbell.net
> where
> "0_0_0_0_"  =  "martineu"

--
--Ray Andraka, P.E.
President, the Andraka Consulting Group, Inc.
401/884-7930     Fax 401/884-7950
email ray@andraka.com
http://www.andraka.com

 "They that give up essential liberty to obtain a little
  temporary safety deserve neither liberty nor safety."
                                          -Benjamin Franklin, 1759



Article: 58447
Subject: Pricing question....
From: wpiman@aol.com (MS)
Date: 23 Jul 2003 16:11:38 -0700
Links: << >>  << T >>  << A >>
Hi,
So we are looking to implement some functionality that we have done in
NPUs in the past into a Xilinx Virtex2Pro family (small space and less
power).

These parts are quite expensive right now (up to $1500 a piece).  Our
build timeframe is starting next year, carrying out into 2006/2007. 
When you add up the cost of product- the budget is nearly consumed
completely by the FPGAs.

The question is how much do you usually expect FPGA prices to fall in
a given year.  For example, would a guess of a 15% drop in the first
year followed by a 30% fall in the second year be a good stab?  20% a
year?  I just need to fill out some numbers to make some bean counter
happy.  Anyone take a look at what has historical been the price
drops?

Thanks,
M Scott

Article: 58448
Subject: Re: workstation for virtex2 - 8000
From: billh40@aol.com (Bill Hanna)
Date: 23 Jul 2003 16:27:15 -0700
Links: << >>  << T >>  << A >>
nahum_barnea@yahoo.com (Nahum Barnea) wrote in message news:<fc23bdfc.0307080518.712eca43@posting.google.com>...
> Hi.
> 
> My company is working on a xc2v8000 design, I expect it to be almost
> fully utilized (85%).
> 
> I feel that our computing power is not sufficient. 
> 
> I am using Sun Ultra-80 with 4 GB memory. 
> 
> fpga_editor and floorplanner take a lot of time. 
> P&R flow takes a lot of time. 
> I read in Xilinx docs that the recommendation for xc2v8000 is 3 GB
> memory.
> 
> 
> Do you have from your experience additional recommendations, such as
> graphic card type, Processor, memory, or a brand name computer that
> you successfully use?
> 
> 
> ThankX 
> NAHUM

    I have a design using the XC2V6000 that uses 66% of the chip's
capacity (23,000 slices out of 33,792).

    I am using the P4 2GHz PC , Windows XP PRO, with 1GB DDR SDRAM. 
It takes 5 hours to synthesize,   and 1 hour to place and route.

    I am sure that you are OK with the SUN processor.  I have had some
designs use 2GB of virtual memory.

Bill Hanna

Article: 58449
Subject: Re: Pricing question....
From: Peter Alfke <peter@xilinx.com>
Date: Wed, 23 Jul 2003 16:49:46 -0700
Links: << >>  << T >>  << A >>
Your question can best be answered by a Xilinx salesperson, or most
likely a Sales Representative. If they cannot get you the answer
dirctly, they contact the factory.
They will love to talk to you and give you a quote with "budgetary
figures". They really are your friend, because they have a vested
interest to make you succeed. That is the only way they will get paid. 
Do you have such a sales contact?

Peter Alfke, Xilinx Applications 
================================
MS wrote:
> 
> Hi,
> So we are looking to implement some functionality that we have done in
> NPUs in the past into a Xilinx Virtex2Pro family (small space and less
> power).
> 
> These parts are quite expensive right now (up to $1500 a piece).  Our
> build timeframe is starting next year, carrying out into 2006/2007.
> When you add up the cost of product- the budget is nearly consumed
> completely by the FPGAs.
> 
> The question is how much do you usually expect FPGA prices to fall in
> a given year.  For example, would a guess of a 15% drop in the first
> year followed by a 30% fall in the second year be a good stab?  20% a
> year?  I just need to fill out some numbers to make some bean counter
> happy.  Anyone take a look at what has historical been the price
> drops?
> 
> Thanks,
> M Scott



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