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 117125

Article: 117125
Subject: Re: URGENT HELP NEEDED: LVDS
From: John_H <newsgroup@johnhandwork.com>
Date: Fri, 23 Mar 2007 13:21:48 GMT
Links: << >>  << T >>  << A >>
GaLaKtIkUs™ wrote:
> On Mar 23, 8:45 am, "MM" <m...@yahoo.com> wrote:
>> "GaLaKtIkUsT" <taileb.me...@gmail.com> wrote in message
>>
>> news:1174626985.784318.16210@n76g2000hsh.googlegroups.com...
>>
>>
>>
>>> This board INVERTS LVDS PAIRS ie: if I
>>> have an output {XP,XN} I get the input {XN,XP}. ({A,B}=A on P pin and
>>> B on N pin).
>> 1. I doubt anyone can understand your description above. Are you trying to
>> say that the wires are crossed on the board?
>> 2. Use a scope.
>>
>> /Mikhail
> 
> They are not crossed like X. the problem is the following if we try
> (using the loop back board) to get P pin on P pin and N pin on N pin
> we will be obliged to cross the wires (make an X on the board). To
> avoid this the guy ho made that loopback board decided to send the P
> to N and N to P and says that the only problem will the inversion of
> the logic levels.
> I reformulate my question in more simple terms:
> I LVDS pins are crossed what would be the result? only inversion of
> logic levels or more?
> Mehdi

1) Are you using 8B10B or some similar coding?
2) use a scope

Article: 117126
Subject: Re: Austin the Altera Mole
From: John_H <newsgroup@johnhandwork.com>
Date: Fri, 23 Mar 2007 13:26:03 GMT
Links: << >>  << T >>  << A >>
Paul wrote:
> What's with all the xilinx altera rivalry in the world?  I mean.. I
> can seem THEM being rivals... being competitors and stuff.... but why
> US, the users?  We'd be far better off if we just picked whatever part
> was best for our individual application.  At work, I've generally used
> xilinx - just because they have best fit the applications I was
> looking for.  When I'm mucking around with a project at home, Altera
> is usually better because I can get much more FPGA in a QFP package
> that I stand a chance at soldering by hand.  Brand loyalty seems so
> silly to me... why? to avoid learning another one of those wildly
> difficult tool sets? (psst... I'm joking... neither is too
> challenging!)   Anywho...   does anyone actually have a legitimate
> reason for brand loyalty?  Or is it just the PC/Mac/Linux crap
> rehashed?
> 
> 
> 
> On Mar 22, 10:47 am, Austin Lesea <aus...@xilinx.com> wrote:
>> Paul,
>>
>> Thanks for this morning's good laugh.
>>
>> Wondered where you were hiding.
>>
>> Welcome back.
>>
>> Austin

Why do Ford owners give Chevy drivers flak?

Article: 117127
Subject: Re: IEEE 802.3 Ethernet MAC implemetation in FPGA
From: "Symon" <symon_brewer@hotmail.com>
Date: Fri, 23 Mar 2007 13:47:58 -0000
Links: << >>  << T >>  << A >>
http://www.fpga4fun.com/10BASE-T0.html

"ritesh" <rits.desai@gmail.com> wrote in message 
news:1174627417.054633.106210@o5g2000hsb.googlegroups.com...
> When I am sending some frame from the PC to MAC implemented in the
> ML-402 board, It receives the whole frame with proper data, but not
> able to calculate FCS properly and generate a error signal for it.
> Same thing happen in case of Transmission also.
>    can anyone suggest how to impletement CRC and generate a FCS, and
> in what order we have to send frame to calculate it?
> 



Article: 117128
Subject: Re: multiple clock domain issues
From: "Daniel S." <digitalmastrmind_no_spam@hotmail.com>
Date: Fri, 23 Mar 2007 10:09:06 -0400
Links: << >>  << T >>  << A >>
JK wrote:
> Few doubts I would like to get clarified,
> 
> 1. Weather synchronizers are required for control signals only or for
> data signals also?

If you need to guarantee that all data bits will be valid at the same time 
as control signals are applied and the control signals do not provide such 
a guarantee (handshake or other such), you will need to synchronize the 
data somehow. This is commonly done with asynchronous FIFOs.

> 2. Internal to FPGA, suppose 2 different clock domains are there - do
> signals crossing from one clock domain
>    to another need synchronizers? or can we avoid synchronizers by
> applying some constraints?
>    If yes, what are these contraints(in xilinx)?

Domain-crossing must be handled by logic, constraints cannot do anything 
about it. If the two clocks are related by DCM, the synthesis tools are 
often capable of figuring the constraints out by themselves but this may 
still require logic if the clock ratios may lead to close cross-domain 
clock edges.

> 3. How can we decide on a false path? suppose one signal is crossing
> from one clock domain to another can be
>    declared as a false path?

Yes... but only if momentarily invalid data will not cause a design 
malfunction. For example, I built a display engine and the registers to 
configure the display line and column count are routed as false paths 
between my control bus clock and display engine clocks because the 
worst-case side-effect is a one-frame display glitch, which is completely 
insignificant since the display's PLL will need a few seconds to lock on 
the new timings.

> 4. Is it OK to have negative hold time(<1 ns) in timing report? can
> we
> ignore this timing violation safely?

