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 125775

Article: 125775
Subject: Re: APU (xilinx PPC) is it a soft core ?
From: austin <austin@xilinx.com>
Date: Sun, 04 Nov 2007 11:06:47 -0800
Links: << >>  << T >>  << A >>
Mordehay,

It is hardware, part of the IBM PPC, designed for adding auxiliary 
processing capability to the processor.

It gets used with a "soft core" Floating Point Unit (FPU), for example.

The APU allows for faster transfers of data to and from CPU registers, 
and also transfers to and from memory.  The APU has direct access to the 
instruction decoder, too.

Austin

Article: 125776
Subject: DDR2 Interface
From: "maxascent" <maxascent@yahoo.co.uk>
Date: Sun, 04 Nov 2007 13:34:27 -0600
Links: << >>  << T >>  << A >>

Hi

I am designing a board with a Virex 4 and a DDR2 component. I have used
the MIG tool to generate an interface. However the pinout it has generted
is not ideal as there are a lot of crossed nets. Can I tweak the nets to
give me better routing or will this leave me with a non working interface.
I cant really see any reason why it still wouldn't work.

Cheers

Jon 

Article: 125777
Subject: Re: Xilinx PCI-Express Endpoint Block IP
From: sovan <sovan.kundu@gmail.com>
Date: Sun, 04 Nov 2007 20:45:27 -0000
Links: << >>  << T >>  << A >>
I think it should be possible to design a 16-bit interface wrapper
around the GTP. Buf if you are using the PCIE_EP hard block then the
Transceiver interface is 8-bit PIPE interface. So we don't gain much
by having a 16-bit interface wrapper for GTP.

In my design I have registers in all the connections between PCIE_EP
and GTP. It works fine for x1 and x4. There wasn't any timing issue.
My core_clock is 250 MHz and user_clock is 125 MHz.

-Sovan.


Article: 125778
Subject: Re: DDR2 Interface
From: austin <austin@xilinx.com>
Date: Sun, 04 Nov 2007 13:41:43 -0800
Links: << >>  << T >>  << A >>
Jon,

Did you create or edit the UCF (user constraint file) as noted in:

http://direct.xilinx.com/bvdocs/whitepapers/wp260.pdf

Step 2 of the flow chart?

This is where you choose the pins you want to use (constraint eh design 
to use the pins you would like to use).

If you don't chose, the tools will choose for you.  If you choose pins 
that can not work, the tools will tell you that timing can't be met.

For example, choice of pins that should be together (like a data bus) 
need to be in the same bank, or for wide interfaces, adjacent banks.

Austin

Article: 125779
Subject: Re: How do I meet this memory IO with least resources on FPGA?
From: "Alvin Andries" <Alvin_Andries.no_spam@no.spam.versateladsl.be>
Date: Mon, 5 Nov 2007 01:53:57 +0100
Links: << >>  << T >>  << A >>

"G Iveco" <G.Iveco@google.com> wrote in message
news:fgi30n$245$1@reader01.singnet.com.sg...
> Hi, there
>
> My design needs a 16X16 matrix, each of 32-bit. The matrix must
> be read row by row or column by column each in one clock..
>
> Direct register implementation takes a lot of resources and routing can
> be difficult. Will 256 pieces of 32-bit RAM with single address work
> in Xilinx?
>
> TIA!
>

>>IF<< you can garantee that all R/W accesses will be row or column based,
you can get away with 16 BRAMs arranged in a diagonal pattern.

r0c0
      r1c1
            r2c2
                 ...
                     r15c15

Regards,
Alvin.



Article: 125780
Subject: Re: Xilinx PCI-Express Endpoint Block IP
From: "water9580@yahoo.com" <water9580@yahoo.com>
Date: Sun, 04 Nov 2007 17:34:30 -0800
Links: << >>  << T >>  << A >>
On 11 5 ,   4 45 , sovan <sovan.ku...@gmail.com> wrote:
> I think it should be possible to design a 16-bit interface wrapper
> around the GTP. Buf if you are using the PCIE_EP hard block then the
> Transceiver interface is 8-bit PIPE interface. So we don't gain much
> by having a 16-bit interface wrapper for GTP.
>
> In my design I have registers in all the connections between PCIE_EP
> and GTP. It works fine for x1 and x4. There wasn't any timing issue.
> My core_clock is 250 MHz and user_clock is 125 MHz.
>
> -Sovan.

