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 135775

Article: 135775
Subject: Re: Virtex 5, DDR2 access
From: niklas_molin@hotmail.com
Date: Wed, 15 Oct 2008 08:13:21 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Oct 14, 11:55=A0pm, PatC <p...@REMOVETHISpatocarr.com> wrote:
> niklas_mo...@hotmail.com wrote:
> > Hi.
>
> > I have a design with a Virtex 5 and a DDR2 memory.
> > It seems like there is some problem when I read from the DDR2 memory
> > and I was hoping that someone here might recognize the problem.
>
> > Here is what happens.
> > My base address for the memory is 0x88000000
>
> > I write following bytes (byte write) 0x11 to 0x88000000, 0x22 to
> > 0x88000001, 0x33 to 0x88000002, 0x44 to 0x88000003.
>
> > When I read from the memory it will look like (32 bits format):
> > 0x88000000 =A0 =A0 =A0 =A011000000
> > 0x88000004 =A0 =A0 =A0 =A000000000
> > 0x88000008 =A0 =A0 =A0 =A000000000
> > 0x8800000C =A0 =A0 =A0 =A000000000
> > 0x88000010 =A0 =A0 =A0 =A000223344
>
> > But sometimes it seems to work and then I try to reload the bit-file
> > and then I get the same problem again.
> > What I notice is that when it works I write i.e 0x11223344 and will
> > read back
> > 0x88000000 =A0 =A0 =A0 =A011223344
> > 0x88000004 =A0 =A0 =A0 =A000000000
> > 0x88000008 =A0 =A0 =A0 =A000000000
> > 0x8800000C =A0 =A0 =A0 =A000000000
> > 0x88000010 =A0 =A0 =A0 =A000000000
>
> > If I reload the bit-file I will read back:
> > 0x88000000 =A0 =A0 =A0 =A011000000
> > 0x88000004 =A0 =A0 =A0 =A000000000
> > 0x88000008 =A0 =A0 =A0 =A000000000
> > 0x8800000C =A0 =A0 =A0 =A000000000
> > 0x88000010 =A0 =A0 =A0 =A000223344
>
> > So my conclusion is that the write part always seems to work, but it
> > the read part that doesn't work.
> > Could the be a problem with the IDELAYCTRL that is not calibrated?
>
> > Thanks,
> > Niklas
>
> Hi Niklas,
>
> =A0 =A0Your question is quite broad and lacks details.
>
> - Which controller are you using? MIG-generated, your own, etc.
>
> - What SDRAM type is it? 4-burst length?
>
> - When you say base address, are you using an embedded processor?
>
> - Does it work in simulation? *g*
>
> Cheers,
> -Pat

Hi Pat.

Yes, I'm using a Microblaze (EDK) and the controller is MPMC 3.0 and
the also used the MIG-generator.
The burst length is 8 and the memory type is Micron MT4HTF1664A.

Have tried on a Xilinx Lab board and there it works (the difference is
the that they use a smaller FPGA on that board).

Thanks,
Niklas

Article: 135776
Subject: Re: $99 XMOS Dev kit
From: James Harris <james.harris.1@googlemail.com>
Date: Wed, 15 Oct 2008 09:32:37 -0700 (PDT)
Links: << >>  << T >>  << A >>
On 15 Oct, 12:06, Leon <leon...@btinternet.com> wrote:
> On 14 Oct, 22:26, James Harris <james.harri...@googlemail.com> wrote:
...
> > Did you get any confirmation of booking? I too have booked for one of
> > the London seminars but have nothing in writing to confirm that a
> > place has been allocated.
>
> No, I didn't either. I had a problem with their payment system and
> managed to make two bookings. I phoned them and they confirmed that
> they'd received them and cancelled one of them for me.
>
> You could try phoning them if you aren't sure.

OK, thanks. I have a place verbal confirmed.

--
James

Article: 135777
Subject: Re: free cpu 8051 verilog code
From: Jim Granville <no.spam@designtools.maps.co.nz>
Date: Thu, 16 Oct 2008 08:08:15 +1300
Links: << >>  << T >>  << A >>
Cross posted to comp.arch.fpga, as this is an intersting resource.

Pinhas wrote:

> http://bknpk.no-ip.biz/cpu_8051_ver/top.html
> 
> #
> 
> Stable Design: The design is translated from a VHDL dalton project
> http://www.cs.ucr.edu/~dalton/i8051/i8051syn.
> #
> 
> Small Design: Consumes only 324 Flip-Flops: map report

More map report details, from the link :
Target Device : xc4vlx25
Number of Slice Flip Flops: 324 out of 21,504 1%
Total Number 4 input LUTs: 2,423 out of 21,504 11%