Negative slack indicates that your design failed to meet your timing 
targets. There is no guarantee that the design will work correctly. Even if 
it does work on the testbench, it may become unstable with minute 
variations across devices, supply voltages, aging and operating temperature.

> 5. What is the difference between clock jitter & clock skew?
>    With Xilinx DCMs, I need Clk2x, Clk2x<180, Clk2x<270 & Clk4x.
>    So, with no other option, I am going for cascaded DCMs.
>    In this kind of situations, what best we can do to avoid/minimize
> clock skew problems?

Jitter is a random variation around an average period or offset, it is 
caused by variations in the transistors' switching characteristics which 
are themselves caused by numerous factors like electromagnetic noise, 
supply voltage and temperature. Skew is a constant (in theory) delay 
mismatch caused primarily by uneven path lengths.

Since DCMs add a fair amount of jitter and require low jitter to work 
properly, it is likely that your cascaded DCM will fail to lock due to 
compound jitter, you will most likely have to use some other external clock 
source. I tried cascaded DCMs with V2P a few times but the second DCM never 
locked on, you may have more luck with the V4.

Article: 117129
Subject: iMPACT:CRC Error bit is NOT 0
From: "toanfxt" <tranxuantoan@gmail.com>
Date: 23 Mar 2007 07:59:46 -0700
Links: << >>  << T >>  << A >>
Hi everybody,

I am using XSA-3S1000  v1.0 and XStend v3.0. Tools are Xilinx ISE 8.1i
and EDK 8.1i.
I created a simple project in EDK. Then I downloaded x_download.bit.
If I used XSA-3S1000 board standalone, so iMPACT worked well. But when
I used both XSA-3S1000 and XStend board, iMPACT always showed an
error: "An error appears in the status register;
the CRC Error bit is NOT 0." and failed to program.

Anybody please tell me why ? or any suggestion.

Thanks in advance,
Toan


Article: 117130
Subject: Re: XST coverage
From: Austin Lesea <austin@xilinx.com>
Date: Fri, 23 Mar 2007 08:03:55 -0700
Links: << >>  << T >>  << A >>
Hans,

I was informed by the software group that the information on the website
was outdated, and they needed to update it.

They replied, saving me the effort.

If anything, the software folks are delighted I review this board, and
let them know about issues (saves them a lot of time).

I do a lot of reading for Xilinx.  Since I read at faster than 2500 wpm,
it is nothing for me to read the entire Cyclone 3 handbook, user's
guide, white papers and app notes.  Takes me about 30 minutes.

With almost total recall, I can then help others write white papers, and
offer up my opinions.

As opposed to our competition, we were not all required to take empathy
and sensitivity training classes (Business Week article*) -- we have a
code of conduct that places respect for others at the highest level.

"Nice," however is not one of our values.  Being nice is my choice, but
should never get in the way of being honest.

Austin

*
http://www.businessweek.com/magazine/content/06_27/b3991084.htm

Article: 117131
Subject: Re: Virtex-II block RAM problem
From: Duane Clark <junkmail@junkmail.com>
Date: Fri, 23 Mar 2007 15:39:02 GMT
Links: << >>  << T >>  << A >>
Dmitry Teytelman wrote:
> On Wed, 21 Mar 2007, Duane Clark wrote:
> 
>> dimtey@moc.liamg wrote:
>>> ... So here is the problem: the data is written correctly into
>>> the SRAM, but not into the block RAM. It is a timing problem -
>>> errors go away if I lower the clock frequency. ...
>> Show the actual clock constraints you are using.
> 
> The data acquisition logic and BRAMs are clocked by a DCM driving a
> BUFG. The DCM divides the input clock by 2 (using CLKDV output). Here
> is the timing constraint on the DCM input clock:
> 
> NET "clkp" TNM_NET = FFS(*) "clkp"; TIMESPEC "TS_clkp" = PERIOD
> "clkp" 3.8 ns HIGH 50 %;
> 

Let me step back from the long thread a moment. According to the
constraints guide:

Assigning Definitions for DLL/DCM Clocks

TRANSLATION (NGDBuild) propagates TNM_NET tags through DLLs and DCMs. 
NGDBuild creates new TNM_NETs for each of the DLL and DCM output taps 
and associated PERIOD statements. The code takes into account the phase
relationship factor of the outputs for the DLL, and also performs the 
appropriate multiplication or division of the PERIOD value.

The code also takes into account any of the PHASE taps adjustments. This 
means that for OFFSETs and cross-clock domain paths, the timing tools 
now know the relationship for PHASE shifts also.

So have you tried just a period constraint on the input clock and 
removed all other constraints?

Article: 117132
Subject: Re: Virtex-II block RAM problem
From: Duane Clark <junkmail@junkmail.com>
Date: Fri, 23 Mar 2007 15:41:43 GMT
Links: << >>  << T >>  << A >>
Duane Clark wrote:
> Dmitry Teytelman wrote:
>> On Wed, 21 Mar 2007, Duane Clark wrote:
>>
>>> dimtey@moc.liamg wrote:
>>>> ... So here is the problem: the data is written correctly into
>>>> the SRAM, but not into the block RAM. It is a timing problem -
>>>> errors go away if I lower the clock frequency. ...
>>> Show the actual clock constraints you are using.
>> The data acquisition logic and BRAMs are clocked by a DCM driving a
>> BUFG. The DCM divides the input clock by 2 (using CLKDV output). Here
>> is the timing constraint on the DCM input clock:
>>
>> NET "clkp" TNM_NET = FFS(*) "clkp"; TIMESPEC "TS_clkp" = PERIOD
>> "clkp" 3.8 ns HIGH 50 %;
>>
> 
> Let me step back from the long thread a moment. According to the
> constraints guide:

