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 145750

Article: 145750
Subject: Re: Triming timing constraints from pin ...
From: austin <austin@xilinx.com>
Date: Mon, 22 Feb 2010 07:45:21 -0800 (PST)
Links: << >>  << T >>  << A >>
Dek,

It is a warning:  you do not necessarily have to fix it.

The tools are telling you that a net to a constant (1=power, or
0=ground) had its timing constraint removed (ignored).

That is a perfectly OK thing to do.

It is up to you to read each warning, and check out what it means.

This one is easy, let it go.

Austin

Article: 145751
Subject: Re: rocketio TX delay between sata0 and sata1
From: Marcelo Segura <user@compgroups.net/>
Date: Mon, 22 Feb 2010 11:45:53 -0600
Links: << >>  << T >>  << A >>
Ok thanks all for your help.
I will try using diferent DCM for each MGT.
I hope that works.


---
frmsrcurl: http://compgroups.net/comp.arch.fpga/rocketio-TX-delay-between-sata0-and-sata1

Article: 145752
Subject: Re: using an FPGA to emulate a vintage computer
From: rickman <gnuarm@gmail.com>
Date: Mon, 22 Feb 2010 11:27:23 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 21, 8:02=A0pm, Rick <richardcort...@gmail.com> wrote:
> On Feb 21, 2:02=A0pm, Derek Simmons <dereks...@gmail.com> wrote:
>
>
>
> > On Feb 5, 1:19=A0pm, Eric Chomko <pne.cho...@comcast.net> wrote:
>
> > > Has anyone created a copy machine of an old system using an FPGA? I
> > > was wondering if it would be possible to take an entire SWTPC 6800 an=
d
> > > compile the schematics and have it run on an FPGA board.? Wouldn't
> > > even have to be the latest Xylinx product, I suspect.
>
> > In Circuit Cellar's 2009 issue is the article, "Retrocomputing on an
> > FPGA: Reconstructing an '80s-Era Home Computer with Programmable
> > Logic". The author describes his experience of designing a Apple II+
> > compatiable project.
>
> > Another project I know of is mentioned at:
>
> >http://vector-graphic.info/vg_links.aspx
>
> > This whole website is dedicated to Vector Graphic S-100 computers. The
> > link half way down the page is wrong but the project can be found at:
>
> >http://opencores.org/project,vg_z80_sbc
>
> > At this web is 8086 core:
>
> >http://www.ht-lab.com/freecores/cpu8086/cpu86.html
>
> > I believe the sample project with the core would be equivalent of a
> > 8086 SBC running DOS.
>
> > Derek
>
> NOT a FPGA but certainly a design I would like to see executed in FPGA
> and very vintagehttp://laughtonelectronics.com/arcana/BrideOfSonPg1.html
>
> He used a 65C02 and a KIM as his starting point. The 65C02 was chosen
> because all
> of its unimplemented instructions became NOPs. If I have it right, he
> then intercepts
> the unused op codes and uses them for his own purposes like extending
> the memory
> addressing. It is an interesting design in that when you move the
> microcode off the
> main processor you can optimize the system for very specific tasks. In
> his case he
> used it for running Forth.
>
> I guess the argument could be just do the entire thing in VDHL or use
> the right processor
> for the job.<grin> Instruction set problems seem to come up fairly
> often. I *think* some
> C implementations could use a separate hardware stack for instance.
>
> Rick

A hardware stack for C is a bit of a problem.  C tends to need a
rather large stack because of the stack frames used.  A language like
Forth, on the other hand, can get by with a very small hardware stack
because the stack usage tends to be minimal and subroutine nesting
does not automatically add to the data stack depth.  Instead, often
parameters that are passed into one routine are also passed onto the
next without duplication until they are consumed by the calculations
that need them.  In c every call copies every piece of data needed for
the lower level code creating stack "bloat" if you will.

There are any number of Forth CPU designs, many of which use a
hardware dedicated stack for data and another for addresses.

Rick

Article: 145753
Subject: Re: System design in FPGA
From: Benjamin Couillard <benjamin.couillard@gmail.com>
Date: Mon, 22 Feb 2010 12:05:48 -0800 (PST)
Links: << >>  << T >>  << A >>
On 22 f=E9v, 07:56, "Nial Stewart"
<nial*REMOVE_TH...@nialstewartdevelopments.co.uk> wrote:
> Most of what's been posted is good advice.
>
> I usually split design into functional blocks which can then
> be indepentantly functionally tested, these are my entities.
>
> When it comes to signal routing I had to pick up a design a while
> ago that used records all over the place. I found this obscured the
> functional intent and made it much more difficult to debug so I'm not
> a big fan, although I have used them in a couple of instances.
>
> Keep it all as simple as possible!
>
> Nial.