> #
> 
> Fast Design: 50MHz for a xc4vlx25-10 XILINX device: timing report

-jg


Article: 135778
Subject: Re: XMOS XC-1 kits are shipping
From: Anton Erasmus <nobody@spam.prevent.net>
Date: Wed, 15 Oct 2008 21:28:48 +0200
Links: << >>  << T >>  << A >>
On Tue, 14 Oct 2008 15:32:45 +0100, Paul Carpenter
<paul@pcserviceselectronics.co.uk> wrote:

>In article 
>  <3d4b6f41-b742-405d-87bd-47e2fb75ac1d@8g2000hse.googlegroups.com>, 
>leon355@btinternet.com says...
>> On 13 Oct, 20:42, Eric Smith <e...@brouhaha.com> wrote:
>> > Bob wrote about XMOS:
>> >
>> > > They seem far too fixated on doing everything in software, things like
>> > > ethernet where there is no point shoveling bytes in software if
>> > > hardware can take care of it.
>> > Leon wrote:
>> > > They are supplying free libraries for all the usual peripheral
>> > > functions. Doing stuff like that in software is much cheaper than
>> > > using hardware, and easier in many ways.
>> >
>> > Been there, done that, and it's not cheaper or easier when you
>> > consider the overall system cost impact, not just the "benefit" of
>> > leaving out the hardware block.  That was the path Scenix/Ubicom went
>> > down, calling it "virtual peripherals", and it was not very
>> > successful.  Ubicom has since added hardware for Ethernet, USB,
>> > etc. to their most recent parts.  The reality is that a hardware
>> > Ethernet MAC costs less than the total system cost impact of the
>> > software alternative.
>> >
>> > Eric
>> 
>> Not if you have four 400 MIPS cores on the chip, each with 64 bits of
>> I/O, 64k of RAM, with 3.2 Gbit/s comms links between cores and 32
>> threads per core, with switching between threads in one clock. If the
>> software is free, it is a very cost-effective solution, especially as
>> the chips will be very cheap.
>
>The PC market solution to determinisity -
>
>	"If in doubt put bigger processor(s) and 
>	 lots more memory to solve the 'problem'"
>
>Having seen how easily screwed even software UARTs can get, and
>when something goes wrong all other activity is screwed.
>
>The PC example is dodgy CD inserted, nothing else can work until
>the upto 30 seconds of lockout. Lots of other examples exist.
>
>This sort of software emulation of hardware ONLY is useful for
>cheap and nasty commodity products that assume that unusability
>is always solved by a reset (for some products that means host PC
>AS WELL!).
>
>This means for the VAST majority of *my* applications it is useless.

I fully agree with this. Software is flexible and easier to correct
than hardware. Unfortunantely this has lead to the current thinking
that we can ship the product with known issues, since "We can always
fix it later". In most cases these fixes never happen. I would prefer
more peripherals in hardware, not less. TCP/IP stack in hardware, USB
stack in hardware etc. Something like IEEE-1394 is much more reliable
than USB, since all the enumeration etc is handled by the hardware. 
With the right hardware support, which can be a few gates, software
can often be made much simpler, more robust and faster. A simple thing
like an atomic increment or decrement can be quite complex to
implement in software. In hardware it is trivial. In my experience
from porting code written for old hardware, to new hardware.
Calculation tasks are much faster on modern hardware. Moving data
around between buffers, and peripherals is only a little bit faster if
at all. Simple things like hardware that provides the amount of space
available in a FIFO in a register in stead of just a FIFO has space
flag, can easily make the moving of data easily 5x faster. 

Regards
  Anton Erasmus


Article: 135779
Subject: Re: sensitive fpga
From: Jim Granville <no.spam@designtools.maps.co.nz>
Date: Thu, 16 Oct 2008 09:18:52 +1300
Links: << >>  << T >>  << A >>
uraniumore238@gmail.com wrote:
> Hi Guys!
> 
> Thanks for the help. So, I can insure myself that the FPGA is counting
> as long as the FPGA is always driven by some input square wave and not
> floting to some external squivering ? 

You can see the effect visually if you hold onto a scope probe tip

For reliable counting, the FPGA should have a fast-edge signal, 
sufficently large.
If this is a generic IP, then an external schmitt would be a good
idea

> How would I verify that it is
> actually counting (despite the fact that the count value got to the
> max) ? Any ideas ?

Not clear what you are asking ?
If you are looking for a signal presence detector, that is often
a monostable and a led.
Or, if you know the appx expected frequency range, you can feed
an appropriate counter bit to an LED


