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 138525

Article: 138525
Subject: Re: Converting state machine encoding to std_logic_vector
From: mhelshou@hotmail.com
Date: Wed, 25 Feb 2009 19:34:06 -0800 (PST)
Links: << >>  << T >>  << A >>
That is correct. I am debugging in hardware and there's an embedded
processor along with a SpartanII FPGA. The reason I didn't want to
resort to simulation is because I am modifying an existing design and
the surrounding system is pretty complex, while the modification is
not. Writing a testbench for the system would have been a tedious
task.

On Feb 25, 3:28 pm, Frank Buss <f...@frank-buss.de> wrote:
<snip>
> The bug was, that I didn't latched the (asynchronous) input signals.

Frank, thanks for the idea. While I don't consider myself an
experienced designer, I've been bitten by this before, yet I seem to
have forgotten synchronizing and I think that is a big part of the
problem. I'll try that first thing tomorrow! There's only one clock in
the system, but there are latches and that's how I forgot.

Dave, thanks for the idea. I'll try that too. For now I have resorted
to the combinational process I've written earlier.

Kevin, the clock for this design is pretty wide, so it's most likely a
synchronization problem as you and Frank suggested.

Thanks.

/MHS

Article: 138526
Subject: Re: Converting state machine encoding to std_logic_vector
From: Jeff Cunningham <jcc@sover.net>
Date: Wed, 25 Feb 2009 22:50:25 -0500
Links: << >>  << T >>  << A >>
mhelshou@hotmail.com wrote:
> For debugging purposes. My FSM gets stuck somewhere and I wanted to be
> able to read the current state as a register.

I do something like this inside a process:

   out <= "000";
   if state=INIT     then out(0) <='1'; endif;
   if state=CLK_LOW  then out(1) <='1'; endif;
   if state=CLK_HIGH then out(2) <='1'; endif;

Then you can easily see illegal 2-hot or 0-hot states. I don't think you 
always can using a case statement or 'pos operator.

-Jeff

Article: 138527
Subject: Required MCS file and SVF File details
From: appu.iitm@gmail.com
Date: Wed, 25 Feb 2009 21:16:15 -0800 (PST)
Links: << >>  << T >>  << A >>
HI All,

I m looking for information regarding MCS and SVF file details.
Exactly I need to know about how MCS file is interpreted when it is
loaded into the PROM or else. I also eager to know about the SVF file
instruction is interpreted by the impact tool. Is there any document
for both? If then please refer me.

I gone through the some of the Xapp Documents (058, 79 etc) for
details but I dint get enough.

Thanks in Advance,
Appu

Article: 138528
Subject: Re: Fm digital baseband demodulation
From: rickman <gnuarm@gmail.com>
Date: Wed, 25 Feb 2009 21:47:30 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 25, 5:38=A0pm, doug <x...@xx.com> wrote:
> My Name wrote:
> > In the general case, I and Q aren't normalized and cover a certain
> > amplitude range. Some kind of normalization, e. g. dividing by I^2+Q^2,
> > is required, if the decoder output has to be correctly scaled. Cause th=
e
> > carrier magnitude can be expected to vary only slowly, other means as a=
n
> > AGC can be used as well. This is the case with usual FM receivers.Has
> > anyone =A0an idea about implementation of an AGC for fm demodulator?
>
> You do not need it. You are measuring angles not amplitude.

In fact, in a typical analog FM receiver, amplitude noise can mess up
reception of the signal so they clip the amplitude to remove the
noise.

Rick

Article: 138529
Subject: Send data from FPGA to PC via USB
From: srikanthv2 <srikanthv2@gmail.com>
Date: Wed, 25 Feb 2009 22:03:04 -0800 (PST)
Links: << >>  << T >>  << A >>
Hello,
I am working on a project where I have a chip that produces serial
data. This data is to be sent to the PC via the USB, through an FPGA.
I was wondering if the UFO-400 (Open FPGA project) board is the ideal
choice as a prototype board.


I wanted to look through examples from various vendors but only the
open source project has code available (duh!)

My considerations are the following things:

1. FPGA programming (all boards use standard Xilinx/Altera FPGAs. so
this is not a problem)
2. Software interface on the PC - to not only program the FPGA but
also to talk to the FPGA after programming. (I presume the vendors
will provide this, I am concerned about the availability of the source
code in case I want to  modify this to suit my custom board)

3. USB controller firmware (Again, will I need to edit the firmware?
If yes, would the open source project be the ideal choice?)

any help is appreciated. Thanks!

Srikanth

Article: 138530
Subject: Re: Configure FPGA via PCIe
From: Kim Enkovaara <kim.enkovaara@iki.fi>
Date: Thu, 26 Feb 2009 08:51:51 +0200
Links: << >>  << T >>  << A >>
rickman wrote:
> In your case that may be useful.  My point is that in the general case
> this is not something that would be widely useful since PCIe ports are
> a very "expensive" way to configure a part when all you really need is
> four GPIO pins on the host.

PCIe ports might be the least expensive way to configure the chips in
near future. PCIe switches are very cheap nowadays and the high end
embedded processors are going to the PCIe way. There are still GPIO
pins/local-bus but they might be multiplexed with other functions. PCIe
is a neat way of reducing pins in the packages. Also in many
applications you need fast CPU access to the FPGA and for that PCIe is
also a good protocol. Why put extra gpio pins if PCIe is already
connected. Also loading time is one parameter, on big chips the
configuration data is 10+Mbytes, the bus has to be quite fast.


>> I was actually thinking of applications without the chance of using GPIO
>> lines, e.g. on a PCIe plugin card.
> 
> I don't know PCIe much, but I have worked with PCI before and I don't
> think it is practical to use an FPGA to provide the PCI interface.
> This issue may have been resolved at some point, but I want to say
> that an FPGA does not boot fast enough to respond to the initial
> enumeration comms on the bus.  Has this issue been addressed so that
> an FPGA can boot from an on board PROM and provide a PCIe interface?

