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 79050

Article: 79050
Subject: Re: second flop in asyn reset distribution
From: "Peter Alfke" <peter@xilinx.com>
Date: 11 Feb 2005 15:06:57 -0800
Links: << >>  << T >>  << A >>
Here is a simple explanation:
In any conventional flip-flop the asynchronous CLEAR input clears both
the master and the slave directly and permanently as long as CLEAR is
active.
The synchronous RESET is just another (overriding ) input to the logic
driving the D input.

All behavior can be deduced from these simple facts

Peter Alfke, Xilinx Applications


Article: 79051
Subject: Re: Sending text from fpga to printer
From: Roel <electronics_designer@hotmail.com>
Date: Sat, 12 Feb 2005 00:20:25 +0100
Links: << >>  << T >>  << A >>
Marco wrote:
> I should send text to a parallel printer.
> 
> What is a centronics interface?
> 
> 

See http://www.fapo.com/ieee1284.htm

Best Regards,
Roel


> "Roel" <electronics_designer@hotmail.com> wrote in message
> news:cuglno$51a$1@news2.zwoll1.ov.home.nl...
> 
>>Marco wrote:
>>
>>>Is it possible?
>>>
>>>
>>
>>It's very simple in case of a printer having a centronics interface.
>>Even graphics can be done easily after sending the right commands.
>>
>>In case of a USB printer you will need a USB host. Implementing that in
>>an FPGA will be much more difficult, so buy an old fashion HP500 Deskjet
>>from Ebay and use that one (:
>>
>>Best Regards,
>>Roel
>>
>>
> 
> 
> 

Article: 79052
Subject: Re: second flop in asyn reset distribution
From: "fpgabuilder" <fpgabuilder-news@yahoo.com>
Date: 11 Feb 2005 17:31:07 -0800
Links: << >>  << T >>  << A >>
Thanks folks.

Hal, I understand at the purpose behind synchronizing the reset.  I am
curious to find out what goes on inside the flip-flop that does not
cause it go metastable when the d input does not change but the reset
changes. 

Thanks.


Article: 79053
Subject: Re: ISE and IEEE.Fixed_pkg (fixed point math for synth?)
From: Jim Lewis <Jim@SynthWorks.com>
Date: Fri, 11 Feb 2005 19:02:36 -0800
Links: << >>  << T >>  << A >>
Phil,
This would be a bug in XST.  It would be helpful to
submit it to them as such.

Cheers,
Jim

> I'm trying to use the proposed IEEE.fixed_pkg (fixed-point math package) 
> available here:
> 
> http://www.eda.org/vhdl-200x/vhdl-200x-ft/packages/files.html
> 
> The simulator doesn't complain (GHDL in this case), but ISE doesn't seem 
> to like the negative values in ranges, like:
> 
>   variable exp_value_fp : ufixed( 0 downto -17);
> 
> I get this message:
> 
> ERROR:Xst:1548 - c:/phil/vhdl/svm/../csvm.vhd line 60: Negative range in 
> type of signal <exp_value_fp> is not supported.
> 
> 1) does fixed_pkg work with other synthesis tools?
> 2) Suggestions for other alternatives to fixed_pkg that might work with 
> ISE?
>    
> 
> Phil


-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jim Lewis
Director of Training             mailto:Jim@SynthWorks.com
SynthWorks Design Inc.           http://www.SynthWorks.com
1-503-590-4787

Expert VHDL Training for Hardware Design and Verification
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Article: 79054
Subject: Re: second flop in asyn reset distribution
From: "Peter Alfke" <peter@xilinx.com>
Date: 11 Feb 2005 19:33:27 -0800
Links: << >>  << T >>  << A >>
So let's take this slowly:
You apply asynchronous reset, which forces both latches to 0. There is
no metastability as long as CLEAR is active.
Then you take away CLEAR asynchronously with repect to the clock. Let's
assume the D input is a 1 (if it were a 0, we would not have this
dicussion)
Both latches are 0 while CLEAR is active,, but if CLEAR goes away right
before the clock rising edge, the 1 on D might sneak in and set the
master in a metastable way. After the rising clock edge, the master now
drives the slave.
That means you see a metastable (unbounded) 1 on the slave output Q.

This happens only when the CLEAR goes inactive right before the rising
clock edge, and only while D is 1.