I only need the PCIE GTP wrapper of Xilinx Endpoint Block,no Endpoint
Block hard core.I have customized my PCIE controller.it works well.

But i need a 16bit interface wrapper around the GTP.so,my user_clk can
be reduced 125MHz.

my steps is

1>generate a standard 16bit PCIE wrapper with Xilinx Coregen wizard1.7

2>overwritte the all 16bit file tile header parameters with 8bit PCIE
Endpoint Block parameter

any other modified?



Article: 125781
Subject: Audio Output from Spartan 3 Starter Kit
From: Bryan <hansen.bryan@gmail.com>
Date: Mon, 05 Nov 2007 01:34:57 -0000
Links: << >>  << T >>  << A >>
Hello,

I would like to try to get some audio output from my Spartan 3 starter
kit board, but as a hardware novice I worry about damaging my board.

Is there any risk of damage if I connect a piezoelectric speaker
directly to the pins of my FPGA? I have read that because of the high
impedance of this device it should be OK, but I would like to have a
better understanding.

Thanks,
Bryan


Article: 125782
Subject: Re: Xilinx PCI-express coregen
From: John_H <newsgroup@johnhandwork.com>
Date: Mon, 05 Nov 2007 02:31:22 GMT
Links: << >>  << T >>  << A >>
water9580@yahoo.com wrote:
> There are some MAXDELAY=1ns constrain for TX signals inside PCIE
> coregen.
> eg:
>      (* MAXDELAY="1.0" *) wire    [1:0]   tile0_txcharisk0_r;
>      (* MAXDELAY="1.0" *) wire            tile0_txdetectrx0_r;
>      (* MAXDELAY="1.0" *) wire            tile0_txelecidle0_r;
>      (* MAXDELAY="1.0" *) wire    [1:0]   tile0_txchardispmode0_r;
>      (* MAXDELAY="1.0" *) wire    [15:0]  tile0_txdata0_r;
>      (* MAXDELAY="1.0" *) wire    [1:0]   tile0_txchardispmode1_r;
>      (* MAXDELAY="1.0" *) wire    [1:0]   tile0_txchardispval1_r;
>      (* MAXDELAY="1.0" *) wire            tile0_txdetectrx1_r;
>      (* MAXDELAY="1.0" *) wire    [19:0]  tile0_txdata1_r;
>      (* MAXDELAY="1.0" *) wire            tile0_txelecidle1_r;
> 
> 
>  but,my core_clk is 4ns(250MHz) and user_clk is 8ns(125MHz). does it
> still meet the MAXDELAY=1ns timing requirement?

The MAXDELAY is an attribute for a net route and has nothing to do with
clocks.  From the driver of this net to the destination, the place &
route must keep the delay under a nanosecond or it WILL report a timing
violation.

You can even use MAXDELAY attributes on clockless logic.

Article: 125783
Subject: Linux (not uClinux) on Microblaze 7.0 w/MMU?
From: Eric Smith <eric@brouhaha.com>
Date: Sun, 04 Nov 2007 22:15:26 -0800
Links: << >>  << T >>  << A >>
Now that Xilinx has released Microblaze 7.0 with an optional MMU (in
EDK 9.2), has anyone started working on a Linux port?

There's already a uClinux port to Microblaze with no MMU, but for
some applications it would be nice to run "normal" Linux.

Article: 125784
Subject: Global Variables
From: raullim7@hotmail.com
Date: Sun, 04 Nov 2007 22:22:08 -0800
Links: << >>  << T >>  << A >>
i am having two PROCESS to take advantage of dual-edge behavior of the
clock pulse. one process takes care of the rising edge while the other
process takes care of the falling edge. For the two processes, they
are basically doing exactly the same thing just that one does it
during rising and the other does it during falling.. i have a problem
here, bcos i have two sets of variables that does the same thing, i
would to ask how do i change it to global variables..

example

PROCESS1
 variable countera;
 variable check1;

PROCESS2
 variable counterb;
 variable check2;