Ugg... never mind. I see you did say this was the input clock.

Article: 117133
Subject: Re: Xilinx Virtex-4 Embedded Ethernet Wrapper IP Core - HELP with UCF
From: "Jim Wu" <jimwu88NOOOSPAM@yahoo.com>
Date: 23 Mar 2007 09:25:19 -0700
Links: << >>  << T >>  << A >>
On Mar 22, 5:53 pm, mwiesb...@gmail.com wrote:
> Here are a few more details about the project of getting this core up
> and running:
>
> Using the GMII Interface, in trimode
> I am trying to keep this project inside of ISE , and not use EDK for
> anything at the moment.
> The only changed I made to the UCF so far would be the LOC assignments
> of the RX/TX Signals and with the IDELAYCTRL location. I am still
> looking more into the IDELAYCTRL location that I should be using since
> this part is still pretty new to me and I haven't done much work with
> constraints past basic pin assignment.
>
> As well, if anyone know any good sites that go over the constraints
> used in these UCF files, please let me know. I do already know about
> Xilinx's scattered PDF files on their site which for me at least do
> not always tend to be that clear, so anything other than those (such
> as some .edu site with lab handouts, etc) would be great!
>
> Thanks again,
> -Mark
>
> On Mar 22, 5:31 pm, mwiesb...@gmail.com wrote:
>
> > Hello,
>
> > I am trying to get the Virtex-4 Ethernet MAC Wrapper IP Core up and
> > running on my Avnet Virtex-4 FX12 Mini Module (http://tinyurl.com/
> > yqc6ah), and I am having all sorts of problems. One of the main
> > problems right now seems to be my understanding of the UCF file and
> > what to edit or not to edit, since the rest of the design should be
> > already set up fine from what I have read in the user guide.
>
> > I am trying to run the example design that was generated,so that I may
> > send the board a packet and it send me one  back to make sure
> > everything is working correctly, but so far no luck.
>
> > Has anyone used this ip core before with some successes , no matter
> > what version? Please let me know if so... it would be greatly
> > appreciated!
>
> > -Mark
> > (I can post or upload as many details/files as requested, but I didnt
> > want to just spam all that stuff up here on the first post)

I have used the Coregen TEMAC core in several designs. The generated
files include the LOC for IDELAYCTRL in the source code, so I would
recommend you remove that first. .e.g. my vhdl wrapper
temac_v3_2_block.vhd has the line below. You can either comment it out
or remove it completely.
  attribute loc of dlyctrl           : label is "IDELAYCTRL_X2Y1";

If you don't care about the IDELAYCTRL replication, you don't even LOC
it in UCF. If you really want to know which pins are associated with
which IDELAYCTRL, you can use ADEPT to view that (http://
home.comcast.net/~jimwu88/tools/adept/): load the device and click
View->Show IDELAYCTRL).

The other thing you may need to play with is the delay on gmii_rx_clk.
You can change it (IOBDELAY_VALUE of IDELAY block) either in source
code (rx_clk_gen.v/vhd) or in UCF.

HTH,
Jim



Article: 117134
Subject: Amphion IP MPEG2 Video DecoderCores
From: amitpatel130@gmail.com
Date: 23 Mar 2007 10:06:59 -0700
Links: << >>  << T >>  << A >>
Has anybody ever used the Amphion CS6651 Cores targeted for either
Xilinx or Altera FPGAs?

I am currently using the Video core on an Altera Stratix FPGA and I am
having trouble getting the core to function.  I have set the clock
rate to 27mhz, along with the external frame store as well.  I am
using the core as a free running decoder, only setting up the 1us
clock divisor register to 32'd0000001B (decimal 27 for the 27mhz clock
source).


Article: 117135
Subject: Re: Altera introduces Cyclone III devices, 'ships' 65nm
From: Tim <tim@nooospam.roockyloogic.com>
Date: Fri, 23 Mar 2007 17:18:15 +0000
Links: << >>  << T >>  << A >>
Austin Lesea wrote:

> The only problem I have is that once you see how much 65nm varies due to
> process (on the same die, let alone the same wafer), 'typical' ends up
> being pretty meaningless.

So if we could probe inside a recent FPGA, we would have a real chance 
of seeing a noticeable speed difference across the die?

Any idea what the percentage would be? I suppose it could be checked by 
building ring oscillators at various locations.