(I had this problem once in a FIFO synchronizer, and I solved it by
using CLEAR to drive the D input in such a way that the Low on D
appears before CLEAR goes Low= inactive. A simple inverter or buffer
does the trick, depending on the chosen polarities.)
Peter Alfke, Xilinx Applications


Article: 79055
Subject: Re: FPGA design problem
From: "jtw" <wrightjt @hotmail.invalid>
Date: Sat, 12 Feb 2005 03:41:31 GMT
Links: << >>  << T >>  << A >>
Other things to consider are configuration instances.  I have tripped myself 
up this way when I didn't complete all my configuration definitions before 
trying the simulation....  But once I had them, I could use the same 
testbench for behavioral, post-synthesis, and post-place & route gate 
simulation.

Jason

"Thomas Stanka" <usenet_10@stanka-web.de> wrote in message 
news:372vg7F55n5k0U1@individual.net...
> Hi,
>
> gavbiggs@yahoo.co.uk wrote:
>> on to layout the design. Once the layout has been completed I can then
>> use the 'Extract' button to create a *.sdf file from which a timing
>> file is created.
>
> At this stage you could also extract a vhdl netlist from Designer.
> When using Designer standalone it's the backanotate button pressed and in
> the next dialog check the box "generate netlist".
>
>> The problem occurs when I apply back annotation and try to simulate the
>> design with the *.sdf file. I apply the .sdf to QuickHDL by using the
>> following in the command prompt: -
>>                     qhsim <design> -sdf<delays> <SDF file>
>> This will load up QuickHDL and then errors will occur, The errors are
>> as shown below:
>>
>> ERROR: home/biggc/fat.sdf(14): failed to find instance /fat/'INBUF_7'
>> ERROR: home/biggc/fat.sdf(14): failed to find instance /fat/'MX_3'
>> ERROR: home/biggc/fat.sdf(14): failed to find instance /fat/'MX_3'
>> ERROR: home/biggc/fat.sdf(14): failed to find instance /fat/'INBUF_1'
>> ERROR: home/biggc/fat.sdf(14): failed to find instance /fat/'OUTBUF_10'
>> WARNING: home/biggc/fat.sdf: this file is probably applied to thw wrong
>> instance.
>> Ignoring subsequent missing instances from this file.
>> Failed to find any of the 8 instances from this file.
>> The file is probably intended for a lower-level instance, not the
>> top-level.
>
> I saw similar errors when the netlist created by designer and the sdf-file
> used some different "encoding".
>
> Try search the netlist for something like inbuf[7] instead of inbuf_7.
>
> If I'm right yould configure that in some ways in the Designer software.
>
>> When the VHDL model has been applied to Actel Designer, the code is
>> converted into a circuit, i.e. I/O pad buffers are created etc. this is
>> what the errors seem to be referring to as I assume its trying to
>> simulate the VHDL code which doesnt contain these instances. Do I need
>> to simulate the .edn file (the netlist file) as well as the .sdf file?
>> and if so how do I achieve this?
>
> I never tried Designer V8.x but I never saw Actel Designer inserting
> io-buffer, this was done by a tool before (?Silicon Expert?) on edif 
> level.
>
> bye Thomas
>
> -- 
> Emailantworten bitte an thomas[at]obige_domain.
> Usenet_10 ist für Viren und Spam reserviert 



Article: 79056
Subject: Re: Basics of BFM
From: Christian Schneider <please_reply_to_the@newsgroup.net>
Date: Sat, 12 Feb 2005 09:43:52 +0100
Links: << >>  << T >>  << A >>
Kedar P. Apte wrote:
> Hello All
> 
> I want to learn more about Bus Functional Models
> 
> Please advice me about that. Like
> 
> What a BFM contains...?
> code for BFM written in which all languages ...?
> Any documents or sites anyone can suggest to read about how to make a BFM
> 
> Kedar

A BFM models just the external timing of a device, but not its interal 
function. Typically a processor interfaces are modeled as BFS to save 
simulation time. This can be done in any language your simulator 
understands. Google knows of some documents ...

Br,
Chris

Article: 79057
Subject: 2 microblaze access same BRAM ?
From: "Elinore" <elinore2005@yahoo.fr>
Date: 12 Feb 2005 03:36:54 -0800
Links: << >>  << T >>  << A >>
hello

I want to map two microblaes into FPGA. Problem is that I do not aware
that it is possible to use one LMB and one dual port BRAM for two
microblazes so that two microblazes share memory address space. Does
anyone have this experience ?