If we are talking about embedded applications then it would be easy
to first load the FPGAs trough the PCIe and then do the enumeration or
use PCI hotplug functionality. The newest FPGAs have PCIe hardcores so
they could respond immediatly to the bus, and the loading could be done
via extended configuration registers or some initial memory mapped area.

For PCIe extension cards that are in standard PCs and needed during boot
process I don't see easy ways to avoid some flash/prom solutions on the
card. It would be nice to have standard way of uploading firmware images
during bootup, maybe pcisig has something coming for this. I have not
seen anything in the pci standards I have read.


> I think the idea is that the image required to boot the FPGA enough to
> make it bootable over the PCIe interface would be pretty stable.  So
> the concerns of needing to fix that would be a bit overblown.  In

My take on this is that usually all the places that can not be upgraded
have some annoying bug, and field recalls are expensive way of fixing
some small bug. I have seen that even PLD update logic is wired to
CPUs to enable PLD updates in the field.

> fact, it is likely that you could design the interface to the boot
> Flash so that it can be programmed over the PCIe bus.  Then, as long
> as the reprogramming did not go bust in the middle, you could update
> the Flash just like you load the rest of the image.

This is one way of doing this. It's also quite easy to build fail safes
to drop into previous image if the update does not succeed. But this
still needs extra flash, software logic, extra logic etc. This could
be avoided in some situations.

--Kim

Article: 138531
Subject: Re: Send data from FPGA to PC via USB
From: hal-usenet@ip-64-139-1-69.sjc.megapath.net (Hal Murray)
Date: Thu, 26 Feb 2009 01:11:05 -0600
Links: << >>  << T >>  << A >>

>I am working on a project where I have a chip that produces serial
>data. This data is to be sent to the PC via the USB, through an FPGA.
>I was wondering if the UFO-400 (Open FPGA project) board is the ideal
>choice as a prototype board.

What do you mean by "serial data"?

Do you mean typical ASCII over RS-232?  If so, why do you
need a FPGA?

So I assume you mean some other form of serial encoding.

My straw man would be to use a USB-RS-232 conversion dongle
with some sort of FPGA/CPLD to do the conversion from your
version of serial to RS-232 serial (8N1 or whatever).


-- 
These are my opinions, not necessarily my employer's.  I hate spam.


Article: 138532
Subject: Re: Send data from FPGA to PC via USB
From: simon111 <mengxipeng@gmail.com>
Date: Wed, 25 Feb 2009 23:55:34 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 26, 3:11=A0pm, hal-use...@ip-64-139-1-69.sjc.megapath.net (Hal
Murray) wrote:
> >I am working on a project where I have a chip that produces serial
> >data. This data is to be sent to the PC via the USB, through an FPGA.
> >I was wondering if the UFO-400 (Open FPGA project) board is the ideal
> >choice as a prototype board.
>
> What do you mean by "serial data"?
>
> Do you mean typical ASCII over RS-232? =A0If so, why do you
> need a FPGA?
>
> So I assume you mean some other form of serial encoding.
>
> My straw man would be to use a USB-RS-232 conversion dongle
> with some sort of FPGA/CPLD to do the conversion from your
> version of serial to RS-232 serial (8N1 or whatever).
>
> --
> These are my opinions, not necessarily my employer's. =A0I hate spam.

i did similarity project before,
we choiced cy7c68013 from cypress.
it's a ease usb chip, and can work in slave fifo mode.
data rate is up to 38MB.

Article: 138533
Subject: Re: Fm digital baseband demodulation
From: 'use_real_email'
Date: Thu, 26 Feb 2009 00:14:16 -0800
Links: << >>  << T >>  << A >>