Article: 135780
Subject: Re: PLL in Altera PCI core ?
From: Chris Finan <underdog7a@gmail.com>
Date: Wed, 15 Oct 2008 13:29:52 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Oct 15, 7:51=A0am, "ALu...@web.de" <ALu...@web.de> wrote:
> Hi newsgroup,
>
> can somebody tell me whether Altera uses a PLL to adjust the setup/
> hold timing
> of their 32bit PCI master/target core ?
> I am curious about it because other FPGA vendors do that. Doing so it
> not always easy to find the correct phase of the PLL.
>
> Thank you for your opinion.
>
> Rgds
> AluPin

The Altera PCI core doesn't use a PLL. Since the PCI spec requires
operation at clock rates from DC to 33 or 66 MHz, putting a PLL in
there would most likely violate the spec.

Article: 135781
Subject: Re: Complex Event Processing on FPGA
From: Equinox <sohamdas@gmail.com>
Date: Wed, 15 Oct 2008 13:55:02 -0700 (PDT)
Links: << >>  << T >>  << A >>
Thanks

But I have already checked it and seen it . It has as such nothing to
do with CEP specifically. It is a C-HDL compiler which is used to
automatically accelerate part of the computational demanding codes for
FPGA.
The financial feed handling part is in its increased flexibility to
tweak and process and analyse the feed datas.

If anybody can share some light on this discussion is most welcome.

I will be grateful for any advices, hints and suggestions .


Soham

Article: 135782
Subject: Simulation
From: Jan <webpjat@future-designSLET.dk>
Date: Thu, 16 Oct 2008 00:59:10 +0200
Links: << >>  << T >>  << A >>
Dear all,

I'm a newbie to FPGA's but have been playing with a demo board for the 
last couple of days. It's great fun, but I have some problems getting 
started with simulation.

I use the free WebPack 10.1 from Xilinx and my target is a Spartan3.

I have written a SPI transmitter in VHDL and tested successfully on my 
demo board. However, I want to learn how to do the simulation. The 
documentation seems a bit contradicting. All the tutorials describes how 
to use the waveform editor, but when I start that I says that it's not 
supported anymore and that I should use HDL based simulation.

I then went to the menu project->new source->VHDL test bench.
It then created a template for one of my modules. Now comes the big 
question... Where the heck do I then begin the simulation. I see no 
buttons or anything that indicates where to begin.

Am I completely stupid or is there more to it?

Thanks in advance!

Regards
   Jan

Article: 135783
Subject: Re: free cpu 8051 verilog code
From: Nils <n.pipenbrinck@cubic.org>
Date: Thu, 16 Oct 2008 01:39:22 +0200
Links: << >>  << T >>  << A >>
Jim Granville wrote:
>>
>> Fast Design: 50MHz for a xc4vlx25-10 XILINX device: timing report
> 

I don't want to nitpick. It looks like a nice and (maybe more important) 
little project.

But on the web site I see the following performance figures:

I8051_ALU:

   Critical Path Length (ns): 178
   Maximum Clock Speed (MHz): 5.63
	
I have to admit that I'm a FPGA noob, but I think that part deserves 
some optimization.

Nils

Article: 135784
Subject: Re: Simulation
From: Brian Drummond <brian_drummond@btconnect.com>
Date: Thu, 16 Oct 2008 00:48:48 +0100
Links: << >>  << T >>  << A >>
On Thu, 16 Oct 2008 00:59:10 +0200, Jan <webpjat@future-designSLET.dk>
wrote:

>Dear all,

>I then went to the menu project->new source->VHDL test bench.
>It then created a template for one of my modules. 

So far so good...

>Now comes the big 
>question... Where the heck do I then begin the simulation. I see no 
>buttons or anything that indicates where to begin.
>
>Am I completely stupid or is there more to it?

There is more to it... the template doesn't actually define any tests;
or even such basics as a clock signal.

