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 72325

Article: 72325
Subject: Re: Free Spartan3 download program for GNU/Linux
From: Sylvain Munaut <tnt_at_246tNt_dot_com@reducespam.com>
Date: Sun, 15 Aug 2004 08:45:03 +0200
Links: << >>  << T >>  << A >>
Hi

> 
> Not sure what you mean by "the FPGA, not the Flash yet".  Can you explain?
> Does this imply that we can now use the $99 board that Xilinx is selling 
> with Linux now?  What limitations are implied by "not the Flash yet"?
> 

The flash is the little PROM on board, the non-volatile memory. The FPGA need to reload its config each time it's powered. It can download it's config from a little flash on the board (so that the board is autonomous) and this PROM is on the JTAG chain too, but you can't program it with this application yet.


Personnaly, I'm now doing all my Xilinx work under Linux.

I use wine for the WebPack. That's sometimes a little slow when "compiling" but that's OK. And this prog to program the bitstream.
The only thing I can't do is program the PROM.


Sylvain

Article: 72326
Subject: Hardware/Software Communication in Virtex-2p
From: vramtilak@gmail.com (Ramtilak)
Date: 14 Aug 2004 23:48:15 -0700
Links: << >>  << T >>  << A >>
Hi All,

I am designing a system which has both hardware and software parts. I
want to make some computations in the hardware and then sample the
results in the software running on PowerPC. Did anyone do something
similar? Whats the best and the easiest way to do this?

Thanks,
Ramtilak

Article: 72327
Subject: Re: Can PPC in V2P reconfig the FPGA slices?
From: gerd?NO?SPAM@rzaix530.rz.uni-leipzig.de (Gerd)
Date: 15 Aug 2004 08:12:03 GMT
Links: << >>  << T >>  << A >>
Sean Durkin <smd@despammed.com> wrote:
> you can reconfigure the FPGA with simple memory writes. But in real 
> life, it's so complicated and there's so many restrictions and bugs in 
> the tools that in most cases it's useless and not worth the trouble. 
> It's a bit easier if you use a MicroBlaze instead of the PowerPC, since 
> you can put the MicroBlaze pretty much everywhere you want, which makes 
> the whole process a lot easier.

Uh?

It's not _that_ bad, isn't it?

As for the tools being buggy, if your talking about modular design flow,
then probably everybody agrees, but otherwise you shuold be fine. At least
the ICAP is easier to handle than the SelectMAP (see my other post :( ).

Regarding the placement of the MicroBlaze, it really takes up so much area
that I wouldn't consider it _better_ than the PPC. In fact with the PPC,
you only loose the couple columns associated with that PPC (and you can
area-constrain the ppc-icap-interface to those same columns), which should
be less than the number of columns required for a Microblaze in the smaller
devices (up to 2vp20 I would guess).

Anyway, if you have any specific problems with the ICAP, please ask :)


regards,
-g

Article: 72328
Subject: SDRAM Controller on a cyclone dev kit
From: Nick <char-DONTBUGME-les@no-spam.iie.cnam.france>
Date: Sun, 15 Aug 2004 13:58:14 +0200
Links: << >>  << T >>  << A >>
Hello,

I've been unsuccessfully trying to use the SDRAM on my MJL Cyclone dev
kit. I've tried the example (not very well documented) sold with the
dev kit, and tried the Altera IP Sdram controller.

The way i do it :
I connect the sdram controller to the sdram and use a small test
module to check it reads and writes. I start with the initialisation
sequence of the ram (nop for 100Ás then load register), i write at the
adress 0...00 and then at adress 0..01, read alternatively each adress
with a pause and print the output on a digit. 
At best i have something funny on the digit, which is most of the time
not what i want, at worst i have the digit blank.

On the Altera IP, i use the built it pll on clk1 to drive the sdram
(since it seems from the specsheets that the output of pll1 is
connected to the sdram clk) and either the clk1 or another clk to feed
the whole. (i tried at 100 and 33 MHz).

With the MJL Cyclone dev kit i use the pll1 to fee the sdram and the
sdram controller.


I've tried to simulate (I use Quartus 4.1) and it seems that the
simulation is completly out of its head. I have states transitions
BEFORE the signal driving it actually arrives. Are the simulation
reliable with the plls ?

Do you please have some idea of what i am doing wrong ?

Thank you very much
Nick Charles 

Article: 72329
Subject: Re: Free Spartan3 download program for GNU/Linux
From: Andrew Rogers <andrew@_NO_SPAM_rogerstech.co.uk>
Date: Sun, 15 Aug 2004 14:39:29 +0100
Links: << >>  << T >>  << A >>
Sylvain Munaut wrote:
> Hi
> 
>>
>> Not sure what you mean by "the FPGA, not the Flash yet".  Can you 
>> explain?
>> Does this imply that we can now use the $99 board that Xilinx is 
>> selling with Linux now?  What limitations are implied by "not the 
>> Flash yet"?
>>
> 
> The flash is the little PROM on board, the non-volatile memory. The FPGA 
> need to reload its config each time it's powered. It can download it's 
> config from a little flash on the board (so that the board is 
> autonomous) and this PROM is on the JTAG chain too, but you can't 
> program it with this application yet.
> 
> 
> Personnaly, I'm now doing all my Xilinx work under Linux.
> 
> I use wine for the WebPack. That's sometimes a little slow when 
> "compiling" but that's OK. And this prog to program the bitstream.
> The only thing I can't do is program the PROM.
> 

In due course I'll be working on programming the PROM. At the moment I'm 
struggling to find a datasheet on the XCF02S PROM that gives the 
programming algorithm. Even without the datasheet I will not give up.

Can anyone tell me where I can find the programming algorithm for the 
XCF02S PROM?

Thanks
Andrew


Article: 72330
Subject: Re: Hardware/Software Communication in Virtex-2p
From: Shalin Sheth <Shalin.Sheth@xilinx.com>
Date: Sun, 15 Aug 2004 09:38:33 -0700
Links: << >>  << T >>  << A >>
Ramtilak,

Look at the UltraController Application Note which has a prebuilt 
PowerPC system and 32-bit GPIO interface to fabric to bring data into 
and onto the FPGA fabric from software running on the PowerPC.  More 
information on this design can be found at:
http://www.xilinx.com/ultracontroller.

Shalin-

Ramtilak wrote:
> Hi All,
> 
> I am designing a system which has both hardware and software parts. I
> want to make some computations in the hardware and then sample the
> results in the software running on PowerPC. Did anyone do something
> similar? Whats the best and the easiest way to do this?
> 
> Thanks,
> Ramtilak


Article: 72331
Subject: SSO and other banks behavior of Xilinx FPGAs
From: "jean-francois hasson" <jfhasson@club-internet.fr>
Date: Sun, 15 Aug 2004 20:02:07 +0200
Links: << >>  << T >>  << A >>
Hi,