Article: 117136
Subject: Re: Austin the Altera Mole
From: "Andy Peters" <google@latke.net>
Date: 23 Mar 2007 10:42:21 -0700
Links: << >>  << T >>  << A >>
On Mar 23, 6:26 am, John_H <newsgr...@johnhandwork.com> wrote:
> Paul wrote:
> > What's with all the xilinx altera rivalry in the world?  I mean.. I
> > can seem THEM being rivals... being competitors and stuff.... but why
> > US, the users?  We'd be far better off if we just picked whatever part
> > was best for our individual application.  At work, I've generally used
> > xilinx - just because they have best fit the applications I was
> > looking for.  When I'm mucking around with a project at home, Altera
> > is usually better because I can get much more FPGA in a QFP package
> > that I stand a chance at soldering by hand.  Brand loyalty seems so
> > silly to me... why? to avoid learning another one of those wildly
> > difficult tool sets? (psst... I'm joking... neither is too
> > challenging!)   Anywho...   does anyone actually have a legitimate
> > reason for brand loyalty?  Or is it just the PC/Mac/Linux crap
> > rehashed?
>
> > On Mar 22, 10:47 am, Austin Lesea <aus...@xilinx.com> wrote:
> >> Paul,
>
> >> Thanks for this morning's good laugh.
>
> >> Wondered where you were hiding.
>
> >> Welcome back.
>
> >> Austin
>
> Why do Ford owners give Chevy drivers flak?

Us Honda drivers laugh at both.

-a


Article: 117137
Subject: Re: Why is Xilinx's WebPACK so inferior?
From: "Andy Peters" <google@latke.net>
Date: 23 Mar 2007 11:00:09 -0700
Links: << >>  << T >>  << A >>
On Mar 20, 9:09 pm, "Daniel S." <digitalmastrmind_no_s...@hotmail.com>
wrote:

> I really wish Xilinx would put more effort in making their synthesis
> tool-chain more stable before reworking GUIs and adding more features.
> Until then, Synplify is still an option (perhaps more along the lines of
> necessary) for more serious projects.

Synplify and Precision are options only if the budget allows.

At my previous job, we used Precision because we used Brand A, Brand L
and Brand X parts.  Now I do only Brand X because the volumes are low
(and we like the PPC cores).  A Precision license is a substantial
cost, and XST seems to do what we need (in spite of its annoyances).

-a


Article: 117138
Subject: Re: Off topic: what is the purpoe of XST?
From: <steve.lass@xilinx.com>
Date: Fri, 23 Mar 2007 12:09:30 -0600
Links: << >>  << T >>  << A >>
The schematic flow is slightly more than maintenance mode.
I would call it minimal improvement mode with most effort focused
on quality.

Steve

"Jim Granville" <no.spam@designtools.maps.co.nz> wrote in message 
news:46031907$1@clear.net.nz...
>
> Thanks. I should have queries Schematic flow as well ?
> as some still use that (see another thread..) - is that in maintenance 
> mode as well ?
>
> Of course, maintenance mode can be a good thing, because it
> means the code-base is very stable, with no surprises lurking in the next 
> updates.... :)
>
> -jg
> 



Article: 117139
Subject: Re: Custom IP ports to be used as GPIOs
From: "MM" <mbmsv@yahoo.com>
Date: Fri, 23 Mar 2007 13:36:32 -0500
Links: << >>  << T >>  << A >>
Post your system.mhs file...

/Mikhail


"Sandip" <sandip.gaikwad@gmail.com> wrote in message 
news:1174651444.673365.68820@y66g2000hsf.googlegroups.com...
> Hi,
>
> I have attached my custom IP to the OPB bus. The Custom IP contains
> ports which should directly interact with the outside world. I have
> ML403 board. I want to connect these ports to these GPIOs. So I edited
> the system.ucf file to contain these ports and with oppropriate GPIO
> names. Generation Netlist was successfull. But it gave error during
> bitstream generation. The errors specified that the nets that put in
> the system.ucf file was unable to recognise.
>
> Can anyone help me in connecting the custom IP ports to the GPIO pins.
>
> Thanks and regards,
> Sandip
> 



Article: 117140
Subject: Re: Altera introduces Cyclone III devices, 'ships' 65nm
From: Austin Lesea <austin@xilinx.com>
Date: Fri, 23 Mar 2007 11:39:28 -0700
Links: << >>  << T >>  << A >>
Tim,

This is something one has to do in order to know just how "bad" the
timing can get.  Obviously, one has to specify the worst possible timing
 in order to have a design that works.

If one logic block (let us be generic here) is slow, and it is slower
than what you thought it was going to be when you made your speeds file,
then that chip might fail to meet timing on that path, and you get data
errors.

How you go about finding the worst of the worst on a die is something
that we have to do, so that we can be sure we are OK when we ship the
part to the customer.

A ring oscillator is a very useful thing to do this, as measuring
frequencies is often easier than measuring delays.  There are other ways
to do this, also.

Whatever, we have to do this in such a way to meet the quality
objectives, and the cost of testing objectives at the same time.  This
is yet another reason why Easypath(tm) devices can be much lower in
cost:  we only need to test the paths you use to meet timing, not every
possible path.  It is also a reason why ASICs (structured, or otherwise)
might have very poor yields all of the sudden (known as a 'yield crash'
in the business)!  If your ASIC has a yield crash, you may only be
affected because your supply of chips disappears, but if you are paying
for the wafers, then you will be doubly punished.

There are papers on this subject (search IEEE, etc.) as well as papers
yet to be published on the subject.

This is one more reason why using a FPGA device takes a lot of the work
out of what you would have to do otherwise with an ASIC:  we do the hard
work so you don't have to.  We also remove substantial risk (yield,
performance-timing closure, latchup, single effect upsets, etc.).