Within the architecture section of the template, you have to write VHDL
code in the form of processes to set input signals to your module (such
as clock, reset, as well as any data inputs.

Then you can compile this, then run simulations and observe waveforms on
its outputs.

But best practice is also to read the outputs in the testbench, and
compare those outputs with expected values, and report on any
differences using Assert statements. Then the testbench is effectively
self-checking, and you only need to inspect waveforms if something went
wrong...

The example projects ought to illustrate this - or google VHDL
Testbench.

- Brian

Article: 135785
Subject: Re: Simulation
From: Mike Treseler <mtreseler@gmail.com>
Date: Wed, 15 Oct 2008 16:55:48 -0700
Links: << >>  << T >>  << A >>
Jan wrote:


> I use the free WebPack 10.1 from Xilinx and my target is a Spartan3.

You will need one the non-free oem modelsim software to do simulation:
http://www.xilinx.com/ise/optional_prod/mxe.htm

> All the tutorials describes how
> to use the waveform editor, but when I start that I says that it's not
> supported anymore and that I should use HDL based simulation.

That's good advice.
The waveform simulator was just a toy anyway.
Modelsim is a separate program
and has its own tutorials.

> I then went to the menu project->new source->VHDL test bench.
> It then created a template for one of my modules.

That template just hooks up the instance.
You have to write vhdl code to wiggle the inputs
and watch the outputs.

       -- Mike Treseler

Article: 135786
Subject: Re: free cpu 8051 verilog code
From: "Symon" <symon_brewer@hotmail.com>
Date: Thu, 16 Oct 2008 01:27:09 +0100
Links: << >>  << T >>  << A >>

"Nils" <n.pipenbrinck@cubic.org> wrote in message 
news:6lnd94Fda23nU1@mid.uni-berlin.de...
> Jim Granville wrote:
>>>
>>> Fast Design: 50MHz for a xc4vlx25-10 XILINX device: timing report
>>
>
> I don't want to nitpick. It looks like a nice and (maybe more important) 
> little project.
>
> But on the web site I see the following performance figures:
>
> I8051_ALU:
>
>   Critical Path Length (ns): 178
>   Maximum Clock Speed (MHz): 5.63
>
> I have to admit that I'm a FPGA noob, but I think that part deserves some 
> optimization.
>
> Nils

Without reading TFA, I agree, I laughed where it says it's a small design 
because it only uses 324 FFs, and yet it uses 10 times as many LUTs!

Cheers, Syms.



Article: 135787
Subject: Re: Simulation
From: "Pete Fraser" <pfraser@covad.net>
Date: Wed, 15 Oct 2008 17:34:51 -0700
Links: << >>  << T >>  << A >>
"Mike Treseler" <mtreseler@gmail.com> wrote in message 
news:48F68304.3000606@gmail.com...

> You will need one the non-free oem modelsim software to do simulation:
> http://www.xilinx.com/ise/optional_prod/mxe.htm

There is a free version of ModelSim XE available.
It's a bit limited, but fine for small projects. 



Article: 135788
Subject: Distributed Dual-Port RAM
From: Jan <webpjat@future-design_DELETE.dk>
Date: Thu, 16 Oct 2008 04:01:13 +0200
Links: << >>  << T >>  << A >>
Dear all,

I'm trying to understand the RAM generated from the Xilinx (ISE 10.1) 
Core IP generator.
I have generated a Distributed Dual-Port RAM and it has more ports than 
I expected.

There is A and D port which I think is for read and writes.
Then there is a SPO, DPO and DPRA which I'm not sure what does.
I guess that the DPRA is address input (B side). But that is SPO and DPO 
then? Is both data output from the (B Side)?

Thanks in advance!

Regards
   Jan

Article: 135789
Subject: Re: Distributed Dual-Port RAM
From: Jan <webpjat@future-design_DELETE.dk>
Date: Thu, 16 Oct 2008 04:04:13 +0200
Links: << >>  << T >>  << A >>
Jan wrote:
> Dear all,
> 
> I'm trying to understand the RAM generated from the Xilinx (ISE 10.1) 
> Core IP generator.
There are several parameters called "Non Registered" and "Registered". 
What does this mean?

Thanks in advance!

Regards
   Jan

Article: 135790
Subject: A couple of CPLD design challenges for the group
From: Andreas Ehliar <ehliar-nospam@isy.liu.se>
Date: Thu, 16 Oct 2008 04:05:06 +0000 (UTC)
Links: << >>  << T >>  << A >>
The purpose of this post is to try to get a discussion going
on various design tricks for severely limited devices like CPLDs.
On that note I'll pose the following challenges to the group:



Challenge 1 - Tetris in as few CPLDs as possible
------------------------------------------------

How would you design a Tetris game if you only had CPLDs
available? How many CPLDs would you use and of what kind?

Would you need any other kind of circuits to implement an
efficient solution? (External SRAMs or EPROMs for example?)

What kind of display would you use? (TV, Oscilloscope, Led matrix, etc?)
What kind of input device would you use? (Plain buttons or perhaps a
more advanced input device like a NES joypad?)


I believe that this is a rather nice problem with many
interesting optimization possibilities.


Personally I have an almost finished solution based on the XC95 series.
However, I will not tell you how many I need or the exact model number(s)
that I'm using right now. I do have a rather nice architecture which I
believe will be hard to improve on. I'll let you ponder this for a week
or so before I post my idea for a solution.




Challenge 2 - A digital watch with as few CPLDs as possible
-----------------------------------------------------------

This is an easier problem which should require fewer or smaller CPLDs
than the previous challenge.

Requirements:
* Time should be showed in HH:MM:SS format (preferably 24h format)
* It should be possible to set an alarm (HH:MM precision is good enough)
* Stop watch functionality in MM:SS:T   (That is, up to 59 minutes, 59
  seconds and 9 tenths of a second.)
* There should be a user interface of some kind (it should be possible to
  change the time that is)
* The time, alarm, and stop watch functionality shall work independently.
  (You don't want your watch to stop working just because you are setting
  your alarm or using the stop watch.)


What kind of display would you use here? (7 segment LEDs? LCD?, etc?)
What kind of input? (Plain buttons or something different?)
What clock frequency do you need?

This is a rather nice problem which will allow you to think about the
best way to do resource sharing in a CPLD.

As a baseline, the students I have supervised who do this kind of project
end up with about 3 or 4 CPLDs. (Either XC9572 or XC95108.) They usually
don't bother with any kind of resource sharing though...


Personally, I have a relatively small solution to this, but there are still
a few tricks I haven't used. In my solution I'm using a 7 segment LED driver
circuit with built in NBCD decoder (the 9368), so if you want to compare
your solution to mine you might want to output NBCD coded numbers out of your
CPLD.

I'll let you ponder this problem for a few days or so as well before
doing a small writeup on my solution.


/Andreas

Article: 135791
Subject: Re: A couple of CPLD design challenges for the group
From: Andreas Ehliar <ehliar-nospam@isy.liu.se>
Date: Thu, 16 Oct 2008 05:16:26 +0000 (UTC)
Links: << >>  << T >>  << A >>
On 2008-10-16, Herbert Kleebauer <klee@unibwm.de> wrote:
> Andreas Ehliar wrote:
>> 
>> The purpose of this post is to try to get a discussion going
>> on various design tricks for severely limited devices like CPLDs.
>> On that note I'll pose the following challenges to the group:
>> 
>> Challenge 1 - Tetris in as few CPLDs as possible
>  
>> Challenge 2 - A digital watch with as few CPLDs as possible
>
> Put a simple soft core CPU in a xc95 and add some ROM/RAM, then
> a single CPLD should be enough.

That is probably the easiest solution. A colleague and I have
investigated this approach a little bit to try to figure out the
optimal architecture. The goal would be to have both sound output
and tile based graphics in this case. We were aiming for a XC9572,
but we gave up on it since programming would be extremely cumbersome
as both audio and video would require cycle accurate code.

Some of the tricks we learned while doing this was to move around
our address register and the program counter so that one of them
always addressed the memory.

At first we considered the following architecture:

       +---+
PC --->|   |
       |MUX|---> Address to memory
AR --->|   |
       +---+

However, if we do it like this instead:

 +-------------------------------+
 |                               |
 |  +--+                 +--+    |
 |  |PC|    +-------+    |AR|    |
 +->|  |--->| Adder |--->|  |----+---> Address to memory
    |> |    +-------+    |> |
    +--+                 +--+

The adder adds either 1 or 0. If we always exchange PC and
AR two times during the execution of one instruction we will
both be able to address memory through the address register and
fetch the instruction. We will also get the operation AR++ for
free. But most importantly: As we no longer have the mux, we save
these macrocells for other uses. This is quite important since the 9572
only has 72 macrocells...


However, what about if you would like to avoid an SRAM and EPROM,
what kind of techniques would you use in that case?

/Andreas

Article: 135792
Subject: Re: A couple of CPLD design challenges for the group
From: Andreas Ehliar <ehliar-nospam@isy.liu.se>
Date: Thu, 16 Oct 2008 05:19:47 +0000 (UTC)
Links: << >>  << T >>  << A >>
On 2008-10-16, Frank Buss <fb@frank-buss.de> wrote:
> Andreas Ehliar wrote:
>
>> How would you design a Tetris game if you only had CPLDs
>> available? How many CPLDs would you use and of what kind?
>
> The question doesn't make sense. I would use a EPM2210/G with 2,210 LEs and
> could install Nios on it, so all I need is one CPLD.

My intention was to challenge the group to use as few CPLDs
and as small CPLDs as possible.

Although I admit that you will be probably be finished with
your solution before I'm even finished with trying to figure
out the architecture of my solution :)