I have read a few articles about SSO and the fact that ground bounce may
occur and therefore the ground reference of the chip is different from the
ground of the board the chip is on. I was wondering if a ground bounce
problem on one bank of an FPGA could create issues on other interfaces
located on other banks of the FPGA ? I also understood that SSO guidelines
for Xilinx FPGAs were given considering a perfect decoupling system. What is
the impact of decoupling on the fact that many outputs switch at the same
time and that the return current is too important on one ground pin
involving ground bounce ?

Thanks,

JF



Article: 72332
Subject: Re: Free Spartan3 download program for GNU/Linux
From: Andrew Rogers <andrew@_NO_SPAM_rogerstech.co.uk>
Date: Sun, 15 Aug 2004 19:58:47 +0100
Links: << >>  << T >>  << A >>
Andrew Rogers wrote:
> Sylvain Munaut wrote:
> 
>> Hi
>>
>>>
>>> Not sure what you mean by "the FPGA, not the Flash yet".  Can you 
>>> explain?
>>> Does this imply that we can now use the $99 board that Xilinx is 
>>> selling with Linux now?  What limitations are implied by "not the 
>>> Flash yet"?
>>>
>>
>> The flash is the little PROM on board, the non-volatile memory. The 
>> FPGA need to reload its config each time it's powered. It can download 
>> it's config from a little flash on the board (so that the board is 
>> autonomous) and this PROM is on the JTAG chain too, but you can't 
>> program it with this application yet.
>>
>>
>> Personnaly, I'm now doing all my Xilinx work under Linux.
>>
>> I use wine for the WebPack. That's sometimes a little slow when 
>> "compiling" but that's OK. And this prog to program the bitstream.
>> The only thing I can't do is program the PROM.
>>
> 
> In due course I'll be working on programming the PROM. At the moment I'm 
> struggling to find a datasheet on the XCF02S PROM that gives the 
> programming algorithm. Even without the datasheet I will not give up.
> 
> Can anyone tell me where I can find the programming algorithm for the 
> XCF02S PROM?
> 
> Thanks
> Andrew
> 

http://www.xilinx.com/xlnx/xweb/xil_publications_display.jsp?sGlobalNavPick=&sSecondaryNavPick=&category=-18786&iLanguageID=1

One would think that the "Complete data sheet for Platform Flash 
In-System Programmable Configuration PROMs" would have details on the 
"In-System Programmable" features. I think the marketing department has 
been at work here!

It does give:
Instruction register length.
IDCODE.
Instruction capture values.
JTAG signals timing.

It does not tell me about "In-System Programmable"!

"Complete" ?

Regards
Andrew

--
Spartan3 configuration download tool for GNU/Linux available from
http://www.rogerstech.co.uk


Article: 72333
Subject: Re: let me have logic design for traffic light
From: Eric Smith <eric-no-spam-for-me@brouhaha.com>
Date: 15 Aug 2004 12:08:02 -0700
Links: << >>  << T >>  << A >>
byseid@yahoo.com writes:
> I am not new for logic design but I need help for designing a
> sequential Logic circuit analysis and design.
> I want to design a traffic light controller for crossroad(of four
> direction) the controller at each direction say A,B,C,D detects the
> number of cars on each then the line having more cars will get the
> priority... for more details please mail me <byseid@yahoo.com>.

If I do your homework for you, will you please have your school award
the degree in my name?

Article: 72334
Subject: Re: LEGO mindstroms and FPGA
From: "Martin Schoeberl" <martin.schoeberl@chello.at>
Date: Sun, 15 Aug 2004 20:47:50 GMT
Links: << >>  << T >>  << A >>
I have added a section about the LEGO motor driver on the website
(http://www.jopdesign.com/lego/index.jsp).

You can find mesurements of the PWM output from the original LEGO RCX, a
simple schemantic
with an L283D driver and sigma-delta ADCs for back-EMF measurements.

Martin
----------------------------------------------
JOP - a Java Processor core for FPGAs:
http://www.jopdesign.com/




Article: 72335
Subject: Re: Dual Microblaze System
From: John Williams <jwilliams@itee.uq.edu.au>
Date: Mon, 16 Aug 2004 08:10:10 +1000
Links: << >>  << T >>  << A >>
This is a multi-part message in MIME format.
--------------080302030505090600010304
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hi Alistair,

alastair wrote:

> It's been a while since I did any development with XPS (that's my
> excuse) and after checking the memory map for the BRAM controllers I
> get past the error I saw. Now I get another one when generating the
> bitstream:
> 
> ERROR:Ncd:528 - Could not find the the corresponding NC_COMP for the
> BlockRAM
>    instancename:<bram_lmb_2/bram_block_0_i/ramb16_s9_s9_0>.Cannot
> continue with
>    BlockRAM updates.
> ERROR:Bitgen:194 - Unable to update BRAM initialization data for
> design
>    system.ncd.
> make: *** [implementation/system.bit] Error 1
> Done.

Looks like the data2bram utility that stuffs bram contents onto the 
bitstream, is having trouble distinguishing the various BRAMs.  Did you 
do a "make clean" after you fixed the initial error, and build it all 
from scratch?

> John - if you have time to dig out your project with dual processors
> I'd appreciate being able to have a look at the setup. I'm not sure
> what the error  means and can't seem to find any information on the
> error from a quick search on Google and the Xilinx website - any ideas

The MHS file is attached.  This harwdare will build under 6.2, but I 
don't think it will actually work.  Note it's an SMP system, two 
microblazes on the same bus which is not what you wanted.  As such there 
are other issues such as cache coherency (lack thereof), and no 
interrupt sharing etc, but it's a starting point.

Cheers,

John

--------------080302030505090600010304
Content-Type: text/plain;
 name="system.mhs"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="system.mhs"

# Parameters
 PARAMETER VERSION = 2.1.0

# Global Ports
 PORT ext_clk = ext_clk, DIR = IN
 PORT ddr_clk_fb = ddr_clk_fb, DIR = IN
 PORT sys_rstn = sys_rstn, DIR = IN
 PORT console_uart_rx = console_uart_rx, DIR = IN
 PORT console_uart_tx = console_uart_tx, DIR = OUT
 PORT debug_uart_rx = debug_uart_rx, DIR = IN
 PORT debug_uart_tx = debug_uart_tx, DIR = OUT
 PORT sram_cen = sram_cen, DIR = OUT, VEC = [0:1]
 PORT sram_addr = sram_addr, DIR = OUT, VEC = [0:31]
 PORT sram_ben = sram_ben, DIR = OUT, VEC = [0:3]
 PORT sram_data = sram_data, DIR = INOUT, VEC = [0:31]
 PORT sram_oen = sram_oen, DIR = OUT
 PORT sram_wen = sram_wen, DIR = OUT
 PORT sram_rst = sram_rst, DIR = OUT
 PORT gpio = gpio, DIR = INOUT, VEC = [0:23]
 PORT ddr_clk = ddr_clk, DIR = OUT
 PORT ddr_clkn = ddr_clkn, DIR = OUT
 PORT ddr_clke = ddr_clke, DIR = OUT
 PORT ddr_csn = ddr_csn, DIR = OUT
 PORT ddr_rasn = ddr_rasn, DIR = OUT
 PORT ddr_casn = ddr_casn, DIR = OUT
 PORT ddr_wen = ddr_wen, DIR = OUT
 PORT ddr_dqm = ddr_dqm, DIR = OUT, VEC = [0:1]
 PORT ddr_bankaddr = ddr_bankaddr, DIR = OUT, VEC = [0:1]
 PORT ddr_addr = ddr_addr, DIR = OUT, VEC = [0:12]
 PORT ddr_dq = ddr_dq, DIR = INOUT, VEC = [0:15]
 PORT ddr_dqs = ddr_dqs, DIR = INOUT, VEC = [0:1]
 PORT ETH_COL = ETH_COL, DIR = IN
 PORT ETH_CRS = ETH_CRS, DIR = IN
 PORT ETH_MDC = ETH_MDC, DIR = INOUT
 PORT ETH_MDIO = ETH_MDIO, DIR = INOUT
 PORT ETH_RXC = ETH_RXC, DIR = IN
 PORT ETH_RXD = ETH_RXD, DIR = IN, VEC = [3:0]
 PORT ETH_RXDV = ETH_RXDV, DIR = IN
 PORT ETH_RXER = ETH_RXER, DIR = IN
 PORT ETH_TXC = ETH_TXC, DIR = IN
 PORT ETH_TXD = ETH_TXD, DIR = OUT, VEC = [3:0]
 PORT ETH_TXEN = ETH_TXEN, DIR = OUT
 PORT ETH_TXER = ETH_TXER, DIR = OUT
 PORT PHY_RESETn = PHY_RESETn, DIR = OUT