both countera/b and check1/2 are exactly the same thing but they are
being declared in the process loop. may i know how do i write the code
to change it to a shared variable that can be used in both process 1
and 2, that means i only have two variables in counter and check
rather than the four that i am having now.. pls help. thanks


Article: 125785
Subject: Re: xilinx bmm file problem
From: taco <tralalal@joepie.nl>
Date: Mon, 05 Nov 2007 09:32:28 +0100
Links: << >>  << T >>  << A >>
Antti wrote:

> eh the bmm approuch works.
> after some months-years ;)
> 
> is your memory 8 or 16 bits?
> if 8 then make the bram block 8 not 16 as in your bmm
> 
> connect chipscope to the ram add and data and let it run and look
> 
> Antti
> 
Just to record the solution which I found last week:
Indeed 8 bits. The bmm file only needed to changed into
cpu_inst/rom/Mrom_D1 [7:0];

The problem occurred because the declaration of the romsize was bigger than
actually initialized which is corrected in the xilinx software, but during
the ngdbuild phase the reduced romsize should be taken into account. Very
logical actually, but that's with many things...
taco
> 
> 
> On 31 Okt., 15:58, taco <trala...@joepie.nl> wrote:
>> hello,
>> Has anybody experience with xilinx bitfile merging using a bmm file?
>> I've a small processor core running in a spartan 3A using romcode which I
>> install into a generated vhdl file.
>> like
>> entity ROM is
>>         port(
>>                 Clk : in std_logic;
>>                 A : in std_logic_vector(12 downto 0);
>>                 D : out std_logic_vector(7 downto 0)
>>         );
>> end ROM;
>>
>> architecture rtl of ROM is
>>         signal A_r : std_logic_vector(12 downto 0);
>>         type rom_type is array(0 to  1951) of std_logic_vector(7 downto
>>         0); signal ROM:rom_type := (
>> X"02",
>> X"00",
>> X"08",
>> etc.
>> This works fine (programming running), but I would like to replace this
>> with a generic rom file without any initialization or just zero's and
>> merge the romhexfile into the bitfile using a bmm. For the situation
>> above the following bmm file doesn't give any errors:
>> ADDRESS_MAP TV51MAP PPC405 0
>> ADDRESS_BLOCK CPU_INST_ROM RAMB16 [0X0000:0X7ff]
>>         BUS_BLOCK
>>         cpu_inst/rom/Mrom_D1 [15:0];
>>         END_BUS_BLOCK;
>> END_ADDRESS_BLOCK;
>> END_ADDRESS_MAP;
>> It's possible to force a location etc. and a _bd.bmm is generated like
>> the documentation describes.
>> I call ngdbuild with:
>> if ngdbuild -bm cpu_rom.bmm -intstyle ise -dd _ngo -uc $(CONSTRAINTFILE)
>> -p $(DEVICE) $(DESIGN).ngc $(DESIGN).ngd
>> and bitgen with
>> bitgen -bd src/test.mem -w -g UnusedPin:PullNone $< $@ $(DESIGN).pcf
>> (so only the -bm and -bd arguments are added into the Makefile.)
>> The mem file looks like:
>> @00 02
>> @01 00
>> @02 08
>> @03 12
>> @04 00
>> @05 95
>> @06 80
>> The new bitfile is generated, but no luck. Program not running.
>> Anybody an idea how to tackle this?
>> Taco walstra


Article: 125786
Subject: linking error using mb-g++
From: Bathala <priyanthads@gmail.com>
Date: Mon, 05 Nov 2007 01:40:34 -0800
Links: << >>  << T >>  << A >>
Specification
EDK version:8.2i
FPGA Board: Virtex II Pro


My source code requires g++ compiler. However, when trying to use g++
to compile a very simple code on EDK 8.2i, the following error
appears.

/microblaze_a0/lib//libxil.a(xilfatfs_wd.o): In function
`make_root_directory':
/cygdrive/c/............/microblaze_a0/libsrc/xilfatfs_v1_00_a/src/src/
xilfatfs_wd.c(.text+0x238): undefined reference to
`get_partition_info'
collect2: ld returned 1 exit status

This linker error does not occur when using gcc compiler, but my
source code requires g++ compilation. Has anyone encountered this
problem before?

Maybe its possible the xilfatfs_fat.c file is written for gcc compiler
only.....

Priyantha De Silva


Article: 125787
Subject: Re: Audio Output from Spartan 3 Starter Kit
From: MikeShepherd564@btinternet.com
Date: Mon, 05 Nov 2007 09:44:47 +0000
Links: << >>  << T >>  << A >>
>I would like to try to get some audio output from my Spartan 3 starter
>kit board, but as a hardware novice I worry about damaging my board.
>
>Is there any risk of damage if I connect a piezoelectric speaker
>directly to the pins of my FPGA? I have read that because of the high
>impedance of this device it should be OK, but I would like to have a
>better understanding.

The main danger is that mechanical shock to the speaker can produce a
high voltage at its terminals (even where your equipment is turned
off).  This can damage a semiconductor device.

Does anyone here know the simplest way to avoid this?  I'd guess that
a 5V zener diode across the speaker should work, but maybe there's a
better way.

(Some semiconductor devices have internal "clamp" diodes to their
power rails and this provides some protection, but an FPGA intended
for use in a "hot insertion" product probably doesn't have these
diodes).

The (electrical) impedance of the speaker depends on frequency:  there
will be (mechanical) resonances at certain frequencies.  Generally,
you can expect the impedance to be less when the sound is louder.
However, for a small speaker such as you might use for experiments,
even the minimum impedance is unlikely to overload an FPGA output.

Mike

Article: 125788
Subject: Re: Global Variables
From: "RCIngham" <robert.ingham@gmail.com>
Date: Mon, 05 Nov 2007 06:11:02 -0600
Links: << >>  << T >>  << A >>
>i am having two PROCESS to take advantage of dual-edge behavior of the
>clock pulse. one process takes care of the rising edge while the other
>process takes care of the falling edge. For the two processes, they
>are basically doing exactly the same thing just that one does it
>during rising and the other does it during falling.. i have a problem
>here, bcos i have two sets of variables that does the same thing, i
>would to ask how do i change it to global variables..
>
>example
>
>PROCESS1
> variable countera;
> variable check1;
>
>PROCESS2
> variable counterb;
> variable check2;
>
>both countera/b and check1/2 are exactly the same thing but they are
>being declared in the process loop. may i know how do i write the code
>to change it to a shared variable that can be used in both process 1
>and 2, that means i only have two variables in counter and check
>rather than the four that i am having now.. pls help. thanks
>
>
Is this meant to be VHDL, and is it intended to be synthesized to an FPGA?
If synthesizeable VHDL, I strongly suggest "DO NOT USE SHARED VARIABLES."

You normally declare signals in the architecture scope if you need to
write them in one process and read them in another. However, no FPGA of
which I am aware has dual edge triggered flip-flops, except in DDR IO
blocks (and even there they are rather tricky). 

What problem are you actually trying to solve?


Article: 125789
Subject: Re: Another way to handle floating inputs.
From: "RCIngham" <robert.ingham@gmail.com>
Date: Mon, 05 Nov 2007 06:15:45 -0600
Links: << >>  << T >>  << A >>
>Be specific. What do you mean by "this" ? Your posting is #10 in a
>thread...
>Peter Alfke
>
>On Nov 2, 3:10 am, "RCIngham" <robert.ing...@gmail.com> wrote:
>> This looks like "voodoo design" to me.
>> Seehttp://foldoc.org/?voodoo+programmingfor the software equivalent.
>>
>> If you know what the problem really is, design for that. Use series or
>> parallel termination to mitigate ground-bounce, for instance.
>

The originally-posted circuit and the various minor modifications to it to
cover for unknown circumstances...


Article: 125790
Subject: Re: Linux (not uClinux) on Microblaze 7.0 w/MMU?
From: morphiend <morphiend@gmail.com>
Date: Mon, 05 Nov 2007 14:00:59 -0000
Links: << >>  << T >>  << A >>
On Nov 5, 1:15 am, Eric Smith <e...@brouhaha.com> wrote:
> Now that Xilinx has released Microblaze 7.0 with an optional MMU (in
> EDK 9.2), has anyone started working on a Linux port?
>
> There's already a uClinux port to Microblaze with no MMU, but for
> some applications it would be nice to run "normal" Linux.

I've heard word that some distro's may be working on supporting it,
but no specifics. It shouldn't be too difficult to take the non-MMU
version and add MMU capability.


Article: 125791
Subject: Re: Global Variables
From: Andy <jonesandy@comcast.net>
Date: Mon, 05 Nov 2007 06:50:44 -0800
Links: << >>  << T >>  << A >>
On Nov 5, 6:11 am, "RCIngham" <robert.ing...@gmail.com> wrote:
> >i am having two PROCESS to take advantage of dual-edge behavior of the
> >clock pulse. one process takes care of the rising edge while the other
> >process takes care of the falling edge. For the two processes, they
> >are basically doing exactly the same thing just that one does it
> >during rising and the other does it during falling.. i have a problem
> >here, bcos i have two sets of variables that does the same thing, i
> >would to ask how do i change it to global variables..
>
> >example
>
> >PROCESS1
> > variable countera;
> > variable check1;
>
> >PROCESS2
> > variable counterb;
> > variable check2;
>
> >both countera/b and check1/2 are exactly the same thing but they are
> >being declared in the process loop. may i know how do i write the code
> >to change it to a shared variable that can be used in both process 1
> >and 2, that means i only have two variables in counter and check
> >rather than the four that i am having now.. pls help. thanks
>
> Is this meant to be VHDL, and is it intended to be synthesized to an FPGA?
> If synthesizeable VHDL, I strongly suggest "DO NOT USE SHARED VARIABLES."
>
> You normally declare signals in the architecture scope if you need to
> write them in one process and read them in another. However, no FPGA of
> which I am aware has dual edge triggered flip-flops, except in DDR IO
> blocks (and even there they are rather tricky).
>
> What problem are you actually trying to solve?

DDR registers in FPGAs can be emulated with two flops and three XOR
gates (no clock gating, glitchless output, 100% STA compatible), as
has been posted on here many times. Unfortunately, there are no
synthesis tools that will implement a general two clock process with
the circuit. Those that even accept two clock processes insist on not
updating the same signal/variable on both clocks.

Andy


Article: 125792
Subject: Re: Static PLL
From: rouzbeh.h@actel.com
Date: Mon, 05 Nov 2007 07:13:16 -0800
Links: << >>  << T >>  << A >>
Hi Vince,

There is an example for the ProASIC3 board on Actel webpage with
complete design files and documentation.
But this design does not use the PLL.
http://www.actel.com/products/hardware/devkits_boards/proasic3_starter.aspx


Check that the POWERDOWN input signal for the PLL is connected
correctly.
By default this input is Active low and should therefore be connected
to '1'.
When generating the PLL macro you can see/change this configuration.

If this is not the problem let me know and I can send you an example.

BR
Rouzbeh




Article: 125793
Subject: Re: Weird behavior : Altera DE2, C++, For loops, SRAM
From: prof.brown@gmail.com
Date: Mon, 05 Nov 2007 07:31:16 -0800
Links: << >>  << T >>  << A >>
On Oct 31, 2:08 am, sendt...@gmail.com wrote:
> SoI'veimplementedaNIOSIIboardusingtheSOPCbuilder. I ran out
> of on-chip memorysoI went off-chip to the DE2's SRAM. Suddenly my
> programs stopped working and the for loops has an unusual behavior.
>
> It'll go outside of the for loop..
>
> for instance:
> -----------------
> //assume variables defined
>
> For (i = 0; i < 3999999; i++)
> {
> IOWR_8DIRECT(memory_base, i, 0xff); //Writes all 1's to SDRAM
>
> }
>
> printf("Finished...\n");
>
> ... more code...
>
> ------------------
>
> What ends up happening is that the loop will run with the
> printf("Finished...") statement and repeat for the duration of the
> loop.
>
> Output:
> Finished...
> Finished...
> Finished...
> .
> .
> You get the idea... I didn't let it loop 4 million times you see what
> happened.
>
> This ONLY happens when I use the SRAM. If I use the SDRAM or the on-
> chip memory it works fine.
>
> Any one run into this problem?
>
> Thanks,
> el

There are no reported problems with the DE2 SRAM behavior in the field
(from many thousands of users), so at least the problem you are seeing
is not common. One possible explanation could be timing constraints.
As I'm sure you know, it is a good idea to include proper Tco and Tsu
constraints when dealing with any device outside of the FPGA. We have
previously seen a similar error for one customer, and the error was
fixed when they added I/O timing constraints for the SRAM.


Article: 125794
Subject: Re: Another way to handle floating inputs.
From: Peter Alfke <peter@xilinx.com>
Date: Mon, 05 Nov 2007 10:49:19 -0800
Links: << >>  << T >>  << A >>
My memory served me poorly, and Ed McGettigan corrected me, thanks:

Virtex outputs have an optional week keeper. as described in the User
guide:

PULLUP/PULLDOWN/KEEPER for IBUF, OBUFT, and IOBUF
When using 3-state output (OBUFT) or bidirectional (IOBUF) buffers,
the output can havea weak pull-up resistor, a weak pull-down resistor,
or a weak "keeper" circuit. For input IBUF) buffers, the input can
have either a weak pull-up resistor or a weak pull-down resistor. This
feature can be invoked by adding the following possible constraint
values to the relevant net of the buffers:
=B7 PULLUP
=B7 PULLDOWN
=B7 KEEPER