/Andreas

Article: 135793
Subject: Re: Distributed Dual-Port RAM
From: John_H <newsgroup@johnhandwork.com>
Date: Wed, 15 Oct 2008 22:24:22 -0700
Links: << >>  << T >>  << A >>
Jan wrote:
> Dear all,
> 
> I'm trying to understand the RAM generated from the Xilinx (ISE 10.1) 
> Core IP generator.
> I have generated a Distributed Dual-Port RAM and it has more ports than 
> I expected.
> 
> There is A and D port which I think is for read and writes.
> Then there is a SPO, DPO and DPRA which I'm not sure what does.
> I guess that the DPRA is address input (B side). But that is SPO and DPO 
> then? Is both data output from the (B Side)?
> 
> Thanks in advance!
> 
> Regards
>   Jan

There are two coupled LUTs for each dual-port distributed memory.  The 
normal address (A input) is used for the write (D input) along with the 
control (WE).  The Single Port Output (SPO output) is the same as you'd 
have with distributed single port memories where the write address also 
controls the single port read so you can perform a read-modify-write 
with an async read to the clock edge where the data is taken in.  The 
other LUT has a separate Dual Port Read Address (DPRA input) which gives 
you an async read on the Dual Port Output port (DPO output).

The LUTs are normally only registered in the sense that a write moves 
the data into the memory array and can then be accessed asynchronously. 
  The option in the Core IP Generator is probably to add the registers 