# Sub Components
BEGIN microblaze
 PARAMETER INSTANCE = microblaze_0
 PARAMETER HW_VER = 2.00.a
 PARAMETER C_USE_DIV = 0
 PARAMETER C_USE_BARREL = 0
 PARAMETER C_DEBUG_ENABLED = 0
 PARAMETER C_USE_ICACHE = 1
 PARAMETER C_ICACHE_BASEADDR = 0x80000000
 PARAMETER C_ICACHE_HIGHADDR = 0x81FFFFFF
 PARAMETER C_CACHE_BYTE_SIZE = 8192
 PARAMETER C_ADDR_TAG_BITS = 11
 BUS_INTERFACE DLMB = d_lmb_v10
 BUS_INTERFACE ILMB = i_lmb_v10
 BUS_INTERFACE DOPB = d_opb_v20
 BUS_INTERFACE IOPB = d_opb_v20
 PORT CLK = sys_clk
 PORT INTERRUPT = interrupt
END

BEGIN microblaze
 PARAMETER INSTANCE = microblaze_2
 PARAMETER HW_VER = 2.00.a
 PARAMETER C_USE_DIV = 0
 PARAMETER C_USE_BARREL = 0
 PARAMETER C_DEBUG_ENABLED = 0
 PARAMETER C_USE_ICACHE = 1
 PARAMETER C_ICACHE_BASEADDR = 0x80000000
 PARAMETER C_ICACHE_HIGHADDR = 0x81FFFFFF
 PARAMETER C_CACHE_BYTE_SIZE = 8192
 PARAMETER C_ADDR_TAG_BITS = 11
 BUS_INTERFACE DLMB = d2_lmb_v10
 BUS_INTERFACE ILMB = i2_lmb_v10
 BUS_INTERFACE DOPB = d_opb_v20
 BUS_INTERFACE IOPB = d_opb_v20
 PORT CLK = sys_clk
 #PORT INTERRUPT = interrupt
END

# inverter to convert active low sys_rstn to active high sys_rst
BEGIN my_inverter
 PARAMETER INSTANCE = rst_inverter
 PORT I = sys_rstn
 PORT O = sys_rst
END

BEGIN ddr_clk_gen
 PARAMETER INSTANCE = my_ddr_clk_gen
 PARAMETER HW_VER = 1.00.a
# 66mhz internal clock
 PARAMETER C_CLKIN_PERIOD_NS = 15.0
# 66mhz  external  clock
 PORT CLK_IN = clk66mhz
# tie DCM reset to system reset (active low)
 PORT CLK_RST = sys_rst
# feedback from outside
 PORT DDR_CLK_FB = ddr_clk_fb
# drive system clock with this one
 PORT CLK0 = sys_clk
# 90 deg phase shifted system clock
 PORT CLK90 = sys_clk_90
# external feedback 90 deg phase shift
 PORT DDR_CLK_90 = ddr_clk_90
END

# PORT CORE_DCM_LOCKED = core_dcm_locked
# PORT DDR_DCM_LOCKED = ddr_dcm_locked
BEGIN opb_ddr
 PARAMETER INSTANCE = ddr_controller
 PARAMETER HW_VER = 1.00.b
# 100mhz clock
 PARAMETER C_OPB_CLK_PERIOD_PS = 15000
 PARAMETER C_INCLUDE_BURST_SUPPORT = 0
 PARAMETER C_DQS_PULLUPS = 1
 PARAMETER C_REG_DIMM = 0
 PARAMETER C_DDR_TMRD = 15000
 PARAMETER C_DDR_TWR = 15000
 PARAMETER C_DDR_TWTR = 1
 PARAMETER C_DDR_TRAS = 40000
 PARAMETER C_DDR_TRC = 65000
 PARAMETER C_DDR_TRFC = 75000
 PARAMETER C_DDR_TRCD = 20000
 PARAMETER C_DDR_TRRD = 15000
 PARAMETER C_DDR_TREFC = 70000000
 PARAMETER C_DDR_TREFI = 7800000
 PARAMETER C_DDR_TRP = 20000
 PARAMETER C_DDR_CAS_LAT = 2
 PARAMETER C_DDR_DWIDTH = 16
 PARAMETER C_DDR_AWIDTH = 13
 PARAMETER C_DDR_COL_AWIDTH = 9
 PARAMETER C_DDR_BANK_AWIDTH = 2
 PARAMETER C_BASEADDR = 0x80000000
 PARAMETER C_HIGHADDR = 0x81FFFFFF
 BUS_INTERFACE SOPB = d_opb_v20
# system clock
 PORT OPB_Clk = sys_clk
# phase shifted sys_clk
 PORT Clk90_in = sys_clk_90
# phase shifted feedback clk
 PORT DDR_Clk90_in = ddr_clk_90
# output clocks
 PORT DDR_Clk = ddr_clk
# inverted clock
 PORT DDR_Clkn = ddr_clkn
 PORT DDR_CKE = ddr_clke
 PORT DDR_CSn = ddr_csn
 PORT DDR_RASn = ddr_rasn
 PORT DDR_CASn = ddr_casn
 PORT DDR_WEn = ddr_wen
 PORT DDR_DM = ddr_dqm
 PORT DDR_BankAddr = ddr_bankaddr
 PORT DDR_Addr = ddr_addr
 PORT DDR_DQ = ddr_dq
 PORT DDR_DQS = ddr_dqs
END