Every one of the risks above is documented fact for some structured ASIC
suppliers.  That means each one has already happened to at least one
customer!  This is one of the reasons why the structured ASIC business
has more companies that have tried it and left, than those that are
still struggling to make a go of it.  Don't forget that Xilinx, too, was
once a 'structured ASIC supplier' (HardWire(tm) devices).  Been there,
done that, learned our lesson.

And yes, as things have gotten smaller, the variation has reared its
ugly head.  Learning to live with the variation, or prevent it in the
structures that you care about is no easy thing to do.  Identically
drawn devices, next to each other, can vary by +/- 20% in some cases.
Try using devices like that to match something at all!  The good news is
that we IC designers "have ways" to meet our objectives.

Austin

Article: 117141
Subject: Re: Programming XCF from MicroBlaze over JTAG???
From: "zcsizmadia@gmail.com" <zcsizmadia@gmail.com>
Date: 23 Mar 2007 13:34:32 -0700
Links: << >>  << T >>  << A >>
On Mar 23, 4:02 pm, "Bob Golenda" <bgoli...@nospam.net> wrote:
> Hi Zoltan,
>
> > I've done it! You don't have to implement the whole xsvfplayer.
>
> Youi've done exactly what?  Written a stand alone JTAG programmer that
> programs the XCF part without using any XSVF files or XSVFPlayer etc. stuff?
>
> > If you want to support only xcf devices in a fixed environment, the
> > programming is fairly simple.
>
> Sure, but it's knowing what you need to do, and the timing that is the
> hardest part, since there is no spec for programming the XCF.

Yes, without xsvf player. We have very limited resources in our uC, so
I have to program the XCF page by page (512 bytes). I've just wrote
the code to implement the JTAG programming protocol to program one
page on XCF and then stream the mcs file page by page to the uC and it
programs the flash.

>>there is no spec for programming the XCF
You can find some open-source xcf programming tools using the parallel
port pins to program a xcf device like a JTAG programmer. You can
strip down those tools to the bare minimum.
You can find a conservative JTAG clock freq, so you should'nt worry
about timing.

Zoltan


Article: 117142
Subject: Solaris 10
From: Michael Laajanen <michael_laajanen@yahoo.com>
Date: Fri, 23 Mar 2007 21:36:27 +0100
Links: << >>  << T >>  << A >>
Hi,

Have anyone heard anything on Xilinx on Solaris 10 and AMD?


/michael

Article: 117143
Subject: Re: Programming XCF from MicroBlaze over JTAG???
From: "zcsizmadia@gmail.com" <zcsizmadia@gmail.com>
Date: 23 Mar 2007 13:41:22 -0700
Links: << >>  << T >>  << A >>
On Mar 19, 4:41 pm, "Bob Golenda" <bgoli...@nospam.net> wrote:
> Thank you very much for that pointer.  It still appears that aside from what
> Antti did, no one (at least on this list) has successfully done a real JTAG
> programmer for the XCF...just XSVF Player type programmers.  I just find
> that odd.
>
> "MM" <m...@yahoo.com> wrote in message
>
> news:5684abF27jrufU1@mid.individual.net...
>
> > Take a look at this old discussion:
> >http://tinyurl.com/277l9a
>
> > /Mikhail

Stop whining and here is the code! But please don't ask for more help.
Figure out the rest on your own!

#define BITS(v, b)              (v) |= (1 << (b))
#define BITC(v, b)              (v) &= ~(1 << (b))
#define BITSC(v, b, s)          do { if (s) BITS(v, b); else BITC(v,
b); } while (0)
#define BITN(v, b)              (v) ^= (1 << (b))
#define ISBIT(v, b)             ((v) & (1 << (b)))

#define JTAG_ALL_ZEROS          NULL
#define JTAG_ALL_ONES           (void*)-1

#define XCF_IR_LENGTH           8
#define XCF_SERASE              0x0A
#define XCF_ISPEN               0xE8
#define XCF_FPGM                0xEA
#define XCF_FADDR               0xEB
#define XCF_FERASE              0xEC
#define XCF_FDATA0              0xED
#define XCF_CONFIG              0xEE
#define XCF_FVFY0               0xEF
#define XCF_FVFY1               0xF8
#define XCF_NORMRST             0xF0
#define XCF_USERCODE            0xFD
#define XCF_IDCODE              0xFE
#define XCF_BYPASS              0xFF

// This specifies the XCF location
// In this example there is S3-1000 device in fron of the XCF04s
#define XCF_HIR_LENGTH          6
#define XCF_TIR_LENGTH          0
#define XCF_HDR_LENGTH          1
#define XCF_TDR_LENGTH          0

#define jtag_tms(b)     BITSC(PORTC, PINC6, b)
#define jtag_tdi(b)     BITSC(PORTC, PINC5, b)
#define jtag_tck(b)     BITSC(PORTC, PINC3, b)
#define jtag_tdo()      ISBIT(PINC, PINC4)

void jtag_tck_cycle(int count)
{
    while (count--)
    {
        jtag_tck(1);
        jtag_tck(0);
    }
}