On Nov 4, 9:22 am, Peter Alfke <al...@sbcglobal.net> wrote:
> On Nov 2, 4:19 pm, Jim Granville <no.s...@designtools.maps.co.nz>
> wrote:
>
>
>
> > Peter Alfke wrote:
> > > Kolja, I see it differently:
> > > A weak keeper has two disadvantages:
> > > It is weak, and might be overridden by crosstalk
> > > It consumes constant power when the signal is pulled Low.
>
> > What you have described is a pullup ?
> > Keepers, also called Bus-hold, or PinKeepers (depends on which vendor
> > you are), are snap-action positive feedback 'very light' drivers, and
> > they draw no power in either state. (typically hundreds of uA)
>
> > Of course, a disadvantage of that, is the Pin state is now undefined at
> > PowerUP, and that may be a bad thing.
>
> > The smarter CPLDs allow you to choose Pullup/PinKeep on a per pin basis.
>
> > -jg
>
> Since Xilinx FPGAs never had weak keepers on the user I/O, I got the
> nomenclature confused. Sorry.
> You can of course emulate a weak keeper by using the output driver at
> its weakest setting, but that may still be too strong in some
> applications (but not for switch debouncing).
> BTW, I should have mentioned that the switch must be break-before-make
> (obviously).
> Peter Alfke