BEGIN opb_memcon
 PARAMETER INSTANCE = system_memcon
 PARAMETER HW_VER = 1.00.a
 PARAMETER C_OPB_CLOCK_PERIOD_PS = 15000
 PARAMETER C_NUM_BANKS_MEM = 2
 PARAMETER C_BASEADDR = 0xffff0000
 PARAMETER C_HIGHADDR = 0xffff00ff
 PARAMETER C_MEM0_BASEADDR = 0xffe00000
 PARAMETER C_MEM0_HIGHADDR = 0xffefffff
 PARAMETER C_MEM1_BASEADDR = 0xff000000
 PARAMETER C_MEM1_HIGHADDR = 0xff7fffff
 BUS_INTERFACE SOPB = d_opb_v20
 PORT Mem_CEN = sram_cen
 PORT Mem_A = sram_addr
 PORT Mem_BEN = sram_ben
 PORT Mem_DQ = sram_data
 PORT Mem_OEN = sram_oen
 PORT Mem_WEN = sram_wen
 PORT OPB_Clk = sys_clk
 PORT Mem_RPN = sram_rst
END

BEGIN opb_uartlite
 PARAMETER INSTANCE = console_uart
 PARAMETER HW_VER = 1.00.b
 PARAMETER C_BAUDRATE = 57600
 PARAMETER C_DATA_BITS = 8
 PARAMETER C_USE_PARITY = 0
 PARAMETER C_ODD_PARITY = 0
 PARAMETER C_CLK_FREQ = 66_666_667
 PARAMETER C_BASEADDR = 0xFFFF2000
 PARAMETER C_HIGHADDR = 0xFFFF20FF
 BUS_INTERFACE SOPB = d_opb_v20
 PORT Interrupt = console_uart_interrupt
 PORT OPB_Clk = sys_clk
 PORT RX = console_uart_rx
 PORT TX = console_uart_tx
END

BEGIN opb_uartlite
 PARAMETER INSTANCE = debug_uart
 PARAMETER HW_VER = 1.00.b
 PARAMETER C_DATA_BITS = 8
 PARAMETER C_CLK_FREQ = 66_666_667
 PARAMETER C_BAUDRATE = 115200
 PARAMETER C_USE_PARITY = 0
 PARAMETER C_ODD_PARITY = 0
 PARAMETER C_BASEADDR = 0xFFFF4000
 PARAMETER C_HIGHADDR = 0xFFFF40FF
 BUS_INTERFACE SOPB = d_opb_v20
 PORT Interrupt = debug_uart_interrupt
 PORT OPB_Clk = sys_clk
 PORT RX = debug_uart_rx
 PORT TX = debug_uart_tx
END

BEGIN opb_intc
 PARAMETER INSTANCE = system_intc
 PARAMETER HW_VER = 1.00.c
 PARAMETER C_BASEADDR = 0xffff3000
 PARAMETER C_HIGHADDR = 0xffff30ff
 BUS_INTERFACE SOPB = d_opb_v20
 PORT Irq = interrupt
 PORT OPB_Clk = sys_clk
 PORT Intr = ethernet_interrupt & debug_uart_interrupt & console_uart_interrupt & timer_interrupt
END

BEGIN opb_timer
 PARAMETER INSTANCE = system_timer
 PARAMETER HW_VER = 1.00.b
 PARAMETER C_BASEADDR = 0xffff1000
 PARAMETER C_HIGHADDR = 0xffff10ff
 BUS_INTERFACE SOPB = d_opb_v20
 PORT OPB_Clk = sys_clk
 PORT Interrupt = timer_interrupt
END

BEGIN opb_gpio
 PARAMETER INSTANCE = system_gpio
 PARAMETER HW_VER = 1.00.a
 PARAMETER C_BASEADDR = 0xffff5000
 PARAMETER C_HIGHADDR = 0xffff50ff
 PARAMETER C_GPIO_WIDTH = 24
 BUS_INTERFACE SOPB = d_opb_v20
 PORT GPIO_IO = gpio
 PORT OPB_Clk = sys_clk
END

BEGIN lmb_bram_if_cntlr
 PARAMETER INSTANCE = d_lmb_bram_if_cntlr
 PARAMETER HW_VER = 1.00.b
 PARAMETER C_BASEADDR = 0x00000000
 PARAMETER C_HIGHADDR = 0x00001FFF
 BUS_INTERFACE SLMB = d_lmb_v10
 BUS_INTERFACE BRAM_PORT = conn_0
 PORT LMB_Clk = sys_clk
END

BEGIN lmb_bram_if_cntlr
 PARAMETER INSTANCE = i_lmb_bram_if_cntlr
 PARAMETER HW_VER = 1.00.b
 PARAMETER C_BASEADDR = 0x00000000
 PARAMETER C_HIGHADDR = 0x00001FFF
 BUS_INTERFACE SLMB = i_lmb_v10
 BUS_INTERFACE BRAM_PORT = conn_1
 PORT LMB_Clk = sys_clk
END

BEGIN lmb_bram_if_cntlr
 PARAMETER INSTANCE = d_lmb_bram_if_cntlr2
 PARAMETER HW_VER = 1.00.b
 PARAMETER C_BASEADDR = 0x00000000
 PARAMETER C_HIGHADDR = 0x00001FFF
 BUS_INTERFACE SLMB = d2_lmb_v10
 BUS_INTERFACE BRAM_PORT = conn_3
 PORT LMB_Clk = sys_clk
END

BEGIN lmb_bram_if_cntlr
 PARAMETER INSTANCE = i_lmb_bram_if_cntlr2
 PARAMETER HW_VER = 1.00.b
 PARAMETER C_BASEADDR = 0x00000000
 PARAMETER C_HIGHADDR = 0x00001FFF
 BUS_INTERFACE SLMB = i2_lmb_v10
 BUS_INTERFACE BRAM_PORT = conn_4
 PORT LMB_Clk = sys_clk
END

BEGIN bram_block
 PARAMETER INSTANCE = bram
 PARAMETER HW_VER = 1.00.a
 PARAMETER C_MEMSIZE = 8192
 BUS_INTERFACE PORTA = conn_0
 BUS_INTERFACE PORTB = conn_1
END

BEGIN bram_block
 PARAMETER INSTANCE = bram2
 PARAMETER HW_VER = 1.00.a
 PARAMETER C_MEMSIZE = 8192
 BUS_INTERFACE PORTA = conn_3
 BUS_INTERFACE PORTB = conn_4
END

BEGIN opb_v20
 PARAMETER INSTANCE = d_opb_v20
 PARAMETER HW_VER = 1.10.b
 PORT OPB_Clk = sys_clk
 PORT SYS_Rst = sys_rst
END

BEGIN lmb_v10
 PARAMETER INSTANCE = i_lmb_v10
 PARAMETER HW_VER = 1.00.a
 PORT LMB_Clk = sys_clk
 PORT SYS_Rst = sys_rst
END

BEGIN lmb_v10
 PARAMETER INSTANCE = d_lmb_v10
 PARAMETER HW_VER = 1.00.a
 PORT LMB_Clk = sys_clk
 PORT SYS_Rst = sys_rst
END

BEGIN lmb_v10
 PARAMETER INSTANCE = i2_lmb_v10
 PARAMETER HW_VER = 1.00.a
 PORT LMB_Clk = sys_clk
 PORT SYS_Rst = sys_rst