void jtag_tms_transition(unsigned int tms, int count)
{
    while (count--)
    {
        jtag_tms(tms & 1);
        jtag_tck_cycle(1);
        tms >>= 1;
    }
}

#define jtag_reset_tap_state()       jtag_tms_transition(0x1F, 5)
#define jtag_reset_idle_tap_state()  jtag_tms_transition(0x1F, 6)

void jtag_shift(u8* ptdi, u8* ptdo, int num_bits, int last)
{
    u8 tdi_byte, tdo_byte;
    int i;

    while (num_bits)
    {
        // Process on a byte-basis, LSB bytes and bits first
        if (ptdi == JTAG_ALL_ZEROS)
            // All zeros
            tdi_byte = 0;
        else
        if (ptdi == JTAG_ALL_ONES)
            tdi_byte = 0xFF;
        else
            tdi_byte = *ptdi++;

        tdo_byte = 0;
        for (i = 0; (num_bits && (i < 8)); i++)
        {
            num_bits--;

            if (last && !num_bits)
                // Exit Shift-DR state
                jtag_tms(1);

            // Set the new TDI value
            jtag_tdi(tdi_byte & 1);
            tdi_byte >>= 1;

            // Save TDO bit
            if (ptdo && jtag_tdo())
                tdo_byte |= 1 << i;

            // Pulse TCK
            jtag_tck_cycle(1);
        }

        // Save TDO byte
        if (ptdo)
            *ptdo++ = tdo_byte;
    }
}

int jtag_shift_r(
    unsigned int tms, int tms_count,
    u8* hdr, int hdr_count,
    u8* tdi, u8* tdo, int count,
    u8* trl, int trl_count,
    int last)
{
    if (tms_count)
        jtag_tms_transition(tms, tms_count);

    // Shift header
    if (hdr_count)
        jtag_shift(hdr, NULL, hdr_count, 0);

    // Shift TDI/TDO
    if (count)
        jtag_shift(tdi, tdo, count, trl_count == 0 && last);

    // Shift trailer
    if (trl_count)
        jtag_shift(trl, NULL, trl_count, 1);

    if (last)
        // Update TAP state:  Exit->Idle
        jtag_tms_transition(1, 2);

    return 0;
}

int jtag_shift_dr(u8* ptdi, u8* ptdo, int num_bits)
{
    return jtag_shift_r(
            1, 3, // TMS transition: Idle->Shift DR
            JTAG_ALL_ZEROS, XCF_HDR_LENGTH,
            ptdi, ptdo, num_bits,
            JTAG_ALL_ZEROS, XCF_TDR_LENGTH,
            1);
}

int jtag_shift_ir(u8 op)
{
    return jtag_shift_r(
            3, 4, // TMS transition: Idle->Shift IR
            JTAG_ALL_ONES, XCF_HIR_LENGTH,
            &op, NULL, XCF_IR_LENGTH,
            JTAG_ALL_ONES, XCF_TIR_LENGTH,
            1);
}

int xcf_erase(void)
{
    u16 d16;
    int i;

    jtag_reset_idle_tap_state();

    jtag_shift_ir(XCF_BYPASS);
    jtag_shift_ir(XCF_ISPEN);
    jtag_shift_ir(XCF_FADDR);
    d16 = 1;
    jtag_shift_dr((u8*)&d16, NULL, 16);
    jtag_tck_cycle(2);
    jtag_shift_ir(XCF_FERASE);
    for (i = 0; i < 2400; i++)
        jtag_tck_cycle(1000);
    jtag_shift_ir(XCF_BYPASS);

    jtag_reset_idle_tap_state();

    return 0;
}

int xcf_program_start(int write)
{
    u8 d8;
    jtag_reset_idle_tap_state();
    jtag_shift_ir(XCF_ISPEN);
    if (write)
    {
        d8 = 0x34;
        jtag_shift_dr(&d8, NULL, 6);
    }
    return 0;
}

int xcf_program_end(void)
{
    jtag_shift_ir(XCF_BYPASS);
    jtag_reset_idle_tap_state();
    return 0;
}

int xcf_program_write_row(u16 row, u8* data)
{
    u16 addr = (u16)(row * 0x20);

    jtag_shift_ir(XCF_FDATA0);
    jtag_shift_dr(data, NULL, 8*AVRB_XCF_SIZE_OF_PAGE);
    jtag_tck_cycle(2);
    jtag_shift_ir(XCF_FADDR);
    jtag_shift_dr((u8*)&addr, NULL, 16);
    jtag_tck_cycle(2);
    jtag_shift_ir(XCF_FPGM);
    jtag_tck_cycle(14000);

    return 0;
}


Article: 117144
Subject: Re: Programming XCF from MicroBlaze over JTAG???
From: "Bob Golenda" <bgolinda@nospam.net>
Date: Fri, 23 Mar 2007 16:02:14 -0500
Links: << >>  << T >>  << A >>
Hi Zoltan,

> I've done it! You don't have to implement the whole xsvfplayer.

Youi've done exactly what?  Written a stand alone JTAG programmer that
programs the XCF part without using any XSVF files or XSVFPlayer etc. stuff?

> If you want to support only xcf devices in a fixed environment, the
> programming is fairly simple.

Sure, but it's knowing what you need to do, and the timing that is the
hardest part, since there is no spec for programming the XCF.