that are directly adjacent to the SPO and DPO LUT outputs within the 
slice to be used allowing a very fast clock-to-output time without 
waiting for the address propagation for the async lookup.  The 
registered operation is another clock of pipeline and should be treated 
conceptually just like adding the registers manually yourself.

The distributed memories and the shift register mode in these Xilinx 
devices are very important features of the FPGA in my opinion.  While 
one can design without these memories, the resource savings where they 
are used can be pretty intense.

- John_H

Article: 135794
Subject: Re: Simulation
From: backhus <nix@nirgends.xyz>
Date: Thu, 16 Oct 2008 07:53:16 +0200
Links: << >>  << T >>  << A >>
Hi Jan,

> I then went to the menu project->new source->VHDL test bench.
> It then created a template for one of my modules. Now comes the big 
> question... Where the heck do I then begin the simulation. I see no 
> buttons or anything that indicates where to begin.

On top of  the Project(Sources) window inside the ISE Project Navigator 
is a small Selection Box that reads:
  Sources for: "Implementation"
by default.
If you click on the right triangle the available options drop down. One 
of them is "Behavioral Simulation". Use that one to see and edit your 
Testbench(template) and also you will recognize that the processes 
window changes and gives access to the installed simulator tools (either 
  ISE simulator or Modelsim Starter)

Have a nice simulation
   Eilert

Article: 135795
Subject: Re: free cpu 8051 verilog code
From: "Meindert Sprang" <ms@NOJUNKcustomORSPAMware.nl>
Date: Thu, 16 Oct 2008 08:27:29 +0200
Links: << >>  << T >>  << A >>
"Nils" <n.pipenbrinck@cubic.org> wrote in message
news:6lnd94Fda23nU1@mid.uni-berlin.de...
> Jim Granville wrote:
> >>
> >> Fast Design: 50MHz for a xc4vlx25-10 XILINX device: timing report
> >
>
> I don't want to nitpick. It looks like a nice and (maybe more important)
> little project.
>
> But on the web site I see the following performance figures:
>
> I8051_ALU:
>
>    Critical Path Length (ns): 178
>    Maximum Clock Speed (MHz): 5.63
>
> I have to admit that I'm a FPGA noob, but I think that part deserves
> some optimization.

And some work too....

Quote:
Limitations:
  This implementation is not cycle/timing compatible.
  Interrupt handling is not currently implemented.
  Peripheral devices are not currently implemented.

Meindert



Article: 135796
Subject: Re: free cpu 8051 verilog code
From: Pinhas <bknpk@hotmail.com>
Date: Wed, 15 Oct 2008 23:40:14 -0700 (PDT)
Links: << >>  << T >>  << A >>
On 16 =D7=90=D7=95=D7=A7=D7=98=D7=95=D7=91=D7=A8, 08:27, "Meindert Sprang"
<m...@NOJUNKcustomORSPAMware.nl> wrote:
> "Nils" <n.pipenbri...@cubic.org> wrote in message
>
> news:6lnd94Fda23nU1@mid.uni-berlin.de...
>
>
>
> > Jim Granville wrote:
>
> > >> Fast Design: 50MHz for a xc4vlx25-10 XILINX device: timing report
>
> > I don't want to nitpick. It looks like a nice and (maybe more important=
)
> > little project.
>
> > But on the web site I see the following performance figures:
>
> > I8051_ALU:
>
> > =C2=A0 =C2=A0Critical Path Length (ns): 178
> > =C2=A0 =C2=A0Maximum Clock Speed (MHz): 5.63
>
> > I have to admit that I'm a FPGA noob, but I think that part deserves
> > some optimization.
>
> And some work too....
>
> Quote:
> Limitations:
> =C2=A0 This implementation is not cycle/timing compatible.
> =C2=A0 Interrupt handling is not currently implemented.
> =C2=A0 Peripheral devices are not currently implemented.
>
> Meindert