END

BEGIN lmb_v10
 PARAMETER INSTANCE = d2_lmb_v10
 PARAMETER HW_VER = 1.00.a
 PORT LMB_Clk = sys_clk
 PORT SYS_Rst = sys_rst
END

BEGIN my_dcm
 PARAMETER INSTANCE = system_dcm
 PARAMETER HW_VER = 1.00.a
 PARAMETER C_CLKIN_PERIOD_NS = 10.0
 PARAMETER C_DIVISOR = 3
 PARAMETER C_INBUFFER = TRUE
 PARAMETER C_MULTIPLIER = 2
 PARAMETER C_OUTBUFFER = TRUE
# external clock input pin
 PORT CLK_IN = ext_clk
 PORT CLK_RST = net_gnd
 PORT CLK_0 = clk_fb_o
 PORT CLK_FB = clk_fb_i
# input to ddr_clk_gen module
 PORT CLK_FX = clk66mhz
END

BEGIN my_bufg
 PARAMETER INSTANCE = dcm_feedback_bufg
 PORT I = clk_fb_o
 PORT O = clk_fb_i
END

BEGIN opb_ethernet
 PARAMETER INSTANCE = ether
 PARAMETER HW_VER = 1.00.m
 PARAMETER C_DMA_PRESENT = 1
 PARAMETER C_DMA_INTR_COALESCE = 1
 PARAMETER C_OPB_CLK_PERIOD_PS = 15000
 PARAMETER C_BASEADDR = 0xC0000000
 PARAMETER C_HIGHADDR = 0xC0003FFF
 BUS_INTERFACE MSOPB = d_opb_v20
 PORT OPB_Clk = sys_clk
 PORT OPB_Rst = sys_rst
 PORT PHY_col = ETH_COL
 PORT PHY_crs = ETH_CRS
 PORT PHY_Mii_clk = ETH_MDC
 PORT PHY_Mii_data = ETH_MDIO
 PORT PHY_rx_clk = ETH_RXC
 PORT PHY_rx_data = ETH_RXD
 PORT PHY_dv = ETH_RXDV
 PORT PHY_rx_er = ETH_RXER
 PORT PHY_tx_clk = ETH_TXC
 PORT PHY_tx_data = ETH_TXD
 PORT PHY_tx_en = ETH_TXEN
 PORT PHY_tx_er = ETH_TXER
 PORT PHY_rst_n = PHY_RESETn
 PORT Freeze = net_gnd
 PORT IP2INTC_Irpt = ethernet_interrupt
END


--------------080302030505090600010304--

Article: 72336
Subject: Re: let me have logic design for traffic light
From: Philip Freidin <philip@fliptronics.com>
Date: Sun, 15 Aug 2004 22:57:54 GMT
Links: << >>  << T >>  << A >>
On 15 Aug 2004 12:08:02 -0700, Eric Smith <eric-no-spam-for-me@brouhaha.com> wrote:
>byseid@yahoo.com writes:
>> I am not new for logic design but I need help for designing a
>> sequential Logic circuit analysis and design.
>> I want to design a traffic light controller for crossroad(of four
>> direction) the controller at each direction say A,B,C,D detects the
>> number of cars on each then the line having more cars will get the
>> priority... for more details please mail me <byseid@yahoo.com>.
>
>If I do your homework for you, will you please have your school award
>the degree in my name?

A still quite funny post from Bob Perlman on this subject from the archive:

   http://www.fpga-faq.com/archives/52250.html#52254



philip


Article: 72337
Subject: Re: Free Spartan3 download program for GNU/Linux
From: "Antti Lukats" <antti@case2000.com>
Date: Sun, 15 Aug 2004 17:16:16 -0700
Links: << >>  << T >>  << A >>
"Andrew Rogers" <andrew@_NO_SPAM_rogerstech.co.uk> wrote in message
news:411f6623_1@127.0.0.1...
> Sylvain Munaut wrote:
> In due course I'll be working on programming the PROM. At the moment I'm
> struggling to find a datasheet on the XCF02S PROM that gives the
> programming algorithm. Even without the datasheet I will not give up.
>
> Can anyone tell me where I can find the programming algorithm for the
> XCF02S PROM?

I think its not published!
but that doesnt mean it cant be programmed.
just generated SVF and look what is done there :)

Antti
http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&rd=1&item=3833881729



Article: 72338
Subject: Re: vhdl code : altera vs xilinx
From: "Shahab47" <sinamdar@mail.usf.edu>
Date: Sun, 15 Aug 2004 23:18:35 -0400
Links: << >>  << T >>  << A >>
hi everybody.

i was just wondering if it is possible for any combinational vhdl code to
utilize the same amount of logic cells while optimizing area and speed
both?also with the same max. propagation delay in both cases?

the code i tried to run on xilinx ISE webpack 6.2i is:

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;

entity testarith is
port ( 	Asigned : in signed ( 15 downto 0 );
		Bsigned : in signed ( 15 downto 0 );
		Cstd : in std_logic_vector ( 15 downto 0 );
		Dstd : in std_logic_vector ( 15 downto 0 );
		Qab : out signed ( 15 downto 0 );
		Mab : out signed ( 31 downto 0 );
		Qcd : out std_logic_vector ( 15 downto 0 );
		Mcd : out std_logic_vector ( 31 downto 0 ));
end testarith;

architecture behv of testarith is
begin
Qab <= Asigned + Bsigned;
Mab <= Asigned * Bsigned;
Qcd <= Cstd - Dstd;
Mcd <= Cstd * Dstd;
end behv;

i got the same results for speed optimization as well as area
optimization?

waiting anxiously for the reply.

Thank You

Shahabuddin 


Article: 72339
Subject: Re: Infiniband via RocketIOs (RocketIO, Rocket IO) on Virtex 2 (Virtex2, Virtex II, Virtex-II)
From: Allan Herriman <allan.herriman.hates.spam@ctam.com.au.invalid>
Date: Mon, 16 Aug 2004 13:26:55 +1000
Links: << >>  << T >>  << A >>
On 13 Aug 2004 06:09:36 -0700, brucewillis@freenet.de (Bruce) wrote:

[snip]
>Or is there any example
>implementation for the whole CRC calculation inside the FPGA fabric
>available? I wonder how one could ever reach the typical 2.5 Gbit/s
>Infiniband transmission rate when almost all functions must be handled
>inside the FPGA fabric?

Hmmm.  I worked on designs last century that performed CRCs on
10Gbit/s data streams.  FPGAs have improved since then, perhaps
doubling in speed.  2.5Gbit/s sounds rather easy, assuming you know
the tricks.

I tried to summarise the high speed CRC tricks in this post:
http://groups.google.com/groups?threadm=u4ll7v0d9naejd0clk064e6u5baud8sdo4%404ax.com

Regards,
Allan.