rickman;468985 Wrote: 
> On Feb 25, 5:38*pm, doug <x...@xx.com> wrote:
> > My Name wrote:
> > > In the general case, I and Q aren't normalized and cover a certain
> > > amplitude range. Some kind of normalization, e. g. dividing by
> I^2+Q^2,
> > > is required, if the decoder output has to be correctly scaled.
> Cause the
> > > carrier magnitude can be expected to vary only slowly, other means
> as an
> > > AGC can be used as well. This is the case with usual FM
> receivers.Has
> > > anyone *an idea about implementation of an AGC for fm demodulator?
> >
> > You do not need it. You are measuring angles not amplitude.
> 
> In fact, in a typical analog FM receiver, amplitude noise can mess up
> reception of the signal so they clip the amplitude to remove the
> noise.
> 
> 
> 
> So you say that the only thing i have to compute to demodulate the
> signal is just Q*dI/dt - I*dQ/dt?In a similar conversation.....'Division
> Approximation In Fm Demodulator - Page 2 - Altera Forums'
> (http://www.alteraforum.com/forum/showthread.php?t=4696&page=2) for some
> people this is not right!!!


-- 
xristos
------------------------------------------------------------------------
xristos's Profile: http://www.fpgacentral.com/group/member.php?userid=15
View this thread: http://www.fpgacentral.com/group/showthread.php?t=88112


Article: 138534
Subject: Re: Send data from FPGA to PC via USB
From: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Date: Thu, 26 Feb 2009 09:47:41 +0000 (UTC)
Links: << >>  << T >>  << A >>
srikanthv2 <srikanthv2@gmail.com> wrote:
> Hello,
> I am working on a project where I have a chip that produces serial
> data. This data is to be sent to the PC via the USB, through an FPGA.
> I was wondering if the UFO-400 (Open FPGA project) board is the ideal
> choice as a prototype board.


> I wanted to look through examples from various vendors but only the
> open source project has code available (duh!)

> My considerations are the following things:

> 1. FPGA programming (all boards use standard Xilinx/Altera FPGAs. so
> this is not a problem)
> 2. Software interface on the PC - to not only program the FPGA but
> also to talk to the FPGA after programming. (I presume the vendors
> will provide this, I am concerned about the availability of the source
> code in case I want to  modify this to suit my custom board)

> 3. USB controller firmware (Again, will I need to edit the firmware?
> If yes, would the open source project be the ideal choice?)

> any help is appreciated. Thanks!

Look at the FTDI chips, FT232/245/2322/D and 2322H
-- 
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

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

Article: 138535
Subject: Re: MIG 2.0 for DDR - Spartan3E
From: =?ISO-8859-1?Q?Jaime_Andr=E9s_Aranguren_Cardona?= <jaime.aranguren@gmail.com>
Date: Thu, 26 Feb 2009 03:30:36 -0800 (PST)
Links: << >>  << T >>  << A >>
On 23 Feb., 20:36, Glen Herrmannsfeldt <g...@ugcs.caltech.edu> wrote:
> Jaime Andr=E9s Aranguren Cardona wrote:
>
> > I am building a system wich employs the DDR controller generated by
> > MIG 2.0 for a DDR memory + Spartan3E. So far the simulations work
> > fine, and according to the waveforms on UG086.
>
> I am also interested in using DDR with the Spartan 3E (such
> as on the Digilent Spartan 3E board.) =A0Most of my problems
> should be relatively simple. =A0I don't need the full speed, or
> even bursts of more than one. =A0I haven't looked at UG086 yet.
>
> -- glen

Hi Glen, all guys.

The MIG code seems to work, in simulation at least. Well, I know it
does come with a simulation testbench and so on, but since later on I
will move to a different FPGA (S3A) with the same DDR chip, I decided
to start with the S3E kit for tthe HW test but I am fine tuning it
myself, which means that I create both a "generic" DDR project, and a
S3E kit project in MIG, and I base all of my tests on the "generic"
code, and later hand customize it for this kit (clock input, location
and timing constraints from kit's UCF, etc...)

I am testing against the model provided by micron.com, and it seems to
read / write in simulation. My problem now is to correctly generate
the col/row/bank addresses. BTW: could you provide some enlightment
about how to correctly generate them? For my initial test I just want
to continuously and sequentially (from address 0 to 1023, in a linear
fashion) write a sequence of numbers (0 to 1023), then read back in
the same order and check if I read what I intended to write. My
problem now is how to generate the sequential addresses (linea
fashion) vs. row/col/bank which is needed for the MIG DDR controller.

Any hints will be appreciated.

JaaC

Article: 138536
Subject: Re: Send data from FPGA to PC via USB
From: John Adair <g1@enterpoint.co.uk>
Date: Thu, 26 Feb 2009 05:00:55 -0800 (PST)
Links: << >>  << T >>  << A >>
I'm not going to agree on the UFO-400 for obvious reasons. But have a
look at http://www.enterpoint.co.uk/cpld_boards/polmaddie1.html if you
just want an interfacing board. The related Polmaddie3 will be a very
useful board and will be with us soon as with be numbers 2,4 and 5.

There are other boards with the FT232 chip fitted coming and one of
those will annouce this week and amother in 4-8 weeks time that will
be a very good competitor to the UFO-400.

All of the FT232 based offerings give a simple interface to get up and
going. Most terminal emulators to start with or more advanced direct
serial (usb) port driving if you want that way of doing things.

John Adair
Enterpoint Ltd.


On 26 Feb, 06:03, srikanthv2 <srikant...@gmail.com> wrote:
> Hello,
> I am working on a project where I have a chip that produces serial
> data. This data is to be sent to the PC via the USB, through an FPGA.
> I was wondering if the UFO-400 (Open FPGA project) board is the ideal
> choice as a prototype board.
>
> I wanted to look through examples from various vendors but only the
> open source project has code available (duh!)
>
> My considerations are the following things:
>
> 1. FPGA programming (all boards use standard Xilinx/Altera FPGAs. so
> this is not a problem)
> 2. Software interface on the PC - to not only program the FPGA but
> also to talk to the FPGA after programming. (I presume the vendors
> will provide this, I am concerned about the availability of the source
> code in case I want to =A0modify this to suit my custom board)
>
> 3. USB controller firmware (Again, will I need to edit the firmware?
> If yes, would the open source project be the ideal choice?)
>
> any help is appreciated. Thanks!
>
> Srikanth


Article: 138537
Subject: Re: MIG 2.0 for DDR - Spartan3E
From: gabor <gabor@alacron.com>
Date: Thu, 26 Feb 2009 05:35:39 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 26, 6:30=A0am, Jaime Andr=E9s Aranguren Cardona
<jaime.arangu...@gmail.com> wrote:
> On 23 Feb., 20:36, Glen Herrmannsfeldt <g...@ugcs.caltech.edu> wrote:
>
> > Jaime Andr=E9s Aranguren Cardona wrote:
>
> > > I am building a system wich employs the DDR controller generated by
> > > MIG 2.0 for a DDR memory + Spartan3E. So far the simulations work
> > > fine, and according to the waveforms on UG086.
>
> > I am also interested in using DDR with the Spartan 3E (such
> > as on the Digilent Spartan 3E board.) =A0Most of my problems
> > should be relatively simple. =A0I don't need the full speed, or
> > even bursts of more than one. =A0I haven't looked at UG086 yet.
>
> > -- glen
>
> Hi Glen, all guys.
>
> The MIG code seems to work, in simulation at least. Well, I know it
> does come with a simulation testbench and so on, but since later on I
> will move to a different FPGA (S3A) with the same DDR chip, I decided
> to start with the S3E kit for tthe HW test but I am fine tuning it
> myself, which means that I create both a "generic" DDR project, and a
> S3E kit project in MIG, and I base all of my tests on the "generic"
> code, and later hand customize it for this kit (clock input, location
> and timing constraints from kit's UCF, etc...)
>
> I am testing against the model provided by micron.com, and it seems to
> read / write in simulation. My problem now is to correctly generate
> the col/row/bank addresses. BTW: could you provide some enlightment
> about how to correctly generate them? For my initial test I just want
> to continuously and sequentially (from address 0 to 1023, in a linear
> fashion) write a sequence of numbers (0 to 1023), then read back in
> the same order and check if I read what I intended to write. My
> problem now is how to generate the sequential addresses (linea
> fashion) vs. row/col/bank which is needed for the MIG DDR controller.
>
> Any hints will be appreciated.
>
> JaaC

For Spartan 3 MIG, which is primitive compared to the Virtex 5
MIG, the order of row vs. bank addressing is not important.
This is due to the fact that the MIG code only leaves one
row of one bank active at any time.  The column address should
be your low order address bits for linear addressing.  This
will prevent unnecessary row precharge / activate sequences
when performing linear access to memory.  Also note that
the least significant bits of the column address are
incremented inside the memory chip during a burst operation.
There is no carry out to the upper address bits, so when
starting a burst you should normally begin at a burst
boundary to avoid rapping back to previous addresses.

Be careful when using the MIG top level interface with
"linear" address.  It may be using the least significant
bits for the bank address (depends on which interface
type DDR, DDR2, etc.).

Regards,
Gabor

Article: 138538
Subject: Re: Frame ECC and Virtex-4
From: matthias.ruemmele@googlemail.com
Date: Thu, 26 Feb 2009 06:12:25 -0800 (PST)
Links: << >>  << T >>  << A >>
Hi all,

it is not an answer for Mikel's question, but I have an other question
which is related to this topic.

Does anybody know how the parity bits are calculated exactly? They are
stored in the bits 640 to 651 (21. Dataword) of each Configuration
Frame of the Bitstream.  I know it is a Hamming Code but what happens
with the 21. Dataword? Is it used for the Calculation of this parity
Bits?

I hope someone can help me.

Thanks,

Matthias R.

Article: 138539
Subject: Re: Configure FPGA via PCIe
From: allan.herriman@gmail.com
Date: Thu, 26 Feb 2009 06:44:18 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 26, 10:18=A0am, Allan Herriman <allanherri...@hotmail.com> wrote:
> rickman <gnu...@gmail.com> wrote innews:9e5e3729-4da1-41b4-9ec2-9c8f5dfe2=
4d6@r36g2000vbp.googlegroups.com:
>
>
>
> > On Feb 25, 4:49 am, Allan Herriman <allanherri...@hotmail.com> wrote:
> >> rickman <gnu...@gmail.com> wrote
> >> innews:3774b465-11f4-4daa-aee7-d44f72fce9a6@n20g2000vba.googlegroups.c
> >> om:
>
> >> > On Feb 24, 8:27 am, Allan Herriman <allanherri...@hotmail.com>
> >> > wrote:
> >> >> "Krzysztof Kepa" <nospam_blond...@poczta.fm> wrote
> >> >> innews:go0pr0$6jj$1@ai
> >> > oe.org:
>
> >> >> > "Allan Herriman" <allanherri...@hotmail.com> wrote in message
> >> >> >news:Xns9BBCD0C44FABBallanherrimanhotmail@216.151.153.43...
> >> >> >> Hi,
>
> >> >> >> I guess my questions are:
>
> >> >> >> 2. =A0Will future generations FPGAs be able to be programmed via
> >> >> >> PCIe? If so, when?
>
> >> >> > Now? ;) Just need to use some external =A0components to tie it
> >> >> > together...or use partial reconfiguration (PR) flow.
>
> >> >> I meant "gluelessly". =A0With PR, one must get the original
> >> >> configuration into the FPGA somehow, and (as I understand it) that
> >> >> cannot be done with PCIe.
>
> >> >> Thanks for your comments.
>
> >> >> Allan
>
> >> > I haven't looked at processors like the Atom in a while, but I seem
> >> > to recall that you get some number of general purpose I/O pins on
> >> > most any processor. =A0You only need four pins to completely control
> >> > an FPGA configuration; PRGM, CCLK, DONE, INIT. =A0They can be bit
> >> > banged in software. =A0The FPGA interface is not used very much when
> >> > considered in the grand scheme of things. =A0So I expect you will
> >> > never see direct support for it on processors.
>
> >> > I also doubt that you will see dedicated support for PCIe in FPGAs.
> >> > This is a bit lofty for a configuration interface. =A0PCIe is point
> >> > to point (right?) and taking one of the two PCIe interfaces on an
> >> > Atom for booting the FPGA would be a bit of overkill. =A0There are
> >> > few applications where a processor like the Atom is used and you
> >> > can't wait the few milliseconds for the FPGA to boot serially.
>
> >> That PCIe isn't wasted; it is needed for FPGA <-> cpu comms after
> >> configuration.
>
> > In your case that may be useful. =A0My point is that in the general cas=
e
> > this is not something that would be widely useful since PCIe ports are
> > a very "expensive" way to configure a part when all you really need is
> > four GPIO pins on the host.
>
> >> I was actually thinking of applications without the chance of using
> >> GPIO lines, e.g. on a PCIe plugin card.
>
> > I don't know PCIe much, but I have worked with PCI before and I don't
> > think it is practical to use an FPGA to provide the PCI interface.
> > This issue may have been resolved at some point, but I want to say
> > that an FPGA does not boot fast enough to respond to the initial
> > enumeration comms on the bus. =A0Has this issue been addressed so that
> > an FPGA can boot from an on board PROM and provide a PCIe interface?
>
> >> It still seems that the PCIe to local bus bridge is the best solution
> >> for my hypothetical problem. =A0The other suggestions involved Flash
> >> memories (with an implied extra step during manufacturing to program
> >> the dang things, not to mention the extra complexity involved with
> >> in-the-field upgrades of that image) or a non-trivial amount of glue
> >> logic.
>
> > I think the idea is that the image required to boot the FPGA enough to
> > make it bootable over the PCIe interface would be pretty stable. =A0So
> > the concerns of needing to fix that would be a bit overblown. =A0In
> > fact, it is likely that you could design the interface to the boot
> > Flash so that it can be programmed over the PCIe bus. =A0Then, as long
> > as the reprogramming did not go bust in the middle, you could update
> > the Flash just like you load the rest of the image.
>
> > Of course, the local bus interface still requires some extra logic to
> > boot the FPGA, no? =A0Or does the bridge chip provide signals that can
> > be used directly?
>
> They usually have a few GPIO lines as well as a parallel data bus. =A0Thi=
s
> allows some sort of slave parallel mode to be used without glue logic.
>
> Just in case you are interested, here are some typical parts:
>
> 1 Lane:http://www.plxtech.com/products/expresslane/pex8311.asp
>
> 4 Lanes with dedicated FPGA loading support:http://www.gennum.com/video/p=
roducts/gn4124
>
> Here's the article that inspired this thread:http://www.pldesignline.com/=
howto/210300269

Here's another one that looks quite nice:

PCIe x4, 2xDMA, DDR SDRAM controller (presumably for DMA buffers), 2x
I2C controllers, SPI, 8x GPIO, FPGA configuration logic, serial port,
64 bit / 133MHz local bus.
http://www.avaldata.com/products/y2_technology/pci-express_bridge/aaeb04.ht=
ml
(It's in Japanese.)
I found a product brief in English here:
http://www.daitron.com/aval_data/pdf/AVAL%20DATA%20Brief%20Sheet%20Jul23%20=
08.pdf


Regards,
Allan

Article: 138540
Subject: Re: Configure FPGA via PCIe
From: Petter Gustad <newsmailcomp6@gustad.com>
Date: Thu, 26 Feb 2009 15:57:18 +0100
Links: << >>  << T >>  << A >>
Allan Herriman <allanherriman@hotmail.com> writes:

> They're not so big an expensive compared with the other solutions I've 
> been considering.  The silicon costs a few dollars more, but I can 
> eliminate the manufacturing step for programming a Flash.

You mean the time it takes to program a flash during production?

I haven't read the entire thread, but I've done something similar
before. 

Use a configuration flash with a serial interface (or use more pins on
your FPGA).

Program a failsafe version in bank-0 of the flash during production.
You can use the JTAG signals on the PCIe connector in conjunction with
a test-jig present signal to do this. I've used the SVF file as a base
to generate these vectors.

Make a register in the address space of your PCIe FPGA design
available to software. Connect this register to JTAG (or some parallel
bus if your prefer to use more pins). You can now write into bank-1 of
the flash from the host CPU over PCIe. Set the bank-1 select bit.
Reboot or let your host software run the enumeration over again.

Make some disaster method to switch back to bank-0.

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

Article: 138541
Subject: Re: Fm digital baseband demodulation
From: acrawfor29@gmail.com
Date: Thu, 26 Feb 2009 09:42:31 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 26, 3:14=A0am, 'use_real_email' wrote:
> rickman;468985 Wrote:
>
>
>
>
>
> > On Feb 25, 5:38*pm, doug <x...@xx.com> wrote:
> > > My Name wrote:
> > > > In the general case, I and Q aren't normalized and cover a certain
> > > > amplitude range. Some kind of normalization, e. g. dividing by
> > I^2+Q^2,
> > > > is required, if the decoder output has to be correctly scaled.
> > Cause the
> > > > carrier magnitude can be expected to vary only slowly, other means
> > as an
> > > > AGC can be used as well. This is the case with usual FM
> > receivers.Has
> > > > anyone *an idea about implementation of an AGC for fm demodulator?
>
> > > You do not need it. You are measuring angles not amplitude.
>
> > In fact, in a typical analog FM receiver, amplitude noise can mess up
> > reception of the signal so they clip the amplitude to remove the
> > noise.
>
> > So you say that the only thing i have to compute to demodulate the
> > signal is just Q*dI/dt - I*dQ/dt?In a similar conversation.....'Divisio=
n
> > Approximation In Fm Demodulator - Page 2 - Altera Forums'
> > (http://www.alteraforum.com/forum/showthread.php?t=3D4696&page=3D2) for=
 some
> > people this is not right!!!
>
> --
> xristos
> ------------------------------------------------------------------------
> xristos's Profile:http://www.fpgacentral.com/group/member.php?userid=3D15
> View this thread:http://www.fpgacentral.com/group/showthread.php?t=3D8811=
2- Hide quoted text -
>
> - Show quoted text -

Try the CORDIC in hardware to do atan(Q/I) - 10 stages or so or use
xilinx coregen to make one, it will provide a great response rather
than doing the a derivative by subtracting.  Example  C/matlab code is
all over the internet for this, though either method should work.

If you are receiving over the air - save some output to a file.   You
can then do a fft on the output of the CORDIC where you should get the
MPX signal.  Then look for a tone at 19K Hz (if a stereo channel) to
see if you are on the right track.


Article: 138542
Subject: Re: mb-gcc producing incorrect code ???
From: luudee <rudolf.usselmann@gmail.com>
Date: Thu, 26 Feb 2009 09:55:03 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 26, 3:24=A0am, hal-use...@ip-64-139-1-69.sjc.megapath.net (Hal
Murray) wrote:
> >I guess the bigger question here is how to correctly
> >interface a little endian peripheral to a big-endian
> >SoC ?
>
> It's a hard problem. =A0It's been around for ages.
>
> >Byte swapping everything would mean that the user manual
> >for the pripoheral would have to be rewritten as well ...
>
> You may want byte swapping in the hardware. =A0It depends
> on what you are talking to. =A0If it's something like a disk
> or ethernet, where you often transfer text, you are probably
> better off treating it as a byte stream which means you will
> have to byte-swap (in software) to use things like 4 byte
> integers.
>
> Note that if you byte-swap the bus pins, that will
> byte swap addresses on a shared bus. =A0So you may have
> to swap addresses in the driver so they will come out
> right when the hardware swaps them again.
>
> You can probably write a user manual that covers both
> cases. =A0The trick is to write it using words and word
> addresses/offsets, then describe each word with
> pictures and bit offsets or terms like "high byte"
> rather than byte addresses. =A0"Word" in that sentence
> means whatever the natural width of the bus is.
>
> Or you can just describe it for the normal/natural case
> and let the poor guy who is using it on the wrong-endian
> system sort things out. =A0He should be familiar with the
> problem and know how to read wrong-endian data sheets.
>
> --
> These are my opinions, not necessarily my employer's. =A0I hate spam.

Thanks for all the feedback guys !

Doing it software is not really feasible. I am working on a
new demo for our SATA II Host Controller for Virtex 5, and
was trying to implement the dosfs code that was pointed out
by Antti. Thats when I discovered that all the bytes where
reversed. It did not occur to me while I was writing the
sector read and write routines, as all data transfers where
done by DMA (on word boundaries).

So it really has to be byte swapped in hw to make it work
correctly.

Cheers,
rudi

Article: 138543
Subject: Re: virtex 5 columns
From: davide <davide@xilinx.com>
Date: Thu, 26 Feb 2009 09:56:56 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 25, 2:14=A0pm, gabor <ga...@alacron.com> wrote:
> On Feb 25, 9:51=A0am, colin <colin_toog...@yahoo.com> wrote:
>
> > Hello
>
> > I have a new virtex 5 design with a lot of IO going at the same speed.
> > I've been told to put all this IO on the same column. Also I can then
> > use the DCI bank cascading.
>
> > Does anyone know the logic behind the bank numbering? I can't find any
> > data on which banks are in which column.
>
> > Colin
>
> You really need to dig for this information. =A0I was told to use
> "ADEPT" to get a picture of the columns. =A0There is a long
> thread on the Xilinx forums about this.
>
> http://forums.xilinx.com/xlnx/board/message?board.id=3DVirtex&thread.id..=
.
>
> Regards,
> Gabor

The ISE PinAhead tool gives a color-coded column breakdown of all
banks (User Constraints -> Floorplan Area)

Article: 138544
Subject: Re: mb-gcc producing incorrect code ???
From: "Antti.Lukats@googlemail.com" <Antti.Lukats@googlemail.com>
Date: Thu, 26 Feb 2009 10:10:53 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 26, 7:55=A0pm, luudee <rudolf.usselm...@gmail.com> wrote:
> On Feb 26, 3:24=A0am, hal-use...@ip-64-139-1-69.sjc.megapath.net (Hal
>
>
>
> Murray) wrote:
> > >I guess the bigger question here is how to correctly
> > >interface a little endian peripheral to a big-endian
> > >SoC ?
>
> > It's a hard problem. =A0It's been around for ages.
>
> > >Byte swapping everything would mean that the user manual
> > >for the pripoheral would have to be rewritten as well ...
>
> > You may want byte swapping in the hardware. =A0It depends
> > on what you are talking to. =A0If it's something like a disk
> > or ethernet, where you often transfer text, you are probably
> > better off treating it as a byte stream which means you will
> > have to byte-swap (in software) to use things like 4 byte
> > integers.
>
> > Note that if you byte-swap the bus pins, that will
> > byte swap addresses on a shared bus. =A0So you may have
> > to swap addresses in the driver so they will come out
> > right when the hardware swaps them again.
>
> > You can probably write a user manual that covers both
> > cases. =A0The trick is to write it using words and word
> > addresses/offsets, then describe each word with
> > pictures and bit offsets or terms like "high byte"
> > rather than byte addresses. =A0"Word" in that sentence
> > means whatever the natural width of the bus is.
>
> > Or you can just describe it for the normal/natural case
> > and let the poor guy who is using it on the wrong-endian
> > system sort things out. =A0He should be familiar with the
> > problem and know how to read wrong-endian data sheets.
>
> > --
> > These are my opinions, not necessarily my employer's. =A0I hate spam.
>
> Thanks for all the feedback guys !
>
> Doing it software is not really feasible. I am working on a
> new demo for our SATA II Host Controller for Virtex 5, and
> was trying to implement the dosfs code that was pointed out
> by Antti. Thats when I discovered that all the bytes where
> reversed. It did not occur to me while I was writing the
> sector read and write routines, as all data transfers where
> done by DMA (on word boundaries).
>
> So it really has to be byte swapped in hw to make it work
> correctly.
>
> Cheers,
> rudi

if you did use 32 bit DMA transfer to DOS file buffer
then yes it would appear as all wrong

but, well microblaze is WRONG endian it just makes
lots of trouble

least significant byte of a word is at byte offset +3 :(
but this is what normally is read as first byte from
byte wide streaming interface, also from disk file
system.

on MB system your DMA should but te FIRST
byte as bits 31.24
then it should be ok

you probably need ad some parameter to swap
bytes into normal order or not depening the
endianess, doing it in software is not feasible

the same problem happens all around, USB, ethernet packets
need adjust the byte order many times to get it right.

i think there was lots of trouble with some early microblaze
linux usb drivers, when those did work then the usb
based ethernet adapters did not work, wanted own endian swap..



Antti





Article: 138545
Subject: Re: Fm digital baseband demodulation
From: doug <xx@xx.com>
Date: Thu, 26 Feb 2009 10:50:39 -0800
Links: << >>  << T >>  << A >>


acrawfor29@gmail.com wrote:
> On Feb 26, 3:14 am, 'use_real_email' wrote:
> 
>>rickman;468985 Wrote:
>>
>>
>>
>>
>>
>>
>>>On Feb 25, 5:38*pm, doug <x...@xx.com> wrote:
>>>
>>>>My Name wrote:
>>>>
>>>>>In the general case, I and Q aren't normalized and cover a certain
>>>>>amplitude range. Some kind of normalization, e. g. dividing by
>>>
>>>I^2+Q^2,
>>>
>>>>>is required, if the decoder output has to be correctly scaled.
>>>
>>>Cause the
>>>
>>>>>carrier magnitude can be expected to vary only slowly, other means
>>>
>>>as an
>>>
>>>>>AGC can be used as well. This is the case with usual FM
>>>
>>>receivers.Has
>>>
>>>>>anyone *an idea about implementation of an AGC for fm demodulator?
>>
>>>>You do not need it. You are measuring angles not amplitude.
>>
>>>In fact, in a typical analog FM receiver, amplitude noise can mess up
>>>reception of the signal so they clip the amplitude to remove the
>>>noise.
>>
>>>So you say that the only thing i have to compute to demodulate the
>>>signal is just Q*dI/dt - I*dQ/dt?In a similar conversation.....'Division
>>>Approximation In Fm Demodulator - Page 2 - Altera Forums'
>>>(http://www.alteraforum.com/forum/showthread.php?t=4696&page=2) for some
>>>people this is not right!!!
>>
>>--
>>xristos
>>------------------------------------------------------------------------
>>xristos's Profile:http://www.fpgacentral.com/group/member.php?userid=15
>>View this thread:http://www.fpgacentral.com/group/showthread.php?t=88112- Hide quoted text -
>>
>>- Show quoted text -
> 
> 
> Try the CORDIC in hardware to do atan(Q/I) - 10 stages or so or use
> xilinx coregen to make one, it will provide a great response rather
> than doing the a derivative by subtracting.  Example  C/matlab code is
> all over the internet for this, though either method should work.
> 
> If you are receiving over the air - save some output to a file.   You
> can then do a fft on the output of the CORDIC where you should get the
> MPX signal.  Then look for a tone at 19K Hz (if a stereo channel) to
> see if you are on the right track.

There is also a verilog version of the cordic routine available.  It is
plenty fast and is easy to implement. For those who are not familiar
with the cordic, it rotates the vector to zero and sees how much angle
it needs to do that.  You get the angle from that.
> 

Article: 138546
Subject: Re: Where can a cheap programmer for Xilinx Virtex II XC2V1500 be
From: mansoor.naseer@gmail.com
Date: Thu, 26 Feb 2009 10:56:16 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 25, 11:15=A0pm, Weng Tianxiang <wtx...@gmail.com> wrote:
> On Feb 23, 4:49=A0pm, Weng Tianxiang <wtx...@gmail.com> wrote:
>
>
>
> > On Feb 23, 12:42=A0pm, Dave Pollum <vze24...@verizon.net> wrote:
>
> > > On Feb 23, 3:38=A0pm, Weng Tianxiang <wtx...@gmail.com> wrote:
>
> > > > Hi,
> > > > It is intersting to find that $24.50 is for an Altera ByteBlast
> > > > programmer mentioned in a topics in FPGA group.
>
> > > > I need to buy a programmer suitable for Xilinx Virtex II XC2V1500 c=
hip
> > > > only.
>
> > > > Please give any tips where I can buy a cheap programmer.
>
> > > > Thank you.
>
> > > > Weng
>
> > > Digilent (digilentinc.com) has inexpensive programming cables.
> > > -Dave Pollum
>
> > Hi Dave,
> > Good information! I need cables too. But hopefully I may get a set of
> > programmer plus its cables from one person or a company.
>
> > Weng- Hide quoted text -
>
> > - Show quoted text -
>
> Hi Dave,
> I checked Digilent.com website and I am not sure which one works for
> my system: Xilinx Virtext II XC2V 1000.
>
> JTAG Programming Cable $12.00
> low-cost JTAG configuration solution
> for use with any JTAG-programmable device
> connects directly to the parallel port of a PC, and to a standard 6-
> pin JTAG programming header
> can program devices that have a JTAG voltage of 1.8V or greater
>
> I found my board has a 14-pin connector, but above specs says it has a
> 6-pin JTAG programming header. Is it fit?
>
> Is Xilinx iMPACT software still usable?
>
> Please give me a help to determine if which is fit.
>
> Thank you.
>
> Weng

software still usable, go for jtag usb programming cable (37.95$), it
will be faster
it works with impact software
for jtag the most important six connections are VCC, GND, TMS, TDI,
TDO, TCK
the 14 pin connector repeats some of the pins but effectively these
six pins are required to program xilinx fpgas.
You can make a manual adaptor with 6 Pin MTE Cable (also on the same
page) which will break individual signal (TMS, TCK etc) into wires

hope this helps

mak

Article: 138547
Subject: Re: Configure FPGA via PCIe
From: rickman <gnuarm@gmail.com>
Date: Thu, 26 Feb 2009 11:48:12 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 26, 1:51 am, Kim Enkovaara <kim.enkova...@iki.fi> wrote:
> rickman wrote:
> > In your case that may be useful.  My point is that in the general case
> > this is not something that would be widely useful since PCIe ports are
> > a very "expensive" way to configure a part when all you really need is
> > four GPIO pins on the host.
>
> PCIe ports might be the least expensive way to configure the chips in
> near future. PCIe switches are very cheap nowadays and the high end
> embedded processors are going to the PCIe way. There are still GPIO
> pins/local-bus but they might be multiplexed with other functions. PCIe
> is a neat way of reducing pins in the packages. Also in many
> applications you need fast CPU access to the FPGA and for that PCIe is
> also a good protocol. Why put extra gpio pins if PCIe is already
> connected. Also loading time is one parameter, on big chips the
> configuration data is 10+Mbytes, the bus has to be quite fast.

When you refer to "high end" processors, you are talking about a
literal handful of devices compared to the hundreds or thousands of
types of CPUs that are used in embedded systems.  If you are talking
about adding a "switch" then you are adding an extra chip and you can
just as easily add any sort of chip to facilitate booting the FPGA.
My point is that you only need four pins for a serial boot at fairly
high speed and this is still the cheapest way to go in 99% of the
systems using a processor to boot the FPGA.  The boot time is
typically limited, not by the interface, but by the FPGA.


> >> I was actually thinking of applications without the chance of using GPIO
> >> lines, e.g. on a PCIe plugin card.
>
> > I don't know PCIe much, but I have worked with PCI before and I don't
> > think it is practical to use an FPGA to provide the PCI interface.
> > This issue may have been resolved at some point, but I want to say
> > that an FPGA does not boot fast enough to respond to the initial
> > enumeration comms on the bus.  Has this issue been addressed so that
> > an FPGA can boot from an on board PROM and provide a PCIe interface?
>
> If we are talking about embedded applications then it would be easy
> to first load the FPGAs trough the PCIe and then do the enumeration or
> use PCI hotplug functionality. The newest FPGAs have PCIe hardcores so
> they could respond immediatly to the bus, and the loading could be done
> via extended configuration registers or some initial memory mapped area.

I'm not familar with PCIe, but I know in PCI apps you can't use the
PCI interface to boot the FPGA.  Are you talking about an embedded app
where you can work "around" the PCIe spec and just talk to the FPGA
without worrying about the spec'd protocol?  In that case you have one
of the few apps where your PCIe port is dedicated to the FPGA.  Yes,
in that case this works.  But that is rare enough that the FPGA
vendors aren't going to add that capability for those few apps.


> For PCIe extension cards that are in standard PCs and needed during boot
> process I don't see easy ways to avoid some flash/prom solutions on the
> card. It would be nice to have standard way of uploading firmware images
> during bootup, maybe pcisig has something coming for this. I have not
> seen anything in the pci standards I have read.

I seem to recall that there was support for a JTAG or some other
serial interface on PCI, but it has been so long that I don't recall.


> > I think the idea is that the image required to boot the FPGA enough to
> > make it bootable over the PCIe interface would be pretty stable.  So
> > the concerns of needing to fix that would be a bit overblown.  In
>
> My take on this is that usually all the places that can not be upgraded
> have some annoying bug, and field recalls are expensive way of fixing
> some small bug. I have seen that even PLD update logic is wired to
> CPUs to enable PLD updates in the field.

You are talking about systems that have no upgrade capability.  I am
talking about a minimum boot capability that is very unlikely to need
an upgrade once it is tested and in the field.  Heck, if engineers
can't produce some level of accurate, working design then how do chips
ever get made???  It is pretty hard to field upgrade an IC.  ;^)


> > fact, it is likely that you could design the interface to the boot
> > Flash so that it can be programmed over the PCIe bus.  Then, as long
> > as the reprogramming did not go bust in the middle, you could update
> > the Flash just like you load the rest of the image.
>
> This is one way of doing this. It's also quite easy to build fail safes
> to drop into previous image if the update does not succeed. But this
> still needs extra flash, software logic, extra logic etc. This could
> be avoided in some situations.

The logic is in the FPGA and is trivial in all but CPLDs perhaps.  The
"extra flash" is literally pennies in any design and is typically
worth the small increment in cost.  But sure, there is more than one
way to skin a cat.

Rick

Article: 138548
Subject: Re: mb-gcc producing incorrect code ???
From: hal-usenet@ip-64-139-1-69.sjc.megapath.net (Hal Murray)
Date: Thu, 26 Feb 2009 15:34:53 -0600
Links: << >>  << T >>  << A >>

>but, well microblaze is WRONG endian it just makes
>lots of trouble

It should be simple to make a RIGHT endian version
of microblaze.  It's probably just a few lines of text.

-- 
These are my opinions, not necessarily my employer's.  I hate spam.


Article: 138549
Subject: Re: Configure FPGA via PCIe
From: hal-usenet@ip-64-139-1-69.sjc.megapath.net (Hal Murray)
Date: Thu, 26 Feb 2009 15:39:01 -0600
Links: << >>  << T >>  << A >>

>"So far, it seems the best way is (despite the FPGA on-board 
>transceivers) to use a PCIe to local bus bridge chip from PLX or Gennum."
>
>They're not so big an expensive compared with the other solutions I've 
>been considering.  The silicon costs a few dollars more, but I can 
>eliminate the manufacturing step for programming a Flash.

I don't think you can elimintate that flash programming.

The PLX chips need a tiny bit of external data to tell them
their device ID.  There may be some other parameters in there
too.

Without someting like that, the OS can't tell your board from
my board that uses the same PLX chip.

-- 
These are my opinions, not necessarily my employer's.  I hate spam.




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