As far as I remeber this is a multicycle path. But I'll double check.

Article: 135797
Subject: Re: DDR2 timing questions
From: praveen@tarayinc.com
Date: Thu, 16 Oct 2008 00:03:45 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Oct 15, 8:04=A0pm, Barry <barry...@gmail.com> wrote:
> On Oct 15, 2:30=A0am, chrisde...@gmail.com wrote:
>
>
>
> > Hi,
>
> > can someone who has used Xilinx's MIG DDR2 controller help?
>
> > I am trying to simulate the DDR2 controller with memory
> > MT4HTF3264HY-53ED3 memory model generated by MIG 2.0 (Xilinx ISE 10.1
> > SP3). I had set the burst length to 8. I need to have good knowledge
> > of the timing of the controller as I need to optimize its usage for an
> > embedded system.
>
> > In the RTL simulation, I write to DDR2 RAM model at 133 MHz clock
> > frequency from memory locations 0x0 to 0x400 in 1 burst via the
> > application interface, and then observe the timing on the DDR2 bus.
> > The DDR2 model is the one that I generated from MIG2.0.
>
> > Here is what I noticed:
> > 1) a precharge occured after writing to memory location 0x260. this is
> > followed by a refresh and activate.
>
> > To my understanding, a precharge and subsequent activate should happen
> > only if i am accessing an address greater than 1024 or 0x3FF, since
> > the column width of the RAM is 10 bits. Morever, I am doing a write
> > burst to sequential addresses 0 to 0x400.
>
> > 2) TRAS which is delay between active and precharge is supposed to be
> > 40 ns. but from the above point, this does not seem to be much longer.
>
> > 3) Also, i thought 7800 us is the interval between 2 refresh. how come
> > it refreshes so much earlier? isn't this very inefficient?
>
> > did i miss out anything? kindly help and advice.
>
> > thanks in advance,
> > Chris
>
> 3) The average refresh interval is 7.8 usec.

Hi Chris,

Can you clarify few questions:
1. Are you using Virtex4 controller or Virtex5 controller?
2. Did you generate the design from MIG at 133MHz or did you change
the frequency after generating the design?

Here are few answers:
1. Precharge command is occurred not due to address and it appeared
due to Auto Refresh Command.
2. Whats the time did you observe between Active and Precharge
command. Whether are you getting any violation errors in simulations?
3. Can you observe once in simulations whats the time interval between
2 auto refresh commands?

Regards,
Praveen

Article: 135798
Subject: Re: Virtex 5, DDR2 access
From: praveen@tarayinc.com
Date: Thu, 16 Oct 2008 00:06:01 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Oct 15, 8:13=A0pm, niklas_mo...@hotmail.com wrote:
> On Oct 14, 11:55=A0pm, PatC <p...@REMOVETHISpatocarr.com> wrote:
>
>
>
> > niklas_mo...@hotmail.com wrote:
> > > Hi.
>
> > > I have a design with a Virtex 5 and a DDR2 memory.
> > > It seems like there is some problem when I read from the DDR2 memory
> > > and I was hoping that someone here might recognize the problem.
>
> > > Here is what happens.
> > > My base address for the memory is 0x88000000
>
> > > I write following bytes (byte write) 0x11 to 0x88000000, 0x22 to
> > > 0x88000001, 0x33 to 0x88000002, 0x44 to 0x88000003.
>
> > > When I read from the memory it will look like (32 bits format):
> > > 0x88000000 =A0 =A0 =A0 =A011000000
> > > 0x88000004 =A0 =A0 =A0 =A000000000
> > > 0x88000008 =A0 =A0 =A0 =A000000000
> > > 0x8800000C =A0 =A0 =A0 =A000000000
> > > 0x88000010 =A0 =A0 =A0 =A000223344
>
> > > But sometimes it seems to work and then I try to reload the bit-file
> > > and then I get the same problem again.
> > > What I notice is that when it works I write i.e 0x11223344 and will
> > > read back
> > > 0x88000000 =A0 =A0 =A0 =A011223344
> > > 0x88000004 =A0 =A0 =A0 =A000000000
> > > 0x88000008 =A0 =A0 =A0 =A000000000
> > > 0x8800000C =A0 =A0 =A0 =A000000000
> > > 0x88000010 =A0 =A0 =A0 =A000000000
>
> > > If I reload the bit-file I will read back:
> > > 0x88000000 =A0 =A0 =A0 =A011000000
> > > 0x88000004 =A0 =A0 =A0 =A000000000
> > > 0x88000008 =A0 =A0 =A0 =A000000000
> > > 0x8800000C =A0 =A0 =A0 =A000000000
> > > 0x88000010 =A0 =A0 =A0 =A000223344
>
> > > So my conclusion is that the write part always seems to work, but it
> > > the read part that doesn't work.
> > > Could the be a problem with the IDELAYCTRL that is not calibrated?
>
> > > Thanks,
> > > Niklas
>
> > Hi Niklas,
>
> > =A0 =A0Your question is quite broad and lacks details.
>
> > - Which controller are you using? MIG-generated, your own, etc.
>
> > - What SDRAM type is it? 4-burst length?
>
> > - When you say base address, are you using an embedded processor?
>
> > - Does it work in simulation? *g*
>
> > Cheers,
> > -Pat
>
> Hi Pat.
>
> Yes, I'm using a Microblaze (EDK) and the controller is MPMC 3.0 and
> the also used the MIG-generator.
> The burst length is 8 and the memory type is Micron MT4HTF1664A.
>
> Have tried on a Xilinx Lab board and there it works (the difference is
> the that they use a smaller FPGA on that board).
>
> Thanks,
> Niklas