Article: 72340
Subject: Re: Free Spartan3 download program for GNU/Linux
From: "Steven K. Knapp" <steve.knappNO#SPAM@xilinx.com>
Date: Sun, 15 Aug 2004 21:33:46 -0700
Links: << >>  << T >>  << A >>
"Andrew Rogers" <andrew@_NO_SPAM_rogerstech.co.uk> wrote in message
news:411fb0f8$1_1@127.0.0.1...

[snip]
> >
> > In due course I'll be working on programming the PROM. At the moment I'm
> > struggling to find a datasheet on the XCF02S PROM that gives the
> > programming algorithm. Even without the datasheet I will not give up.
> >
> > Can anyone tell me where I can find the programming algorithm for the
> > XCF02S PROM?
> >
> > Thanks
> > Andrew
> >

[snip]

I'm not sure if the links contain the information that you're after, but it
may be a start.  The 18V00 family is not the same as Platform Flash, but the
general approach is similar.

Answer Record #10423
18V00 PROM's - Is the programming algorithm available?
http://support.xilinx.com/xlnx/xil_ans_display.jsp?getPagePath=10423

XAPP058:  Xilinx In-System Programming Using an Embedded Microcontroller
http://direct.xilinx.com/bvdocs/appnotes/xapp058.pdf

---------------------------------
Steven K. Knapp
Applications Manager, Xilinx Inc.
General Products Division
Spartan-3/II/IIE FPGAs
http://www.xilinx.com/spartan3
---------------------------------
Spartan-3:  Make it Your ASIC





Article: 72341
Subject: Re: Xilinx 804 Aurora vhdl Design patch
From: "Jeremie" <nospam@here.com>
Date: Mon, 16 Aug 2004 09:17:39 +0100
Links: << >>  << T >>  << A >>
Hi Nigel,

Thanks for the quick answer.
I have a webcase opened to try to get the latest vhdl design out of Coregen
and if I can get them no need for me to fix this old design. So far with
Coregen I could only generate and test the code for single lane design.
In the meantime I thought I should fix the old 4 lane design to prove the
4-lanes solution. So far it works with almost random data and I guess this
patch is all I'm missing.
I don't want to waste your time doing the conversion. A verilog patch will
be fine. If it is an easy fix I'll convert it to the vhdl if not I'll wait
for the webcase to help me to get the latest design.
If you have the file I'll be glad if you can forward it to me.
I'll send you an e-mail so that you get my address.

Thanks and Best Regards,

Jeremie.


"Nigel Gulstone" <nigel.gulstone@xilinx.com> wrote in message
news:411CF536.DD67C00D@xilinx.com...
> Hi Jeremie,
>
>       I'm sorry to say that the zip file you are looking for only contains
a
> Verilog version of the patch. It was originally produced by special
request
> for a customer who could not upgrade to one of our newer designs: they had
> made custom changes to the old module.
>
>        In general we recommend an upgrade to one of the modules from the
> Xilinx Core Generator tool - these are the smallest Aurora designs we
offer,
> and have the same interface as the old designs. I would be happy to create
a
> VHDL version of the patch for you. If you contact me directly or pass the
> message along via your FAE or hotline, I'll do my best to help you out.
>
>     In hindsight, we should have provided both languages in the zip file.
> We're working to fix the broken link on the server - when its up and
running
> again, we'll add the VHDL version of the patch to the zip file.
>
>     Cheers,
>     Nigel
>
>
> Jeremie Veyret wrote:
>
> > Hi,
> >
> > I'm using Xilinx 804 aurora vhdl design and I saw that on their web-site
> > that there was a patch for it (Record Number: 18554) but the file is not
> > available on their server anymore.
> > I asked them and they seem to have problem finding it back.
> > If any of you sees what I mean and has downloaded the patch called
> > aurora_804_sp_patch.zip
> > Could you let me know and I'll contact you directly (I'm not too fond of
> > spam).
> >
> > Best regards,
> >
> > Jeremie.
>



Article: 72342
Subject: Re: xilinx Synthesis report - please help..
From: jon@beniston.com (Jon Beniston)
Date: 16 Aug 2004 01:32:01 -0700
Links: << >>  << T >>  << A >>
Ken McElvain <ken@synplicity.com> wrote in message news:<411C3EF1.7060005@synplicity.com>...
> Identify will display enum types directly.  Everything
> is done in terms of the RTL source.  No guessing.

It's just a tad more expensive though, eh?

Cheers,
JonB

Article: 72343
Subject: NIOS II memory devices on tristate bridges
From: "David Brown" <david@no.westcontrol.spam.com>
Date: Mon, 16 Aug 2004 11:25:02 +0200
Links: << >>  << T >>  << A >>
I'm working with a NIOS II cpu on an Altera Stratix chip.  I'm finding it
easy enough to make simple Avalon slave devices, using the "interface to
user logic" wizard to connect my components to the bus.  But I can't find
any way to deal with memory devices that would logically connect to tristate
buses.  I have a couple of synchronous ram devices which should be simple
enough to use (I can access them using a test module I made outside the
NIOS).  Is there any simple way of connecting new devices to a tristate bus,
or any application notes that show how?

Thanks,

--
David

"I love deadlines.  I love the whooshing noise they make as they go past."
Douglas Adams



Article: 72344
Subject: Re: PCI express FPGA board
From: Goose <nospam@not_for_email.com>
Date: Mon, 16 Aug 2004 10:35:44 GMT
Links: << >>  << T >>  << A >>
>> Does anyone know if there exists an FPGA development board that has
>> a PCI express interface? I would also be nice if it had video i/o on
>> board I need to do real time quick image processing, and eventually
>> face detection algorithms...
>
> I haven't used either of these but they're the only ones I've come
> across so far: 
> 
> http://www.nallatech.com/solutions/products/kits/pci-express_design/
> http://www.nital.com/corporate/pciexbuilder-e254.html

PLDA makes a PCI express board that also has a PCI/PCI-X interface:

http://www.plda.com/pdt_boards_pciexp.htm


Article: 72345
Subject: Re: Using SDRAM on Xilinx AFX V2P board
From: ramntn@yahoo.com (ram)
Date: 16 Aug 2004 07:15:00 -0700
Links: << >>  << T >>  << A >>
The following is the snippet of C code to test SDRAM connected to OPB
from MEMEC design resources.

// Type casting 
	unsigned int* sdram_location = (unsigned int *) XPAR_SDRAM1_BASEADDR;
	int sdram_data_read, sdram_data_read_error;
        unsigned int* temp;

//Store values
       temp = sdram_location;
		for (loop_count = 0; loop_count < 4194304; loop_count++) {
			*sdram_location = loop_count;
				sdram_location++;
		}

//Retrieve values
	sdram_location = temp;
		for (loop_count = 0; loop_count < 4194304; loop_count++) {
			sdram_data_read = *sdram_location;

			if (sdram_data_read != loop_count) {
				printf_uart("   SDRAM Test Failed\n\r");
				loop_count = 4194305;
			}
			else {
				sdram_location++;
			}
		}

hope this helps
Ram