Article: 117145
Subject: Re: Digital AM/FM Receiver - Systemic Question
From: Ben Twijnstra <ben.twijnstra@gmail.com>
Date: Fri, 23 Mar 2007 22:34:17 +0100
Links: << >>  << T >>  << A >>
morpheus wrote:
> ... I was
> wondering how I should truncate/round. Do I have to convert since the
> data is already in 2's complement format and if I just
> truncated....can I just use the upper bits of the lpf output as the
> input to the CORDIC?

Just using the upper bit will give you a bit of DC offset - rounding always
goes down to -inf (so, not closer to 0). Rounding towards the next even (or
odd) number (also known as Banker's rounding) seems to be an accepted
method.

You could of course add a bit of phase distortion but keep the total
spectral energy intact by truncating and remembering the ~1/2 LSB bit you
just threw away and adding that to the next sample before truncating again.
I never tried it and would be interested in the result.

Best regards,


Ben

Article: 117146
Subject: Re: multiple clock domain issues
From: "JK" <krishna.janumanchi@gmail.com>
Date: 23 Mar 2007 14:49:47 -0700
Links: << >>  << T >>  << A >>
On Mar 23, 7:09 pm, "Daniel S." <digitalmastrmind_no_s...@hotmail.com>
wrote:
> JK wrote:
> > Few doubts I would like to get clarified,
>
> > 1. Weather synchronizers are required for control signals only or for
> > data signals also?
>
> If you need to guarantee that all data bits will be valid at the same time
> as control signals are applied and the control signals do not provide such
> a guarantee (handshake or other such), you will need to synchronize the
> data somehow. This is commonly done with asynchronous FIFOs.
>
> > 2. Internal to FPGA, suppose 2 different clock domains are there - do
> > signals crossing from one clock domain
> >    to another need synchronizers? or can we avoid synchronizers by
> > applying some constraints?
> >    If yes, what are these contraints(in xilinx)?
>
> Domain-crossing must be handled by logic, constraints cannot do anything
> about it. If the two clocks are related by DCM, the synthesis tools are
> often capable of figuring the constraints out by themselves but this may
> still require logic if the clock ratios may lead to close cross-domain
> clock edges.
>
> > 3. How can we decide on a false path? suppose one signal is crossing
> > from one clock domain to another can be
> >    declared as a false path?
>
> Yes... but only if momentarily invalid data will not cause a design
> malfunction. For example, I built a display engine and the registers to
> configure the display line and column count are routed as false paths
> between my control bus clock and display engine clocks because the
> worst-case side-effect is a one-frame display glitch, which is completely
> insignificant since the display's PLL will need a few seconds to lock on
> the new timings.
>
> > 4. Is it OK to have negative hold time(<1 ns) in timing report? can
> > we
> > ignore this timing violation safely?
>
> Negative slack indicates that your design failed to meet your timing
> targets. There is no guarantee that the design will work correctly. Even if
> it does work on the testbench, it may become unstable with minute
> variations across devices, supply voltages, aging and operating temperature.
>
> > 5. What is the difference between clock jitter & clock skew?
> >    With Xilinx DCMs, I need Clk2x, Clk2x<180, Clk2x<270 & Clk4x.
> >    So, with no other option, I am going for cascaded DCMs.
> >    In this kind of situations, what best we can do to avoid/minimize
> > clock skew problems?
>
> Jitter is a random variation around an average period or offset, it is
> caused by variations in the transistors' switching characteristics which
> are themselves caused by numerous factors like electromagnetic noise,
> supply voltage and temperature. Skew is a constant (in theory) delay
> mismatch caused primarily by uneven path lengths.
>
> Since DCMs add a fair amount of jitter and require low jitter to work
> properly, it is likely that your cascaded DCM will fail to lock due to
> compound jitter, you will most likely have to use some other external clock
> source. I tried cascaded DCMs with V2P a few times but the second DCM never
> locked on, you may have more luck with the V4.

Thnaks Daniel, Thank you very much.

Regards,
JK


Article: 117147
Subject: Re: Off topic: what is the purpoe of XST?
From: doug <doug@doug>
Date: Fri, 23 Mar 2007 13:52:56 -0800
Links: << >>  << T >>  << A >>
steve.lass@xilinx.com wrote:
> The schematic flow is slightly more than maintenance mode.
> I would call it minimal improvement mode with most effort focused
> on quality.
> 
> Steve
> 
> "Jim Granville" <no.spam@designtools.maps.co.nz> wrote in message 
> news:46031907$1@clear.net.nz...
> 
>>Thanks. I should have queries Schematic flow as well ?
>>as some still use that (see another thread..) - is that in maintenance 
>>mode as well ?
>>
>>Of course, maintenance mode can be a good thing, because it
>>means the code-base is very stable, with no surprises lurking in the next 
>>updates.... :)
>>
>>-jg
>>
> 
> 
> 
There is no particular need for improvements but there is a
big need to fix it.  The schematic flow is totally broken
in versions 8.1, 8.2 and 9.1.  8.1 would not import a version
7 project.  8.2 had such a bad memory leak that it would not
make it through xst.  9.1 showed no improvement. Your support
people sent a fix for part of the memory leak but that showed
two more fatal bugs.  The ucf file pin assignments get used on
submodules and so it thinks there is an error and, if you remove
the ucf file to try to go on, it cannot find the libraries and
quits. It does however, destroy the project file in the process.