Article: 125795
Subject: FPGA I/O Selection in UCF
From: jtindle@gmail.com
Date: Mon, 05 Nov 2007 20:26:40 -0000
Links: << >>  << T >>  << A >>
I have an application with a Xilinx Spartan3 FPGA where I would like
to use a single FPGA binary to support to I/O voltage levels: 2.8v and
1.8v.  My question is as follows:

Why does the UCF file include the selected IO standard for each pin?
I understand that the drive strengths and slew may change based on the
I/O standard.  Are there any other functional hardware changes made
based on the selected standard?  What are the potential consequences
of telling the compiler that I am using 2.8v but then running the
application with 1.8v?

Thanks


Article: 125796
Subject: Re: Static PLL
From: Vince <claesvincent@gmail.com>
Date: Mon, 05 Nov 2007 21:00:28 -0000
Links: << >>  << T >>  << A >>
On 5 nov, 16:13, rouzbe...@actel.com wrote:
> Hi Vince,
>
> There is an example for the ProASIC3 board on Actel webpage with
> complete design files and documentation.
> But this design does not use the PLL.http://www.actel.com/products/hardware/devkits_boards/proasic3_starte...
>
> Check that the POWERDOWN input signal for the PLL is connected
> correctly.
> By default this input is Active low and should therefore be connected
> to '1'.
> When generating the PLL macro you can see/change this configuration.
>
> If this is not the problem let me know and I can send you an example.
>
> BR
> Rouzbeh