Article: 79058
Subject: Re: ISE and IEEE.Fixed_pkg (fixed point math for synth?)
From: ptkwt@aracnet.com (Phil Tomson)
Date: 12 Feb 2005 13:48:23 GMT
Links: << >>  << T >>  << A >>
In article <110qsefisopekcf@corp.supernews.com>,
Jim Lewis  <Jim@SynthWorks.com> wrote:
>Phil,
>This would be a bug in XST.  It would be helpful to
>submit it to them as such.
>
>Cheers,
>Jim
>
>> I'm trying to use the proposed IEEE.fixed_pkg (fixed-point math package) 
>> available here:
>> 
>> http://www.eda.org/vhdl-200x/vhdl-200x-ft/packages/files.html
>> 
>> The simulator doesn't complain (GHDL in this case), but ISE doesn't seem 
>> to like the negative values in ranges, like:
>> 
>>   variable exp_value_fp : ufixed( 0 downto -17);
>> 
>> I get this message:
>> 
>> ERROR:Xst:1548 - c:/phil/vhdl/svm/../csvm.vhd line 60: Negative range in 
>> type of signal <exp_value_fp> is not supported.
>> 
>> 1) does fixed_pkg work with other synthesis tools?
>> 2) Suggestions for other alternatives to fixed_pkg that might work with 
>> ISE?
>>    
>> 

I'm using ISE 6.2i, does anyone know if it works in 6.3*?

Phil

Article: 79059
Subject: Re: ROM inference in Spartan3 (ISE bug)
From: ptkwt@aracnet.com (Phil Tomson)
Date: 12 Feb 2005 14:03:47 GMT
Links: << >>  << T >>  << A >>
In article <420d0c7b$0$19426$8fcfb975@news.wanadoo.fr>,
KCL <kclo4_NO_SPAM_@free.fr> wrote:
>Why do you want to use negative indice?? it's the first time i saw such 
>thing
>and so does it work if you use positive indice??
>