I think that records that group "related logic" make design clearer.
The important thing is not to group random signals in a record.
For example, I use records to interface my sdram controller with my
other processing blocks. One record is called "sdram_if_input_t" for
the sdram controller interface inputs and the other one
"sdram_if_output_t"  for the controller outputs.
Therefore my block called "video_processing" is connected by 2 signals
to the sdram controller instead of being connected by 10-15 signals to
the sdram controller.

That way the top level is much much clearer since the number of
signals is reduced. The possibility of errors is reduced too because
there's less risk of connecting the wrong signal in the wrong place
with records.

For entities, I think that if you have trouble saying what is the
purpose of the block you're designing, then your block is probably
doing too much or not enough. That's what I aim for. That way it's
easier to reuse the block and the testbench design is also easier. I
also try to use only one process for my entities when possible (After
looking at Mike Treseler's code).

Benjamin

Article: 145754
Subject: Re: using an FPGA to emulate a vintage computer
From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Date: Mon, 22 Feb 2010 20:28:34 +0000 (UTC)
Links: << >>  << T >>  << A >>
In comp.arch.fpga rickman <gnuarm@gmail.com> wrote:
(big snip)
 
> A hardware stack for C is a bit of a problem.  C tends to need a
> rather large stack because of the stack frames used.  

It depends, somewhat, on the programmer.  In K&R C, you couldn't
pass a struct, but instead a pointer to a struct.  That kept
the stack a little smaller, at least.  With C89, as with K&R, 
arrays (including automatic, allocated on the stack) had a 
constant dimension.  If I remember right, C99 added the ability
to dimension local automatic (stack) arrays with variables.
(Previously, a pointer on the stack and malloc() would have
been used, along with the requirement to remember free().)

> A language like
> Forth, on the other hand, can get by with a very small hardware stack
> because the stack usage tends to be minimal and subroutine nesting
> does not automatically add to the data stack depth.  Instead, often
> parameters that are passed into one routine are also passed onto the
> next without duplication until they are consumed by the calculations
> that need them.  In c every call copies every piece of data needed for
> the lower level code creating stack "bloat" if you will.

If you only pass pointers, it isn't so bad...

-- glen

Article: 145755
Subject: Re: System design in FPGA
From: Andy <jonesandy@comcast.net>
Date: Mon, 22 Feb 2010 12:48:11 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 20, 10:24=A0am, Petter Gustad <newsmailco...@gustad.com> wrote:
> Or interfaces if you're using SystemVerilog. Interfaces can carry
> signals which run in both directions. VHDL records can only carry
> signals running in a single direction.

A record port can only have a single mode, but it can be inout. multi-
directioned records require resolved types and default drivers defined
everywhere those elements are used only as inputs. It requires a lot
of work down below, but at the top level, plumbing is sweet easy to
maintain. Need another signal? Just add it to the record type and to
the default undriven value constant, then you only need to patch it in
where it is ultimately used.

User defined collections of per-element modes for records has been on
my Christmas list for a long time...

Andy

Article: 145756
Subject: Re: System design in FPGA
From: Andy <jonesandy@comcast.net>
Date: Mon, 22 Feb 2010 13:01:47 -0800 (PST)
Links: << >>  << T >>  << A >>
As you've probably guessed, there is no one "best way" to partition a
design.

A much under-used method (IMHO) is that of vhdl blocks. Blocks are
like entities/architectures, but  you don't have to specify the ports.
You can specify signals and objects that are local to that block, and
not visible anywhere else, but objects declared outside the block are
visible inside it.

For instance, if I had a set of entities or processes that shared a
set of signals amongst themselves, but not anywhere else, I could use
a block to encapsulate those entities/processes along with their
locally interconnecting signals, yet not have the overhead of passing
external interfaces through yet another layer of ports.

Andy

Article: 145757
Subject: Re: Reading UDP with FPGA
From: whygee <yg@yg.yg>
Date: Mon, 22 Feb 2010 22:01:51 +0100
Links: << >>  << T >>  << A >>
Dek wrote:
> I was thinking to follow this implementation:
> 
> http://www.itee.uq.edu.au/~peters/xsvboard/stack/stack.htm
great link but where are the VHDL source files ?

> Dek
yg

-- 
http://ygdes.com / http://yasep.org

Article: 145758
Subject: Re: FPGA platform??
From: James Salisbury <nntp.dsl.pipex.com>
Date: Mon, 22 Feb 2010 21:30:13 +0000
Links: << >>  << T >>  << A >>
JuNNi wrote:
> Hi, I am a beginner at FPGA. I had a query that which platform is used for
> professional digital designs. Is it linux or windows??
> 
> 	   
> 					
> ---------------------------------------		
> Posted through http://www.FPGARelated.com

Hi,

Altera support Vista 32 bit, XP 32 bit and some Linux. If you use the 
free web edition 
https://www.altera.com/support/software/download/altera_design/quartus_we/dnl-quartus_we.jsp
  on a modern fast PC (less that 2 years old) and with at least 2 GB of 
ram you should be fine for learning about FPGAs.

James

Article: 145759
Subject: Re: using an FPGA to emulate a vintage computer
From: Eric Chomko <pne.chomko@comcast.net>
Date: Mon, 22 Feb 2010 13:53:51 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 22, 2:27=A0pm, rickman <gnu...@gmail.com> wrote:
> On Feb 21, 8:02=A0pm, Rick <richardcort...@gmail.com> wrote:
>
>
>
> > On Feb 21, 2:02=A0pm, Derek Simmons <dereks...@gmail.com> wrote:
>
> > > On Feb 5, 1:19=A0pm, Eric Chomko <pne.cho...@comcast.net> wrote:
>
> > > > Has anyone created a copy machine of an old system using an FPGA? I
> > > > was wondering if it would be possible to take an entire SWTPC 6800 =
and
> > > > compile the schematics and have it run on an FPGA board.? Wouldn't
> > > > even have to be the latest Xylinx product, I suspect.
>
> > > In Circuit Cellar's 2009 issue is the article, "Retrocomputing on an
> > > FPGA: Reconstructing an '80s-Era Home Computer with Programmable
> > > Logic". The author describes his experience of designing a Apple II+
> > > compatiable project.
>
> > > Another project I know of is mentioned at:
>
> > >http://vector-graphic.info/vg_links.aspx
>
> > > This whole website is dedicated to Vector Graphic S-100 computers. Th=
e
> > > link half way down the page is wrong but the project can be found at:
>
> > >http://opencores.org/project,vg_z80_sbc
>
> > > At this web is 8086 core:
>
> > >http://www.ht-lab.com/freecores/cpu8086/cpu86.html
>
> > > I believe the sample project with the core would be equivalent of a
> > > 8086 SBC running DOS.
>
> > > Derek
>
> > NOT a FPGA but certainly a design I would like to see executed in FPGA
> > and very vintagehttp://laughtonelectronics.com/arcana/BrideOfSonPg1.htm=
l
>
> > He used a 65C02 and a KIM as his starting point. The 65C02 was chosen
> > because all
> > of its unimplemented instructions became NOPs. If I have it right, he
> > then intercepts
> > the unused op codes and uses them for his own purposes like extending
> > the memory
> > addressing. It is an interesting design in that when you move the
> > microcode off the
> > main processor you can optimize the system for very specific tasks. In
> > his case he
> > used it for running Forth.
>
> > I guess the argument could be just do the entire thing in VDHL or use
> > the right processor
> > for the job.<grin> Instruction set problems seem to come up fairly
> > often. I *think* some
> > C implementations could use a separate hardware stack for instance.
>
> > Rick
>
> A hardware stack for C is a bit of a problem. =A0C tends to need a
> rather large stack because of the stack frames used. =A0A language like
> Forth, on the other hand, can get by with a very small hardware stack
> because the stack usage tends to be minimal and subroutine nesting
> does not automatically add to the data stack depth. =A0Instead, often
> parameters that are passed into one routine are also passed onto the
> next without duplication until they are consumed by the calculations
> that need them. =A0In c every call copies every piece of data needed for
> the lower level code creating stack "bloat" if you will.

I'm pretty sure ALGOL and PL/I are far worse WRT to stack bloat than
is C.
But yes, nothing would beat FORTH unless you used assembly and only
architectures with HW stacks. Two being better than one (i.e. 6809 vs
6800).

> There are any number of Forth CPU designs, many of which use a
> hardware dedicated stack for data and another for addresses.

Years ago I worked as a research assistant with a professor doing High-
Level
Architectures. I suggested Forth and he sort of poo-pooed the idea
mostly
because his grant was from the Air Force and they were all about using
JOVIAL
at that time. This was pre-RISC days and the whole computer
architecture idea
based upon a high-level language never really took off. Nor did the
use of a medium
level language like Forth as far as I can tell.

Eric


Article: 145760
Subject: Re: using an FPGA to emulate a vintage computer
From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Date: Mon, 22 Feb 2010 22:10:36 +0000 (UTC)
Links: << >>  << T >>  << A >>
In comp.arch.fpga Eric Chomko <pne.chomko@comcast.net> wrote:
(snip)
 
> I'm pretty sure ALGOL and PL/I are far worse WRT to stack 
> bloat than is C.

ALGOL, PL/I, and C pretty much require local variables to 
be automatic.  (PL/I procedures without the RECURSIVE attribute
might get away with static allocation.)

Fortran up through Fortran 77 allowed local variables to be
statically allocated.  Without the RECURSIVE attribute, it
probably still does.

Other than passing of arguments, it depends on how you allocate
your variables.  PL/I has the STATIC attribute which will keep
variables off the stack, as does C.  Be careful with recursion, though.
For ALGOL, maybe you need internal procedures using variables from
outside, and to minimize actual local variables.  PL/I can easily
generate temporary variables, including arrays.

> But yes, nothing would beat FORTH unless you used assembly and only
> architectures with HW stacks. Two being better than one (i.e. 6809 vs
> 6800).

-- glen 

Article: 145761
Subject: Re: using an FPGA to emulate a vintage computer
From: Charles Richmond <frizzle@tx.rr.com>
Date: Mon, 22 Feb 2010 16:29:49 -0600
Links: << >>  << T >>  << A >>
glen herrmannsfeldt wrote:
> In comp.arch.fpga rickman <gnuarm@gmail.com> wrote:
> (big snip)
>  
>> A hardware stack for C is a bit of a problem.  C tends to need a
>> rather large stack because of the stack frames used.  
> 
> It depends, somewhat, on the programmer.  In K&R C, you couldn't
> pass a struct, but instead a pointer to a struct.  That kept
> the stack a little smaller, at least.  With C89, as with K&R, 
> arrays (including automatic, allocated on the stack) had a 
> constant dimension.  If I remember right, C99 added the ability
> to dimension local automatic (stack) arrays with variables.
> (Previously, a pointer on the stack and malloc() would have
> been used, along with the requirement to remember free().)
> 

And even though structs *can* be passed to and returned from 
functions, a programmer is *not* forced to do that. One can still 
pass the pointers to structs. One can still use "malloc()" and 
"free()" to allocate variable-size arrays. If you are an "old 
time" C programmer, this probably fits better in your way of 
thinking. In any case, if it is important to conserve stack space, 
the "good ole ways" can still be used.


-- 
+----------------------------------------+
|     Charles and Francis Richmond       |
|                                        |
|  plano dot net at aquaporin4 dot com   |
+----------------------------------------+

Article: 145762
Subject: Re: using an FPGA to emulate a vintage computer
From: Peter Flass <Peter_Flass@Yahoo.com>
Date: Mon, 22 Feb 2010 17:53:07 -0500
Links: << >>  << T >>  << A >>
Eric Chomko wrote:
> 
> I'm pretty sure ALGOL and PL/I are far worse WRT to stack bloat than
> is C.

PL/I can be, but doesn't have to be.  If the arguments of a procedure 
match the parameters, only the argument address (and possibly a 
descriptor address for strings structures, and arrays) is passed.  If 
the argument doesn't match, the compiler nicely copies it to a "dummy 
argument" that does.  As usual, the programmer needs to have some idea 
what's going on.

Article: 145763
Subject: Re: using an FPGA to emulate a vintage computer
From: scott@slp53.sl.home (Scott Lurndal)
Date: 23 Feb 2010 00:02:49 GMT
Links: << >>  << T >>  << A >>
glen herrmannsfeldt <gah@ugcs.caltech.edu> writes:
>In comp.arch.fpga rickman <gnuarm@gmail.com> wrote:
>(big snip)
> 
>> A hardware stack for C is a bit of a problem.  C tends to need a
>> rather large stack because of the stack frames used.  
>
>It depends, somewhat, on the programmer.  In K&R C, you couldn't
>pass a struct, but instead a pointer to a struct.  That kept
>the stack a little smaller, at least.  With C89, as with K&R, 
>arrays (including automatic, allocated on the stack) had a 
>constant dimension.  If I remember right, C99 added the ability
>to dimension local automatic (stack) arrays with variables.
>(Previously, a pointer on the stack and malloc() would have
>been used, along with the requirement to remember free().)

Some C implementations supported alloca() which would allocate
on the stack (and would be automatically free'd on return).

A minimal C stack frame is the return instruction pointer, with
arguments passed in registers.

scott


Article: 145764
Subject: Re: rocketio TX delay between sata0 and sata1
From: Ed McGettigan <ed.mcgettigan@xilinx.com>
Date: Mon, 22 Feb 2010 16:07:53 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 21, 6:03=A0pm, marcelo <u...@compgroups.net/> wrote:
> yes I understand but 500ps is to much for pcb delay, are 15cm.
> The idia is ti desing an ultra wideband transmiter using the MGT.
> I'm using BPKS modulation, so the delay between TX1(positive pulse) and T=
X2(negativo pulse), must be the same.
>
> ---
> frmsrcurl:http://compgroups.net/comp.arch.fpga/rocketio-TX-delay-between-=
sata0-...

500pS is 7.7cm assuming 65pS/cm in typical FR-4 material.

I'm not a RF DSP expert, but why do you need two separate transmitters
for this design?  What component are the transmitters connected to in
the system?

Ed McGettigan
--
Xilinx Inc.

Article: 145765
Subject: Re: Looking for Ultimate RISC/MISC that runs LINUX Website
From: jacko <jackokring@gmail.com>
Date: Mon, 22 Feb 2010 16:19:23 -0800 (PST)
Links: << >>  << T >>  << A >>
On 22 Feb, 00:45, Derek Simmons <dereks...@gmail.com> wrote:
> I realize what I'm looking for might not be out there anymore but I'm
> trying to give it my best shot.
>
> A couple of years ago I came across a website that somebody put up
> describing an ultimate RISC or MISC processor they were developing.
> One of their goals was to be able to run LINUX on it. Was having a
> conversation with of friend of mine that made me think of this and I
> wondered if they ever achieved their goal.
>
> I think his processor had 16 different instructions and they had
> implemented it using an FPGA.
>
> Does this sound familair to anybody?
>
> Thanks,
> Derek

Can't think of it, the linux thing. Doing processor design myself, but
not interested in booting linux as a primary goal. Getting a boot
loader written to load flash into the 128K memory is my goal. Then
filling the boot sectors of the flash. I think after a little bit of
thought, I will get the on chip flash to be twice as effective almost,
by not using the MSB of the 16 bit word. But that's another day.

cheers jacko

http://nibz.nibzx.co.uk

Article: 145766
Subject: Re: Reading UDP with FPGA
From: vanepp@sfu.ca (Peter Van Epp)
Date: Tue, 23 Feb 2010 01:55:52 +0000 (UTC)
Links: << >>  << T >>  << A >>
whygee <yg@yg.yg> writes:

>Dek wrote:
>> I was thinking to follow this implementation:
>> 
>> http://www.itee.uq.edu.au/~peters/xsvboard/stack/stack.htm
>great link but where are the VHDL source files ?

>> Dek
>yg

>-- 
>http://ygdes.com / http://yasep.org

	on the project home page above that at in a zip file.

http://www.itee.uq.edu.au/~peters/xsvboard/index.html

Peter Van Epp

Article: 145767
Subject: Re: rocketio TX delay between sata0 and sata1
From: Marcelo Segura <user@compgroups.net/>
Date: Mon, 22 Feb 2010 20:02:28 -0600
Links: << >>  << T >>  << A >>
I need two transmiters, because I transmit BPSK pulse so positive and negative pulses.
The time bettwen pulses is 150 ns, so if I change the polarity of MGT, the output capacitor of the bord charge and discharge so I can't see the pulse at the output.
I don't know what hapen if I remove this capacitors.
thanks

---
frmsrcurl: http://compgroups.net/comp.arch.fpga/rocketio-TX-delay-between-sata0-and-sata1

Article: 145768
Subject: Re: rocketio TX delay between sata0 and sata1
From: Ed McGettigan <ed.mcgettigan@xilinx.com>
Date: Mon, 22 Feb 2010 18:34:32 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 22, 6:02=A0pm, Marcelo Segura <u...@compgroups.net/> wrote:
> I need two transmiters, because I transmit BPSK pulse so positive and neg=
ative pulses.
> The time bettwen pulses is 150 ns, so if I change the polarity of MGT, th=
e output capacitor of the bord charge and discharge so I can't see the puls=
e at the output.
> I don't know what hapen if I remove this capacitors.
> thanks
>
> ---
> frmsrcurl:http://compgroups.net/comp.arch.fpga/rocketio-TX-delay-between-=
sata0-...

I don't understand what you mean here, is there a diagram somewhere on
the web that illustrates what you are attempting to do?

Ed McGettigan
--
Xilinx Inc.

Article: 145769
Subject: Re: How a state machine is constructed using latches?
From: Weng Tianxiang <wtxwtx@gmail.com>
Date: Mon, 22 Feb 2010 18:41:53 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 18, 1:13=A0pm, rickman <gnu...@gmail.com> wrote:
> On Feb 18, 11:10=A0am, Weng Tianxiang <wtx...@gmail.com> wrote:
>
>
>
>
>
> > On Feb 17, 7:51=A0pm, rickman <gnu...@gmail.com> wrote:
>
> > > On Feb 17, 8:05 pm, Weng Tianxiang <wtx...@gmail.com> wrote:
>
> > > > On Feb 17, 4:29 pm, rickman <gnu...@gmail.com> wrote:
> > > > > Fight fire with fire! =A0The two reports below show that both the
> > > > > missing else and the missing assignment (which is also missing in=
 the
> > > > > missing else case) produce latches.
>
> > > > > @W: CL117 :"C:\arius\boards\tdc_upgrade\tests\latchsynthtest.vhd"=
:
> > > > > 57:4:57:7|Latch generated from process for signal Latch, probably
> > > > > caused by a missing assignment in an if or case stmt
> > > > > @W: CL117 :"C:\arius\boards\tdc_upgrade\tests\latchsynthtest.vhd"=
:
> > > > > 40:4:40:7|Latch generated from process for signal Comb, probably
> > > > > caused by a missing assignment in an if or case stmt
>
> > > > > library ieee;
> > > > > use ieee.std_logic_1164.all;
> > > > > use ieee.numeric_std.all;
>
> > > > > entity LatchSynthTest is
> > > > > =A0 port(
> > > > > =A0 =A0 =A0 =A0 =A0 CLK =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 : in =
=A0 =A0std_logic ;
> > > > > =A0 =A0 =A0 =A0 =A0 RESET =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 : in =
=A0 =A0std_logic ;
> > > > > =A0 =A0 =A0 =A0 =A0 C01 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 : in =
=A0 =A0std_logic ;
> > > > > =A0 =A0 =A0 =A0 =A0 C02 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 : in =
=A0 =A0std_logic ;
> > > > > =A0 =A0 =A0 =A0 =A0 LatchOutput =A0 : out =A0 std_logic ;
> > > > > =A0 =A0 =A0 =A0 =A0 CombOutput =A0 =A0: out =A0 std_logic
> > > > > =A0 =A0 =A0 =A0 =A0 );
> > > > > end LatchSynthTest ;
>
> > > > > architecture behavior of LatchSynthTest is
> > > > > =A0 SIGNAL Latch =A0 =A0 =A0 =A0 =A0: std_logic;
> > > > > =A0 SIGNAL Comb =A0 =A0 =A0 =A0 =A0 : std_logic;
> > > > > =A0 SIGNAL LatchReg =A0 =A0 =A0 : std_logic;
> > > > > =A0 SIGNAL CombReg =A0 =A0 =A0 =A0: std_logic;
>
> > > > > begin
>
> > > > > =A0 CombOutput =A0 =A0<=3D CombReg;
> > > > > =A0 LatchOutput =A0 <=3D LatchReg;
>
> > > > > =A0 Process_1 : process(RESET, CLK)
> > > > > =A0 begin
> > > > > =A0 =A0 if (RESET =3D '1') then
> > > > > =A0 =A0 =A0 LatchReg =A0<=3D '0';
> > > > > =A0 =A0 =A0 CombReg =A0 <=3D '0';
> > > > > =A0 =A0 elsif (rising_edge(CLK)) then
> > > > > =A0 =A0 =A0 LatchReg =A0<=3D Latch;
> > > > > =A0 =A0 =A0 CombReg =A0 <=3D Comb;
> > > > > =A0 =A0 end if;
> > > > > =A0 end process;
>
> > > > > =A0 CombProc : process(CombReg, C01, C02)
> > > > > =A0 begin
> > > > > =A0 =A0 case CombReg is
> > > > > =A0 =A0 =A0 when '0' =3D>
> > > > > =A0 =A0 =A0 =A0 if (C01 =3D '1') then
> > > > > =A0 =A0 =A0 =A0 =A0 Comb <=3D '0';
> > > > > =A0 =A0 =A0 =A0 elsif (C02 =3D '1') then
> > > > > =A0 =A0 =A0 =A0 =A0 Comb <=3D '1';
> > > > > =A0 =A0 =A0 =A0 else
> > > > > =A0 =A0 =A0 =A0 =A0 -- Here an assignment statement is missing, b=
ut it doesn't
> > > > > =A0 =A0 =A0 =A0 =A0 -- generate latch. =A0It is treated as a null=
 statement. -
> > > > > Weng
> > > > > =A0 =A0 =A0 =A0 end if;
> > > > > =A0 =A0 =A0 when others =3D>
> > > > > =A0 =A0 =A0 =A0 Comb <=3D '1';
> > > > > =A0 =A0 end case;
> > > > > =A0 end process;
>
> > > > > =A0 LatchProc : process(LatchReg, C01, C02)
> > > > > =A0 begin
> > > > > =A0 =A0 case LatchReg is
> > > > > =A0 =A0 =A0 when '0' =3D>
> > > > > =A0 =A0 =A0 =A0 if C01 =3D '1' then
> > > > > =A0 =A0 =A0 =A0 =A0 Latch <=3D '0';
> > > > > =A0 =A0 =A0 =A0 elsif C02 =3D '1' then
> > > > > =A0 =A0 =A0 =A0 =A0 Latch <=3D '1';
> > > > > =A0 =A0 =A0 =A0 =A0 -- Here the else is missing, and it does
> > > > > =A0 =A0 =A0 =A0 =A0 -- generate latch. =A0It is treated as a null=
 statement.
> > > > > =A0 =A0 =A0 =A0 end if;
> > > > > =A0 =A0 =A0 when others =3D>
> > > > > =A0 =A0 =A0 =A0 Latch <=3D '1';
> > > > > =A0 =A0 end case;
> > > > > =A0 end process;
>
> > > > > end behavior;
>
> > > > Hi,
> > > > Thank you, Andy, Rick and everyone, I am wrong in the second point:
> > > > missing "else" or missing an assignment statement.
>
> > > > But my first point is how to generate a latch for a compiler. Rick,
> > > > can you see the floor plan to show how the latch is generated: for =
the
> > > > state only or for full states?
>
> > > > Weng
>
> > > I'm not clear what you mean by "how". =A0Are you asking about the det=
ail
> > > of how it is implemented in the FPGA? =A0In the Lattice part they use=
d a
> > > FF as a latch. =A0A register is between the latch and the output. =A0=
They
> > > drive the latch oddly driving both the clock and the async reset
> > > inputs with logic, but then if you look at the code what would you
> > > think is the clock? =A0I don't see why they did it the way they did, =
but
> > > it works correctly according to the VHDL. =A0With only four inputs I
> > > would expect they could have just used a single LUT4 and the latch
> > > with the clock always enabled.
>
> > > Din =3D=3D '1'
> > > Latch Enable =3D=3D CombReg + C02
> > > Async Clear =A0=3D=3D ~CombReg * C01
>
> > > Is this what you are asking?
>
> > > Rick
>
> > Rick,
> > Yes, that is what I want.
>
> > Could you please send the code and a window screen frame using
> > Window's Paint so that I can see the full picture.
>
> > Thank you.
>
> > Weng
>
> I'm not clear on what you want. =A0I posted the full code a couple of
> posts back. =A0What is it that you want a screen shot of? =A0The text I
> quoted was from the Synthesis report. =A0If you want an image of the
> chip editor, the latch only shows in the logic block editor dialog
> box. =A0It is just a check box on a schematic of the functional elements
> in the logic block. =A0Is that of any value to you?
>
> Rick

Rick,
Thank you for your help.

This time I really understand what the Lattice does with your source
code in the previous poster.

Lattice generates a latch for the process of CombProc, paying no
attention to what is used.

And I think Lattice compiler does a very good job by generating the
following equations:

Din =3D=3D '1'
Latch Enable =3D=3D CombReg + C02
Async Clear  =3D=3D ~CombReg * C01

"With only four inputs I
would expect they could have just used a single LUT4 and the latch
with the clock always enabled. "

No. What you suggest may not work. Or it may work, but is not as
simple as the Lattice equations show.

I would like to see how you would write a LUT4 equation for a latch.

Weng




Article: 145770
Subject: Re: Reading UDP with FPGA
From: whygee <yg@yg.yg>
Date: Tue, 23 Feb 2010 07:06:32 +0100
Links: << >>  << T >>  << A >>
Peter Van Epp wrote:
>> great link but where are the VHDL source files ?
> 	on the project home page above that at in a zip file.
> http://www.itee.uq.edu.au/~peters/xsvboard/index.html
oh thanks again, I completely missed it :-/

> Peter Van Epp
yg

-- 
http://ygdes.com / http://yasep.org

Article: 145771
Subject: Re: FPGA platform??
From: Thomas Stanka <usenet_nospam_valid@stanka-web.de>
Date: Mon, 22 Feb 2010 22:13:34 -0800 (PST)
Links: << >>  << T >>  << A >>
On 22 Feb., 14:12, "JuNNi" <m_junaid_muzam...@yahoo.com> wrote:
> Hi, I am a beginner at FPGA. I had a query that which platform is used for
> professional digital designs. Is it linux or windows??

For normal FPGA Design Windows is common, as some (backend-) FPGA
tools are either Windows only or show better performance under
Windows.
For general digital design (and especially frontend of code entry and
simulation) professionals use often Linux/Solaris when it comes to
complex and large designs.

One reason for using Linux/Solaris is, that handling of large designs
requires often more than 2GB memory, but especially those tools
mentioned above that are Windows only or show bad performance under
Linux tend to be Win32 only or show bad performance in Win64 server
systems.
A rule of thumb: simple free starter kits are more on the Windows
side, professional tools could be better used on Linux Server.

bye Thomas









Article: 145772
Subject: Re: using an FPGA to emulate a vintage computer
From: Quadibloc <jsavard@ecn.ab.ca>
Date: Tue, 23 Feb 2010 01:39:38 -0800 (PST)
Links: << >>  << T >>  << A >>
On Feb 22, 12:27=A0pm, rickman <gnu...@gmail.com> wrote:

> A hardware stack for C is a bit of a problem. =A0C tends to need a
> rather large stack because of the stack frames used.

What could happen, though, on a computer with a small hardware stack
is that the compiler would use a software stack for things like
subroutine calls (which must always work, no matter how deeply they
are nested) and use the hardware stack for things it can control -
such as the layers of parentheses in assignment statements.

That, for example, is presumably how one would go about writing a C
compiler for a KDF 9.

John Savard

Article: 145773
Subject: Re: using an FPGA to emulate a vintage computer
From: "(see below)" <yaldnif.w@blueyonder.co.uk>
Date: Tue, 23 Feb 2010 12:39:14 +0000
Links: << >>  << T >>  << A >>
On 23/02/2010 09:39, in article
e59b10e9-83f7-4fb6-8ecf-a9d8fd13f055@v25g2000yqk.googlegroups.com,
"Quadibloc" <jsavard@ecn.ab.ca> wrote:

> On Feb 22, 12:27 pm, rickman <gnu...@gmail.com> wrote:
> 
>> A hardware stack for C is a bit of a problem.  C tends to need a
>> rather large stack because of the stack frames used.
> 
> What could happen, though, on a computer with a small hardware stack
> is that the compiler would use a software stack for things like
> subroutine calls (which must always work, no matter how deeply they
> are nested) and use the hardware stack for things it can control -
> such as the layers of parentheses in assignment statements.
> 
> That, for example, is presumably how one would go about writing a C
> compiler for a KDF 9.

The way the Algol 60 compilers on KDF9 worked is well documented.
The Whetstone compiler generated its own Algol-oriented byte code, which is
very similar to the slightly later B6500 machine code.

The Kidsgrove and EGDON compilers generated KDF9 machine code.
Managing the hardware stacks difficult, as it would have needed global data
flow and control flow analyses. The Kidsgrove compiler made a basic but not
very successful attempt at this.

See <http://sw.ccs.bcs.org/KidsgroveAlgol/INDEX.HTM>.

-- 
Bill Findlay
<surname><forename> chez blueyonder.co.uk



Article: 145774
Subject: Re: System design in FPGA
From: jc <jcappello@optimal-design.com>
Date: Tue, 23 Feb 2010 05:47:54 -0800 (PST)
Links: << >>  << T >>  << A >>
Don't make the methodology of I/O and module partitioning any more
complicated than it needs to be. As several have mentioned, keeping it
simple goes a long way toward debugging your design faster and
allowing others to understand the code when it comes to future
enhancements, mods, bug fixes, etc. That being said, IMO records add a
level of complexity--albeit add some power at your disposal--that
isn't necessary for most of your simpler architectures. As far as
partitioning goes, I like to block out modules (or entities) into well-
defined functions, much like you would create one of your "blocks" in
a block diagram.




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