I plan on converting these to vhdl but it would be nice to be
able to do it in an incremental manner.

Article: 117148
Subject: Re: FPGA with 5V and PLCC package
From: Jim Granville <no.spam@designtools.maps.co.nz>
Date: Sat, 24 Mar 2007 10:05:30 +1200
Links: << >>  << T >>  << A >>
Herbert Kleebauer wrote:
> Sorry, but it really doesn't matter whether the AND gate is implemented
> as AND gate, by multiplexers or as a look-up table. They have learned
> that this all is equivalent and that the order of complexity is the
> same. But they must learn that there is big difference in the complexity
> for the ALU operation "add" and "div" and they don't see this in 
> the VHDL source code.

In VHDL, you are correct, but in Boolean Eqn entry [CUPL], you have to 
manually 'build' the adder, so they are VERY much aware of the cost.
You can also see the ALU resource any time you glance at the
report file.
You can even discuss the trade-offs in adders, with speed/width,
if you want to, simply by letting the tools remove nodes, or not.
[try doing that in the SCH pathway ?]

-jg


Article: 117149
Subject: Re: FPGA with 5V and PLCC package
From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Date: Fri, 23 Mar 2007 14:06:35 -0800
Links: << >>  << T >>  << A >>
Herbert Kleebauer wrote:
(snip)

> These are not electrical engineering but computer science students.
> Their job will be to design software and not hardware systems. But
> in order to do a proper software design, you need to understand the 
> principles of the underlying hardware so you get a feeling what a
> few lines of HL code can mean for the hardware.

> I don't know if all the supporters of VHDL/Verilog/HandleC here have 
> done low level logic development using a graphical representation and 
> just don't recognize how important that is to become a good designer
> at VHDL level or if they have never done this and still think they
> are good developers because the VHDL compiler is good enough and
> therefore they don't need to know anything about lower levels.

To me the question isn't graphical vs. textual, it is how well
one understands the underlying logic.

> Again the city map is a good example: If you want to drive from
> A to B, you call a taxi, the driver enters the target into the
> navigation system and this system mostly does a much better job
> you could do with the city map on your lap. So this is the best
> you can do if you know nothing about the city. But if you know 
> the layout of the city and you know that there is a river with
> only two bridges where you have to wait a long time because of
> the high traffic and you also know that there is a small bridge
> which could only be passed by foot, then you could do a much
> better job by driving to the small bridge, cross the river by foot
> and use an other taxi on the other side.

I agree with this one.  Though a good navigation system might
know about the bridge.  Some city bus systems have a computer
which will do route calculations.  That might include walking
across a bridge, otherwise it is up to the user to do that
before calling the taxi.

> The same is true for software: if you know how the hardware
> works you maybe can choose a different approach to solve the
> problem which is much more appropriate for the hardware. The
> compiler can do local optimizations extremely good, but the
> best global strategy has to be chosen by the programmer.
> And I think the same is true for hardware design. Just writing
> down VHDL statements without understanding the consequences
> for the generated hardware is not the way to go.

I completely agree with this statement.  One thing one must
learn, either with VHDL or graphical entry is the cost for each
logic block.  Just as in C programming, the tools don't help
much, one just has to learn it.

> The purpose of Universities is not to teach the students the
> use of tools but to teach them how to recognize, analyze and
> solve problems. The tools you use to solve the problems change
> rapidly but the ability to understand the source of a problem
> and analyze it from all angeles without using blinders is an
> essential requirement for the whole life.

I 100% agree here.  (Though I know a lot of people don't.)

> And as I said in the original posting, replacing the schematic
> entry by VHDL/Verilg isn't an alternative. All I wanted to know
> is, if somebody already was able to run the old Vielogic (DOS)
> on an actual OS (using a virtual machine). Or, whether there
> exists new FPGA's with a development system which is as easy
> to use as Viewlogic/DOS _AND_ where the chips are available
> in a package which could be soldered with a normal soldering
> iron on a self made non-multilayer PCP. I think there are
> both things available, but I didn't find the _AND_ combination.

In different discussions I have suggested that people should
remember the days of wiring up TTL gates on breadboards.
Using lower level HDL constructions is closer to that than
some higher level ones.  I don't know about VHDL, but you
can do verilog at the gate level.  That is, in addition
to behavioral and structural there is a level with references
to gate level primitives.

(snip)

> Sorry, but it really doesn't matter whether the AND gate is implemented
> as AND gate, by multiplexers or as a look-up table. They have learned
> that this all is equivalent and that the order of complexity is the
> same. But they must learn that there is big difference in the complexity
> for the ALU operation "add" and "div" and they don't see this in 
> the VHDL source code.

Thinks may have changed, last I knew the synthesis tools wouldn't
synthesize divide, at least not divide by a variable.  Maybe it is
just how much I hate using schematic entry tools.  If you draw
the design on paper using a gate template, maybe using 7400 series
logic blocks, and then write the corresponding HDL I don't think you
are missing out on anything.  I can probably do it with a minimal
hand drawn schematic, as I can solve algebraic equations without
doing all the intermediate steps, but it does still help to
write some down on paper.

-- glen




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