Michael Dales <mwd24@thompson.cl.cam.ac.uk> wrote in message news:<yqmwu03xobn.fsf@thompson.cl.cam.ac.uk>...
> Hi there,
> 
> We have a Xilinx AFX FF1152 Virtex-II Pro board with a xc2vp20 on
> it. I have tried to get a simple design up usign the SDRAM, but the
> memory check code inserted by EDK fails (the code lives in the PLB
> BRAM, and EDK kindly included a memory checker for the SDRAM).
> 
> On the FPGA I'm using one of the PPC cores, which is connected to
> some BRAM over the PLB, and to an SDRAM interface on the PLB
> (basically this is what the system builder wizard creates for
> you). EDK doesn't support out specific AFX board, so I've manually
> updated the pin assignment information in the UCF file to match that
> in the documentation. 
> 
> For clocking, I'm using a 100 MHz oscillator in the socket marked
> RAM/FPGA, which as I understand it will clock the SDRAM and provide me
> a clock on pin D18. This clock is then fed through a DCM and the
> output of CLK0 is used as the OPB bus clock and fed into the OPB-SDRAM
> interface core.
> 
> The RAM enable jumper is set to on.
> 
> When I try to test the memory it fails. If I write a bunch of data to
> the SDRAM and read it back I just get the last value I wrote.
> 
> Any suggestions as to what I might have missed?

Article: 72346
Subject: Re: Can PPC in V2P reconfig the FPGA slices?
From: Sean Durkin <smd@despammed.com>
Date: Mon, 16 Aug 2004 16:20:33 +0200
Links: << >>  << T >>  << A >>
Gerd wrote:

> Uh?
> It's not _that_ bad, isn't it?
Yes, it is. :)

> As for the tools being buggy, if your talking about modular design flow,
> then probably everybody agrees, but otherwise you shuold be fine. At least
> the ICAP is easier to handle than the SelectMAP (see my other post :( ).
The modular design flow isn't the only problem. If you have a dozen or 
so signals crossing a reconfigurable module and have to start using bus 
macros (and not just one or two), you get a different "FATAL_ERROR" 
every day...

> Regarding the placement of the MicroBlaze, it really takes up so much area
> that I wouldn't consider it _better_ than the PPC. In fact with the PPC,
> you only loose the couple columns associated with that PPC (and you can
> area-constrain the ppc-icap-interface to those same columns), which should
> be less than the number of columns required for a Microblaze in the smaller
> devices (up to 2vp20 I would guess).
<rantmode>
The problem is that when you use the PPC, you're pretty much fixed in 
where you can put what module. Plus there's the problem of board 
layout... in my case, I used the Virtex II-Pro Development Board from 
Memec, which has the SDRAM connected to the pins on "the left side" (if 
you look at the FPGA like Floorplanner and FPGA Editor do), whereas the 
PPC sits on the "right side". Now if you need to load a partial 
bitstream from SDRAM, you need to hook up the SDRAM on the left side to 
the PowerPC on the right side, so where do you put the reconfigurable 
module? Right, in between... which gives you the problem of crossing the 
reconfigurable module with 32 SDRAM data-signals, times 2 because it's 
bi-directional and the bus macros don't support bi-directional signals, 
plus the signals for the address bus, plus the byte-enables, and so on. 
In the end you have to cross the reconfigurable module with 80 or 90 
signals, most of which are time-critical, using bus macros... and you 
can't use the ones from xapp290, since you want to *CROSS* a module, not 
connect two adjacent ones... which means you have to draw the macros 
yourself with FPGA Editor... which means you're going to lose what 
little hair you have left on your head because the damn thing keeps 
crashing every 5 minutes... And if you hit the "save" button once too 
often, it leaves you with an nmc-file you can't read, because FPGA 
Editor will serve you another "FATAL_ERROR"... But FPGA Editor forgets 
some important attributes when saving bus macros, so now you have to use 
XDL to convert the macro to XDL, add the attribute and convert it back 
to NMC... but then you can't open the macro in FPGA Editor anymore, 
because it will remove the attribute, even if you don't hit the 
"save"-button...

But after you finally have managed to get bus macros that support what 
you want to do with them, the *REAL* fun begins... Now you get more 
"FATAL_ERRORS", because the tools can't place the macros the way you 
want them to... and if they finally do, they start routing nets into the 
reconfigurable module area, ignoring the constraints you set.. and after 
a while you find out that the only way to get that work is to not let 
the macros end at the module border, but instead move a few slices into 
the module. So now you have to fire up FPGA Editor again to draw new bus 
macros, this time a little wider, and the fun begins again...

The easiest solution in my case was to just forget about the PPC and use 
the MicroBlaze instead, and put it right next to the SDRAM => no more 
module crossing, problem solved...

If you don't have any or very little inter-module communication, there 
shouldn't be any problems, but you can hardly avoid that unless you 
design your board to suit this kind of application in the first place.
</rantmode>

Phew, that felt good... :)

> Anyway, if you have any specific problems with the ICAP, please ask :)
No, ICAP is not the problem... except for the fact that still noone can 
tell me why you can't clock it with the same frequency as SelectMAP, 
even though it's supposed to be nothing other than an internal 
connection to the same SelectMAP-interface...

But the *REAL* problem with all of this is that you can't do the 
*REALLY* fun stuff anyway, since a) all you can reconfigure are complete 
frames from top to bottom of the device and b) the architecture of the 
Virtex II-Pro bitstream has not been disclosed, so you don't know which 
bits to change to e.g. change filter coefficients or something like 
that... So what can you really do with it? Change RocketIO-parameters 
(but only because Xilinx has disclosed the necessary info for this one 
particular case) and reconfigure entire modules, but that's only fun if 
you don't have any communication between modules. So what's left? Sure, 
you could spent a few weeks or months revers engineering the bitstream 
format, and *THEN* it could be fun...

But I'd be interested to know what you guys (or anyone else) use partial 
reconfiguration for? From my point of view, it's a nice "gimmick", an 
interesting research subject, but there's no "real-life application" 
that justifies the extra effort...

cu,
Sean

Article: 72347
Subject: Re: Dual Microblaze System
From: ally_burnett@yahoo.co.uk (alastair)
Date: 16 Aug 2004 08:07:04 -0700
Links: << >>  << T >>  << A >>
Hi John,

Thanks for posting the system - a combination of this and going
through my system with a careful eye got things working in the end :)
The final stumbling block was to make sure the reset signals for the
local memory buses were of the correct polarity.

Thanks again,

Alastair.

Article: 72348
Subject: Re: Using SDRAM on Xilinx AFX V2P board
From: Michael Dales <mwd24@thompson.cl.cam.ac.uk>
Date: 16 Aug 2004 16:28:52 +0100
Links: << >>  << T >>  << A >>
ramntn@yahoo.com (ram) writes:

> The following is the snippet of C code to test SDRAM connected to OPB
> from MEMEC design resources.

Thanks for the reply, but what I was really after was advice relating
to the design I've implemented. I'd already implemented my own code to
verify that either the SDRAM was failing or my design wasn't using the
SDRAM connectly. What I'm trying to understand if *why* the SDRAM
isn't working, despite having done everything the documentation
suggests (to the best of my knowledge). 