Hi Niklas,

I have few questions to be clarified:
1. You mentioned that you are using Mircon MT4HTF1664A. So you are
testing the UDIMM design, but you mentioned only 32 bits as bus, are
you looking at 64-bits or not?
2. Whether calibration is getting completed properly (PHY_INIT_DONE is
asserted)?
3. Which Xilinx Lab board did you verify?
4. At what frequency are you verifying the design?
5. UDIMM performance will vary based on Load of UDIMM. UDIMM loading
issues mentioned in XAPP858 as follows:

Chip Select Timing in High Loading Situations
Timing on the chip select signal becomes critical on heavily loaded
DIMMs because the chip
select signal remains a =931T=94 signal, even when 2T timing is enabled.
In some cases, the loading
may be so large, that the chip select cannot meet the setup time
requirements for the next clock
edge. In this case, the chip select signal can be asserted one-quarter
or one-half clock cycle
earlier than is normally done in the DDR2 interface design =96 by
default, CLK0 is used to clock the
chip select output flop; instead, CLK270 (inverted version of CLK90),
or CLK180 (inverted version
of CLK0) may be used to clock the chip select output flop. The DDR2
design must be manually
modified to support this. The user must take care that the chip select
is not advanced so much
that a hold time violation now occurs.

Regards,
Praveen

Article: 135799
Subject: Re: A couple of CPLD design challenges for the group
From: Andreas Ehliar <ehliar-nospam@isy.liu.se>
Date: Thu, 16 Oct 2008 07:21:32 +0000 (UTC)
Links: << >>  << T >>  << A >>
On 2008-10-16, Jim Granville <no.spam@designtools.maps.co.nz> wrote:
> No mention of leading zero suppression ?

I haven't really thought about it, but that would make a nice addition :)

>> What kind of display would you use here? (7 segment LEDs? LCD?, etc?)
>
> MUX'd or Non MUX'd ?
> LCDs need a XOR backplane, and they also have MUX choices too.

I didn't use a mux'd solution, but as you point out further down I'm
cheating somewhat with my choice of LED drivers. MUX'd would probably
be better if using traditional driver circuits like the ULN2003.

> 50Hz, 60Hz and 32.768KHz are the common ones....

50 Hz and 60 Hz are quite hard if you want to do some kind of resource sharing.
If you use 32768 Hz it is much easier to move things around to only one
arithmetic block.

> You could get them to code direct 7 segment counters, for a non-mux 
> display. Nice to show there are non Bin/bcd counters possible too...

I haven't thought about that at all, that is a very interesting counter idea.
It is probably not going to be useful in many cases but you never know when
something similar will save your day :)


>> Personally, I have a relatively small solution to this, but there are still
>> a few tricks I haven't used. In my solution I'm using a 7 segment LED driver
>> circuit with built in NBCD decoder (the 9368), so if you want to compare
>> your solution to mine you might want to output NBCD coded numbers out of your
>> CPLD.
>
> Surely the 9368 should be part of the CPLD ?

Yes. But I had to use some sort of LED driving circuit, and we had lots of 9368
in the lab :) Perhaps I'll try to update my solution to use a more traditional
LED driver instead. Unfortunately that is probably going to mean that I have to
use a larger CPLD as the current version is filled to the limit. On the other
hand, that would also allow me to fit a clock prescaler into the CPLD to avoid
the very non-standard frequency the current solution needs :)

But I agree that I'm cheating a little bit here.

/Andreas



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