That's how the fixed point package (Fixed_pkg) works.  It's a proposed 
IEEE standard lib.  (see: 
http://www.eda.org/vhdl-200x/vhdl-200x-ft/packages/files.html )
It's the way to denote that part of the vector is to 
the right of the binary point and part is to the left.

so: 

  signal ufixed4_2 : ufixed(2 downto -1) := "1010";

would mean that ufixed4_2 is set to 2.5 (the binary point is at bit zero 
and there are two bits to the right of the binary point and two bits to 
the left).

Apparently many other synthesis tools (including Altera's) support this 
and my simulator (GHDL in this case) supports it as well.  It's been 
suggested that ISE's not supporting negative indices is a bug; I tend to 
agree that it is,  and it's impeding my progress.

Any suggestions for working around this ISE bug?  

Phil


>
>"Phil Tomson" <ptkwt@aracnet.com> a écrit dans le message de news: 
>cui1g701ovi@enews2.newsguy.com...
>> In article <cufvla02a24@enews2.newsguy.com>,
>> Phil Tomson <ptkwt@aracnet.com> wrote:
>>>
>>>This page:
>>>http://toolbox.xilinx.com/docsan/xilinx6/books/data/docs/xst/xst0026_5.html#wp325264
>>>
>>>shows some templates for ROM inference in Spartan3 using Xilinx's ISE
>>>software.
>>>
>>>One of the templates is:
>>>  library ieee;
>>>  use ieee.std_logic_1164.all;
>>>  use ieee.std_logic_unsigned.all;
>>>  entity rominfr is
>>>    port (
>>>        clk  : in std_logic;
>>>        en   : in std_logic;
>>>        addr : in std_logic_vector(4 downto 0);
>>>        data : out std_logic_vector(3 downto 0)
>>>        );
>>>  end rominfr;
>>>  architecture syn of rominfr is
>>>    type rom_type is array (31 downto 0) of std_logic_vector (3 downto 0);
>>>    constant ROM : rom_type :=
>>>   ("0001","0010","0011","0100","0101","0110","0111","1000","1001","1010"
>>>,"1011","1100","1101","1110","1111","0001","0010","0011","0100","0101"
>>>,"0110","0111","1000","1001","1010","1011","1100","1101","1110","1111" );
>>>  begin
>>>    process (clk)
>>>      begin
>>>       if (clk'event and clk = '1') then
>>>          if (en = '1') then
>>>              data <= ROM(conv_integer(addr);
>>>          end if;
>>>       end if;
>>>    end process;
>>>  end syn;
>>>
>>>
>>>My question is: are they types of the inputs and outputs important for the
>>>software to infer the ROM?  For example, could I have:
>>>
>>>
>>>  entity rominfr is
>>>    port (
>>>        clk  : in std_logic;
>>>        en   : in std_logic;
>>>        addr : in std_logic_vector(9 downto 0);
>>>        data : out ufixed(0 downto -17) -- ufixed is fixed point
>>>                                        --type from:
>>>        --http://www.eda.org/vhdl-200x/vhdl-200x-ft/packages/files.html
>>>        );
>>>  end rominfr;
>>>
>>>Would the ROM still be inferred because I didn't use std_logic_vector on
>>>the data output?  Just wondering how strict the template must be adhered
>>>to.
>>>
>>>
>>>There are conversion routines to go to/from std_logic_vector<=>ufixed,
>>>however I'd prefer to keep the output of the ROM in ufixed format if
>>>possible.
>>>
>>
>> FYI: the line:
>>  data : out ufixed(0 downto -17)
>>
>> Causes the following error:
>>  ERROR:Xst:1548 - c:/phil/vhdl/svm/../lookuptable.vhd line 13: Negative
>> range in type of signal <data> is not supported.
>>
>> So looks like you can't use a ufixed (with negative indices ) in a port
>> signal, anyway.
>>
>> Phil 
>
>



Article: 79060
Subject: Re: Sending text from fpga to printer
From: "Marco" <marcotoschi@email.it>
Date: Sat, 12 Feb 2005 17:32:49 +0100
Links: << >>  << T >>  << A >>
I have read about Centronics ad its phase transition. I have read also EPP
and ECP.

I should implement a OPB Slave peripheral to print text.

Could you tell me where I can find other information about Centronics, such
as signal input and output?

Many Thanks
Marco


"Roel" <electronics_designer@hotmail.com> wrote in message
news:cujejn$hj1$1@news5.zwoll1.ov.home.nl...
> Marco wrote:
> > I should send text to a parallel printer.
> >
> > What is a centronics interface?
> >
> >
>
> See http://www.fapo.com/ieee1284.htm
>
> Best Regards,
> Roel
>
>
> > "Roel" <electronics_designer@hotmail.com> wrote in message
> > news:cuglno$51a$1@news2.zwoll1.ov.home.nl...
> >
> >>Marco wrote:
> >>
> >>>Is it possible?
> >>>
> >>>
> >>
> >>It's very simple in case of a printer having a centronics interface.
> >>Even graphics can be done easily after sending the right commands.
> >>
> >>In case of a USB printer you will need a USB host. Implementing that in
> >>an FPGA will be much more difficult, so buy an old fashion HP500 Deskjet
> >>from Ebay and use that one (:
> >>
> >>Best Regards,
> >>Roel
> >>
> >>
> >
> >
> >



Article: 79061
Subject: Xilinx : UCF
From: zimmer <zihu88@hotmail.com>
Date: Sat, 12 Feb 2005 11:31:50 -0800
Links: << >>  << T >>  << A >>
Hi I am using Xilinx ISE6.0i to program the XPLA3 CPLD.

Here is the UCF file statement I found in the web:

NET "option<0>" LOC = "S:PIN5";

What is the exact meaning of it? Does it mean "Locking option<0> to PIN5 and Setting it to 1"?

If option<0> is an output signal. what dose the "reset/set" resulting to?

Thanks, -Zimmer

Article: 79062
Subject: Re: Xilinx : UCF
From: zimmer <zihu88@hotmail.com>
Date: Sat, 12 Feb 2005 11:38:42 -0800
Links: << >>  << T >>  << A >>
If not, how to reset/set a pin at meantime lock it in a UCF statement?

Thanks,

Article: 79063
Subject: Re: xilinx MGT compatibility?
From: "Marc Randolph" <mrand@my-deja.com>
Date: 12 Feb 2005 17:16:49 -0800
Links: << >>  << T >>  << A >>
Tullio Grassi wrote:
> Hi,
>
>  can the MGT of Virtex-4FX talk to the
> MGT of Virtex-2Pro (XC2VPX) ?
> Any experience or problems ?

Howdy Tullio,

The FX parts with MGT's haven't even been released to engineering (or
early) sample yet, so nobody is going to have experience with them yet
except Xilinx.  Regardless, there should be no problems getting the
MGT's of the two parts (or most any other devices with a SERDES,
including Altera's Stratix GX) talking to each other, provided you
choose a bit rate that is supported by both devices.  For example, make
sure to have a -7 speed-grade V2Pro if you want to do 3.125 Gbps.

Have fun,

   Marc


Article: 79064
Subject: Announcing Samplify for Windows: high-speed sampled data compression
From: "samplify" <awegener@samplify.com>
Date: 13 Feb 2005 07:42:28 -0800
Links: << >>  << T >>  << A >>
Announcement
------------

Samplify Systems announces the availability of Samplify for Windows, a
new PC compression application that demonstrates Samplify's unique
lossless and lossy compression capabilities for sampled (numerical)
data, such as samples from A/D (or for D/A) converters.  Samplify for
Windows compresses at 10+ Msamp/sec on a 2 GHz Pentium and achieves 2:1
compression on many bandlimited signals, regardless of center
frequency.  Samplify for Windows demonstrates the performance of
Samplify's compression engine, which will be available in FPGAs and
DSP chips in 2005.

Samplify for Windows is available for free (full functionality during a
30-day evaluation) and as shareware ($49.95) from
http://www.samplify.com/page8.html.

Target applications include signal capture boards, signal generator
cards, medical instruments, test and measurement equipment, wireless
sensor networks, signal transfer and storage networks, and high-speed
A/D and D/A converters.

Try Samplify for Windows on your PC, to see how well your signals
samplify (compress).  If you like Samplify's compression results (at
10+ Msamp/sec on your PC), contact Samplify Systems to get identical
results using your FPGA or DSP, at sampling rates up to 100 Msamp/sec.

Wanted: signals to compress
---------------------------

Samplify Systems is looking for signals to compress:  sampled data from
A/D (or for D/A) converters, streams of numbers, matrices, etc. that
aren't currently being compressed, to determine how well Samplify
compresses such signals.  Samplify will compress "traditional"
sampled data, such as speech (PCM, 8 ksamp/sec), audio (WAV, 48
ksamp/sec), and image (TIFF) files, but such signals already have
effective compression solutions (ADPCM, MP3, WMA, JPEG, etc).  Instead,
Samplify is targeting high-speed sampled data signals that haven't
been compressed (or compressible) before.

Samplify compresses streams of numbers (integers) that represent
real-world signals, signals for which no effective compression
solutions have been available.  If the following bullets describe your
signals and/or systems, please try Samplify for Windows:

=B7	You would save money by reducing signal storage or network traffic
bottlenecks
=B7	You've never tried to compress your signals before
=B7	You work with bandlimited (oversampled) signals, where the sampling
rate is at least two times higher than your signal bandwidth
=B7	Your sampling rates are reasonably high (5+ Msamp/sec)
=B7	You system already contains an FPGA (Xilinx, Altera) or DSP (TI,
ADI, Freescale) in the signal processing path, or you are planning to
use FPGAs or DSPs

After trying Samplify for Windows, please send us an e-mail
(info@samplify.com) describing your signals, and let us know what kind
of compression ratio or rate-distortion curve you got using Samplify
for Windows, and whether you plan to use lossless (SignalZIP) or lossy
(Samplify, NoiseTrak) compression.

More information
----------------

For more information about Samplify's new compression technologies,
please visit:

Home page:  http://www.samplify.com

Download Samplify for Windows:  http://www.samplify.com/page8.html, or
from
http://www.hotdownloads.com/index.php3?job=3D3&id=3D71284

Electronic Design magazine article (20 Sep 2004 issue) about Samplify:
http://www.elecdesign.com/Articles/Print.cfm?ArticleID=3D8691

Samplify FAQ (white paper):  http://www.samplify.com/page6.html
Samplify for Windows manual:  http://www.samplify.com/page6.html

FPGA products (Xilinx, Altera):  http://www.samplify.com/page4.html
DSP products (TI, ADI, Freescale):  http://www.samplify.com/page5.html


Article: 79065
Subject: Programmable clock problem
From: NOSPAMS@wanadoo.fr (=?ISO-8859-1?Q?Didier_M=E9quignon?=)
Date: Sun, 13 Feb 2005 19:37:50 +0100
Links: << >>  << T >>  << A >>
Hi,

I need help for a Cypress programmable clock CY27EE16, maybe someone has
already used this PLL here. This clock has a PLL, dividers, 6 outputs, 9
x 256 bytes of EEPROM, 256 bytes SRAM, and an I2C interface. There are 2
programmable I2C address, one for the 8 x 256 bytes EEPROM, and a 2nd
for 256 bytes EEPROM/SRAM clock registers.
The default I2C address are $40 to $47 for EEPROM and $68-$69 for the
clock.
My problem, after wrong I2C sequence, that now I can see I2C devices at
$78-$7F and I can see the 16 first bytes of each 256 bytes to $FF. So I
see only the EEPROM bytes and this bytes are software write protected by
a clock register. Where is the clock registers ? Normally also at
$7E-$7F, there are a conflict. I have tried to remove WP without succes,
I'am not sure than I can write to the clock registers.

Soneone has some experiance with I2C address conflict with this chip ?

Thanks for your help...

Regards,

Didier.  

-- 
Didier MEQUIGNON         Aniplayer download: http://aniplay.atari.org
CT60 package download: http://ct60conf.atari.org

Article: 79066
Subject: Fast counting in Spartan 3
From: Preben <64bitNOspamNO@mailme.dk>
Date: Sun, 13 Feb 2005 20:33:07 +0100
Links: << >>  << T >>  << A >>
Hi everyone,

I would like to count very fast (100MHz) using an 19-bit counter in 
spartan 3 - any ideas how to make such a fast counter!
One idea is to use the Chinese Remainder Theorem to count, but that 
make's a "hit-rate" of only 60% or so, if the timing is restricted.

The other Idea is to make a pipelined counter, but that make's the whole 
design a lot more complicated.

Any other Ideas?


I use the Spartan 3 digilent starter board!


Thanks in advance!

/ Preben

Article: 79067
Subject: Re: Fast counting in Spartan 3
From: "Peter Alfke" <alfke@sbcglobal.net>
Date: 13 Feb 2005 12:10:46 -0800
Links: << >>  << T >>  << A >>
Preben, have you done the timing analysis on a straightforward
implementation?
I have run longer counters at higher frequency in Spartan 3...There is
a built-in carry structure!
Is your counter loadable? if not, your counter might be implemented as
a ripple ( or a partially-ripple) counter, then you can count several
hundred MHz ( use the Q as clock source for the next slice, or next
group of 4 flip-flops.) If you do this, you have to wait out the ripple
delay before you use or decode the counter output.
Thre are many ways to achieve 100 MHz, or 2x, or 4x that performance,
it all depends on your real requirements.
Peter Alfke, Xilinx Applications.


Article: 79068
Subject: Re: Fast counting in Spartan 3
From: "newman5382" <newman5382@yahoo.com>
Date: Sun, 13 Feb 2005 20:20:50 GMT
Links: << >>  << T >>  << A >>

"Preben" <64bitNOspamNO@mailme.dk> wrote in message 
news:420fab6f$0$12714$edfadb0f@dread14.news.tele.dk...
> Hi everyone,
>
> I would like to count very fast (100MHz) using an 19-bit counter in 
> spartan 3 - any ideas how to make such a fast counter!
> One idea is to use the Chinese Remainder Theorem to count, but that make's 
> a "hit-rate" of only 60% or so, if the timing is restricted.
>
> The other Idea is to make a pipelined counter, but that make's the whole 
> design a lot more complicated.
>

!00 MHz does not sound that fast for a Spartan III.  Did you try a HDL 
synthesys and P&R with time constraint?

> Any other Ideas?
Perhaps an 8 bit prescaler with a pipelined clock enable to an 11 bit 
counter.

20 bit counter using block RAM
http://www.synplicity.com/literature/syndicated/pdf/spartan_3_v3_i3.pdf

Have fun

-Newman

>
>
> I use the Spartan 3 digilent starter board!
>
>
> Thanks in advance!
>
> / Preben 



Article: 79069
Subject: OPB <-> WhishBone wrapper (opb_wb_wrapper at opencores)
From: Sylvain Munaut <tnt_at_246tNt_dot_com@reducespam.com>
Date: Sun, 13 Feb 2005 21:24:45 +0100
Links: << >>  << T >>  << A >>
Hello,

I'm trying since yesterday to interconnect the opencore mac to a microblaze design.
After several problems solved, I'm stuck.

The "Generate netlist now works fine" but When I try to "Generate bitstream",
I have three errors from NgdBuild :


ERROR:NgdBuild:604 - logical block 'wb2opb_0/wb2opb_0' with type 'wb2opb' could
not be resolved. A Pin name mispelling can cause this, a missing edif or ngc
file, or the mispelling of a type name. Symbol 'wb2opb' is not supported in target
'spartan 3'.
ERROR:NgdBuild:604 - logical block 'opb2wb_0/opb2wb_0' with type 'opb2wb' could
not be resolved. A Pin name mispelling can cause this, a missing edif or ngc
file, or the mispelling of a type name. Symbol 'opb2wb' is not supported in target
'spartan 3'.
ERROR:NgdBuild:604 - logical block 'wb_ethermac_0/wb_ethermac_0/maccore' with
type 'eth_top' could not be resolved. A Pin name mispelling can cause this, a
missing edif or ngc file, or the mispelling of a type name. Symbol 'eth_top' is
not supported in target 'spartan 3'.


For the wb_ethermac core, I've created a file that includes the eth_top of the
ethernet mac core on opencore and present the interface to the outside world.
I've done this as a ISE project then I synthetized it to have a .ngc file (because
I have both VHDL & Verilog there) then I created an IP from this netfile and my 
vhdl top file.

Any one has a clue on what to do ? Has anyone make this work ? (I'm using ISE/EDK 6.3)


Thanks,

	Sylvain

Article: 79070
Subject: Re: Fast counting in Spartan 3
From: "Falk Brunner" <Falk.Brunner@gmx.de>
Date: Sun, 13 Feb 2005 21:29:41 +0100
Links: << >>  << T >>  << A >>

"Preben" <64bitNOspamNO@mailme.dk> schrieb im Newsbeitrag
news:420fab6f$0$12714$edfadb0f@dread14.news.tele.dk...
> Hi everyone,
>
> I would like to count very fast (100MHz) using an 19-bit counter in
> spartan 3 - any ideas how to make such a fast counter!

Just a straight forward approach. Been there, done this recently. It was a
32 Bit counter, running at 130 MHz and still having some timing margin left.

Regards
Falk




Article: 79071
Subject: Re: second flop in asyn reset distribution
From: "fpgabuilder" <fpgabuilder-news@yahoo.com>
Date: 13 Feb 2005 12:30:18 -0800
Links: << >>  << T >>  << A >>
Peter, Hal and all.

I was really interested in analysing this at the transistor level which
I have now thanks to your inputs and other vlsi references that I
looked up.  

Thanks.
-sanjay


Article: 79072
Subject: Re: Fast counting in Spartan 3
From: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Date: Sun, 13 Feb 2005 20:34:57 +0000 (UTC)
Links: << >>  << T >>  << A >>
Preben <64bitNOspamNO@mailme.dk> wrote:
> Hi everyone,

> I would like to count very fast (100MHz) using an 19-bit counter in 
> spartan 3 - any ideas how to make such a fast counter!
> One idea is to use the Chinese Remainder Theorem to count, but that 
> make's a "hit-rate" of only 60% or so, if the timing is restricted.

Spartan 3, 100MHz and ... fast? I think you are kidding. Did you try to
implement the counter? I guess it will run much faster

Bye

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

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

Article: 79073
Subject: Xilinx BRAM FIFO problems ModelSim Post Place and Route
From: "Brad Smallridge" <bradsmallridge@dslextreme.com>
Date: Sun, 13 Feb 2005 12:38:22 -0800
Links: << >>  << T >>  << A >>
Hello All,

I have been simulating the FIFO code shown below with good success.
I have tested the behaviour under ModelSim waveform, where I send
three fifowren pulses, followed by three fiforden pulses, and a sequence
of numbers at the fifoin port, to determine if the right outputs pop off the
FIFO at the right time.  I also test the FIFO in larger projects.

However. After generating Place and Route files, I ran the same
waveform testbed, same vectors, and got 0 outputs.  No setup
warnings.  What is wrong, or how do I find out what is wrong?

Thanks in Advance,

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


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

library UNISIM;
use UNISIM.VComponents.all;

entity fifo36 is
 port(
 clk    : in  std_logic;
 reset  : in  std_logic;
 fifowren  : in  std_logic;
 fiforden  : in  std_logic;
 fifooe    : in  std_logic;
 fifoin : in  std_logic_vector(35 downto 0);
 fifoout: out std_logic_vector(35 downto 0)
 );
end fifo36;

architecture Behavioral of fifo36 is

component RAMB16_S36_S36

  generic (
       WRITE_MODE_A : string := "READ_FIRST";
       WRITE_MODE_B : string := "READ_FIRST";
       INIT_A : bit_vector  := X"000000000";
       SRVAL_A : bit_vector  := X"000000000";
       INIT_B : bit_vector  := X"000000000";
       SRVAL_B : bit_vector  := X"000000000";

       INITP_00 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INITP_01 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INITP_02 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INITP_03 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INITP_04 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INITP_05 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INITP_06 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INITP_07 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";

       INIT_00 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_01 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_02 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_03 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_04 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_05 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_06 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_07 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_08 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_09 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_0A : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_0B : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_0C : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_0D : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_0E : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_0F : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_10 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_11 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_12 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_13 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_14 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_15 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_16 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_17 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_18 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_19 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_1A : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_1B : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_1C : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_1D : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_1E : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_1F : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_20 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_21 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_22 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_23 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_24 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_25 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_26 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_27 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_28 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_29 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_2A : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_2B : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_2C : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_2D : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_2E : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_2F : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_30 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_31 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_32 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_33 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_34 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_35 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_36 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_37 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_38 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_39 : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_3A : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_3B : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_3C : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_3D : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_3E : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000";
       INIT_3F : bit_vector(255 downto 0) :=
       X"0000000000000000000000000000000000000000000000000000000000000000"

  );

  port (DIA    : in STD_LOGIC_VECTOR (31 downto 0);
        DIB    : in STD_LOGIC_VECTOR (31 downto 0);
        DIPA   : in STD_LOGIC_VECTOR (3 downto 0);
        DIPB   : in STD_LOGIC_VECTOR (3 downto 0);
        ENA    : in STD_logic;
        ENB    : in STD_logic;
        WEA    : in STD_logic;
        WEB    : in STD_logic;
        SSRA   : in STD_logic;
        SSRB   : in STD_logic;
        CLKA   : in STD_logic;
        CLKB   : in STD_logic;
        ADDRA  : in STD_LOGIC_VECTOR (8 downto 0);
        ADDRB  : in STD_LOGIC_VECTOR (8 downto 0);
        DOA    : out STD_LOGIC_VECTOR (31 downto 0);
        DOB    : out STD_LOGIC_VECTOR (31 downto 0);
        DOPA   : out STD_LOGIC_VECTOR (3 downto 0);
        DOPB   : out STD_LOGIC_VECTOR (3 downto 0)
       );
end component;

 signal fifowraddr : std_logic_vector(8 downto 0);
 signal fifordaddr : std_logic_vector(8 downto 0);

begin

  bram00 : RAMB16_S36_S36
   port map (
 DIA    => fifoin(31 downto 0),
 DIB    => (others=>'0'),
 DIPA   => fifoin(35 downto 32),
 DIPB   => (others=>'0'),
 ENA    => '1',
 ENB    => fifooe,
 WEA    => fifowren,
 WEB    => '0',
 SSRA   => '0',
 SSRB   => '0',
 CLKA   => clk,
 CLKB   => clk,
 ADDRA  => fifowraddr,
 ADDRB  => fifordaddr,
 DOA    => open,
 DOB    => fifoout(31 downto 0),
 DOPA   => open,
 DOPB   => fifoout(35 downto 32)
 );

 fifocnt: process(clk)
 begin
 if(clk'event and clk='1') then
   if(reset='1') then
     fifowraddr<=(others=>'0');
     fifordaddr<=(others=>'0');
   else
     if(fifowren='1') then
     fifowraddr<=fifowraddr+1;
   end if;
     if(fiforden='1') then
     fifordaddr<=fifordaddr+1;
   end if;
   end if;
 end if;
 end process;


end Behavioral;



Article: 79074
Subject: IPIF
From: "Fayette Sims" <tortoisedundee@yahoo.com>
Date: Sun, 13 Feb 2005 16:42:56 -0500
Links: << >>  << T >>  << A >>
Hello:



I am growing old trying to connect a simple peripheral to the user register
ipif. I first created the template using the create/import peripheral
wizard. If I try to implement any of my components in the user_logic.vhd
file, that were derived from vhdl functional models from schematics I get
errors like below. No matter how simple the schematic.



ERROR:NgdBuild:466 - output pad net 'scda<2>' has illegal connection.
Possible

   pins causing this are:

     pin I0 on block scda<2>_rt with type LUT1



Any help would be greatly appreciated.

Fayette





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