The design practically left everything up to the base system builder,
and the only thing I did was correct the pin definitions in the UCF
board, and ensure that I was using the correct oscillator socket, and
that the DRAM enable pin was set corrently.

I'm told that SDRAM chips are very sensitive to the clock they're
given, and that if it says it is to be clocked at a specific frequency
it really means that. I failed to find appropriate documentation for
the SDRAM chip on the AFX board we have - the URL in the board
documentation is no longer valid, and searching the web site the for
the makings on the chip (1QE42 ZVCGC) didn't turn up anything either.

> 
> // Type casting 
> 	unsigned int* sdram_location = (unsigned int *) XPAR_SDRAM1_BASEADDR;
> 	int sdram_data_read, sdram_data_read_error;
>         unsigned int* temp;
> 
> //Store values
>        temp = sdram_location;
> 		for (loop_count = 0; loop_count < 4194304; loop_count++) {
> 			*sdram_location = loop_count;
> 				sdram_location++;
> 		}
> 
> //Retrieve values
> 	sdram_location = temp;
> 		for (loop_count = 0; loop_count < 4194304; loop_count++) {
> 			sdram_data_read = *sdram_location;
> 
> 			if (sdram_data_read != loop_count) {
> 				printf_uart("   SDRAM Test Failed\n\r");
> 				loop_count = 4194305;

Whoever wrote this code needs to be introduced to the C keyword
"break" :)

> 			}
> 			else {
> 				sdram_location++;
> 			}
> 		}
> 
> hope this helps
> Ram

Cheers,

-- 
Michael Dales
University of Cambridge Computer Laboratory
http://www.cl.cam.ac.uk/~mwd24/

Article: 72349
Subject: Re: Can PPC in V2P reconfig the FPGA slices?
From: gerd?NO?SPAM@rzaix530.rz.uni-leipzig.de (Gerd)
Date: 16 Aug 2004 15:48:37 GMT
Links: << >>  << T >>  << A >>
Hi Sean,

Sean Durkin <smd@despammed.com> wrote:
> > It's not _that_ bad, isn't it?
> Yes, it is. :)

Naa ;-)

> The modular design flow isn't the only problem. If you have a dozen or 
> so signals crossing a reconfigurable module and have to start using bus 
> macros (and not just one or two), you get a different "FATAL_ERROR" 
> every day...

Now I know where your problem lies.. however, that problem has been solved :)

First, don't use bus macros unless really necessary. For what you
describe here, directed routing combined with a few placement constraints
is probably an easier and more reliable solution than bus macros.

And I bet in many cases you don't even have to bother with directed
routing.

> <rantmode>
[...]
> layout... in my case, I used the Virtex II-Pro Development Board from 
> Memec, which has the SDRAM connected to the pins on "the left side" (if 

It's the same for the ML300 and most other V2Pro boards I have seen,
unfortunately.

> the PowerPC on the right side, so where do you put the reconfigurable 
> module? Right, in between... which gives you the problem of crossing the 

Depends on the size of your module. You could put it on the right hand
side of the PPC - on a 2vp7, you can get about 1000..1200 slices there
(with space left for cross-routing - read on).

If you put it in the middle, you obviously have pretty much as many
slices as you want, within the limits of the chosen device of cause.
Now, there is a very simple trick to getting around of having to
build all those bus macros: divide the reconfigurable frames into
parts for your module, and parts reserved for cross-routing. Now
area-constrain the logic which requires cross-routing in such a way
that the routes only go through the designated area (unfortunately
you can't area-constrain the routing.. the whole constraints business
has lot's of room for improvement). So to stick to your example with
the SDRAMs and assuming you are using an plb-sdram-controller,
constrain the sdram-controller to the left, the plb-part of the
controller to the lower left, the plb bus core to the lower right,
and your cross-routing will go only through the lower part of your
device. Your module obviously goes to the upper middle section.

Continue along this line of thought for a bit and you should come
to a feasible solution for modules, including cross-routing (actually,
from this point on there are at least two possible paths, one with
static bitfiles and one with a more dynamic approach to reconfiguration;
both have been implemented successfully).

> The easiest solution in my case was to just forget about the PPC and use 
> the MicroBlaze instead, and put it right next to the SDRAM => no more 
> module crossing, problem solved...

Fair enough. But unless you specially design a board for reconfigurable
applications, you'll most likely always end up having cross-routing in
one way or another.

> > Anyway, if you have any specific problems with the ICAP, please ask :)
> No, ICAP is not the problem... except for the fact that still noone can 
> tell me why you can't clock it with the same frequency as SelectMAP, 
> even though it's supposed to be nothing other than an internal 
> connection to the same SelectMAP-interface...

Well, who says you can't? Just watch the BUSY signal.

> But the *REAL* problem with all of this is that you can't do the 
> *REALLY* fun stuff anyway, since a) all you can reconfigure are complete 
> frames from top to bottom of the device and b) the architecture of the 

Well, yes and no. I have multiple modules on top of each other working,
'on top' like SLICE_XiY8:SLICE_XjY31 and SLICE_XiY40:SLICE_XjY71 for
example. They can be reconfigured without interference - as long as
you don't have SRL16s and LUT-RAMs in the columns, of cause.

> Virtex II-Pro bitstream has not been disclosed, so you don't know which 
> bits to change to e.g. change filter coefficients or something like 
> that... So what can you really do with it? Change RocketIO-parameters 

That's not exactly true, either. Of cause one has to look a bit harder
for this information, but it is actually contained to some degree in
the EDK6.2 icap drivers, and there is quite some information strewn
across various appnotes and answer records as well. No single source
covers it all, though - agreed.

> (but only because Xilinx has disclosed the necessary info for this one 
> particular case) and reconfigure entire modules, but that's only fun if 
> you don't have any communication between modules. So what's left? Sure, 
> you could spent a few weeks or months revers engineering the bitstream 
> format, and *THEN* it could be fun...

It should be faster than that, with a bit of XDL hacking :)

> But I'd be interested to know what you guys (or anyone else) use partial 
> reconfiguration for? From my point of view, it's a nice "gimmick", an 
> interesting research subject, but there's no "real-life application" 
> that justifies the extra effort...

Real life as in space applications - check out Carl Carmichaels papers
about irradiation testing, there is a note about in-situ repair using
partial reconfiguration (although to be really useful here requires a
bit harsher environments than simple space).

Reconfigurable modules are a practical application - the hardest part
IMHO is the communcation between the reconfigurable module and the rest
of the logic (say, the PPC), because that actually _does_ require bus
macros.

Some people supposedly use genetic algorithms to program FPGAs and
using partial reconfiguration can signifcantly speed up this process
(and the evaluation of the results).

There are also several useful applications which 'only' require the
reconfiguration of routing, though I guess I shouldn't go into any
details about these.


regards,
 Gerd

Credit where credit is due: the genetic thing is from a chat I had
on FPGA conference this year, although I don't remember the name of
the person whom I talked with; also to Tobias Becker who proved the
'static approach' mentioned above by just doing it :).

Oh and if you happen to be on FPL in two weeks, maybe there will be
a presentation of a simple case of the 'on top' modules. It could be
arranged, anyway.




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