Hi Rouzbeh,

I just have problems with the PLL macro, I have developed some
examples on this board already using CoreABC, UART, VHDL Project etc.
so I know how to work with the board. But always when I use the STATIC
PLL Macro it gives me problems... I can't get it running correctly.
Can you send me an example (where I get a 10MHz and 40MHz clock out of
the static pll macro? (I can't find a static pll example on the ACTEL
website)


Thanks for your help, kind regards.

Vince


Article: 125797
Subject: Re: FPGA I/O Selection in UCF
From: Gabor <gabor@alacron.com>
Date: Mon, 05 Nov 2007 13:01:17 -0800
Links: << >>  << T >>  << A >>
On Nov 5, 4:26 pm, jtin...@gmail.com wrote:
> I have an application with a Xilinx Spartan3 FPGA where I would like
> to use a single FPGA binary to support to I/O voltage levels: 2.8v and
> 1.8v.  My question is as follows:
>
> Why does the UCF file include the selected IO standard for each pin?

It doesn't have to, but if you don't include the IO standard you
get the global default (which depends on the device family).

> I understand that the drive strengths and slew may change based on the
> I/O standard.  Are there any other functional hardware changes made
> based on the selected standard?  What are the potential consequences
> of telling the compiler that I am using 2.8v but then running the
> application with 1.8v?
>
> Thanks

The obvious changes in hardware are the Vcco (Bank IO power supply)
and Vref (reference voltage for single-ended standards requiring a
reference).  The placement tools make sure that the standards are
compatible for all IO's in each bank.  i.e you can't mix IO's
that require Vcco at 1.8V with those that require Vcco at 2.5V in
the same bank.  Similar for inputs requiring different Vref in
a bank.

Some input standards don't use a reference voltage, but may need
a particular Vcco voltage.  Output standards all need a specific
Vcco.  Telling the tools you are running at 2.5V (did you mean 2.5
and not 2.8?) but powering Vcco with 1.8V will result in hardware
that does not match the simulation in terms of timing and drive
capability and in some cases just won't work.




Article: 125798
Subject: Re: FPGA I/O Selection in UCF
From: morphiend <morphiend@gmail.com>
Date: Mon, 05 Nov 2007 21:12:32 -0000
Links: << >>  << T >>  << A >>
On Nov 5, 3:26 pm, jtin...@gmail.com wrote:
> I have an application with a Xilinx Spartan3 FPGA where I would like
> to use a single FPGA binary to support to I/O voltage levels: 2.8v and
> 1.8v.  My question is as follows:
>
> Why does the UCF file include the selected IO standard for each pin?
> I understand that the drive strengths and slew may change based on the
> I/O standard.  Are there any other functional hardware changes made
> based on the selected standard?  What are the potential consequences
> of telling the compiler that I am using 2.8v but then running the
> application with 1.8v?
>
> Thanks

Different IO standards have different voltage tolerances for
determining 1 vs 0. Also, they have different termination methods for
signal integrity and drive strength. If you use a lower voltage in a
higher voltage setting, its possible that you'll never 'see' a
transition inside the FPGA since its being set for higher tolerances.

Also, FPGAs usually have a voltage requirements for their IO banks. An
IO bank being a group of IO pins. This IO bank should (probably) have
a requirement that all pins in a bank use a compatible IO standard.
This can be limited to requiring the same voltage used in the bank, or
maybe even the same type of signalling in the bank.


Article: 125799
Subject: Re: FPGA I/O Selection in UCF
From: austin <austin@xilinx.com>
Date: Mon, 05 Nov 2007 13:25:00 -0800
Links: << >>  << T >>  << A >>
jt,

The strength of the driver depends on the selected number of "legs"
enabled, and the attributes (FAST or SLOW) for any particular Vcco voltage.

IO's that require a Vref will require a different Vref voltage
externally to operate properly.

LVDS only works at 2.5 volts (in the latest parts).

But, a LVCMOS IO that is set for 12 mA in the highest Vcco, will still
be fairly strong at a lower Vcco.  Timing, rise and fall times will be
slower at lower Vcco, but the LVCMOS IO will still function just fine.

To really make sure this will work, I would download the SPICE models,
and run them at the different Vcco voltages, and make sure the signal
integrity met all of your needs.  The reason for simulating with SPICE
is that you can change the Vcco, and see the result of fast and slow
process corner material, as well as how the IO behaves with temperature.

Austin



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