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 156075

Article: 156075
Subject: Re: microZed adventures
From: Jan Panteltje <pNaonStpealmtje@yahoo.com>
Date: Fri, 22 Nov 2013 17:35:52 GMT
Links: << >>  << T >>  << A >>
On a sunny day (Fri, 22 Nov 2013 08:57:12 -0800) it happened John Larkin
<jjlarkin@highNOTlandTHIStechnologyPART.com> wrote in
<jj2v8997iq6amci40mr1t2g5l2e040ojgu@4ax.com>:

>We're into this signal processing project, using a microZed/ZYNQ thing as the
>compute engine.
>
>After a week or so of work by an FPGA guy and a programmer, we can now actually
>read and write an FPGA register from a C program, and wiggle a bit on a
>connector pin. Amazingly, the uZed eval kit does not include a demo of this, and
>the default boot image does not configure the FPGA!
>
>We're using their build tools to embed the FPGA config into the boot image. We'd
>really like to be able to have a C program read a bitstream file and reconfigure
>the FPGA, but we haven't been able to figure that out.
>
>If we run a C program that wiggles a pin as fast as it can, we can do a write to
>the FPGA register about every 170 ns. Without any attempts at optimization (like
>dedicating the second ARM core to the loop) we see stutters (OS stealing our
>CPU) that last tens or hundreds of microseconds, occasionally a full
>millisecond. That might get worse if we run TCP/IP sessions or host web pages or
>something, so dedicating the second ARM to realtime stuff would be good.

In my view FPGA should be used for - or used as hardware solution.
Putting a processor in a FPGA will work. and a multitasker will constantly see I?O interruped.
use the procssor for what the processor is good for, and do the rest in hardware.
If you want I/O speed... Or any speed.
Else you are just building an other _slow_ mobo.
and then may as well use this:
 http://www.bugblat.com/products/pif/

Without any defined spec for the application who knows?
Ad Jim says: You are about as vague as it gets on that,


Article: 156076
Subject: Re: microZed adventures
From: Tim Wescott <tim@seemywebsite.really>
Date: Fri, 22 Nov 2013 12:20:21 -0600
Links: << >>  << T >>  << A >>
On Fri, 22 Nov 2013 08:57:12 -0800, John Larkin wrote:

> We're into this signal processing project, using a microZed/ZYNQ thing
> as the compute engine.
> 
> After a week or so of work by an FPGA guy and a programmer, we can now
> actually read and write an FPGA register from a C program, and wiggle a
> bit on a connector pin. Amazingly, the uZed eval kit does not include a
> demo of this, and the default boot image does not configure the FPGA!
> 
> We're using their build tools to embed the FPGA config into the boot
> image. We'd really like to be able to have a C program read a bitstream
> file and reconfigure the FPGA, but we haven't been able to figure that
> out.
> 
> If we run a C program that wiggles a pin as fast as it can, we can do a
> write to the FPGA register about every 170 ns. Without any attempts at
> optimization (like dedicating the second ARM core to the loop) we see
> stutters (OS stealing our CPU) that last tens or hundreds of
> microseconds, occasionally a full millisecond. That might get worse if
> we run TCP/IP sessions or host web pages or something, so dedicating the
> second ARM to realtime stuff would be good.

There's not nearly enough information there, but if you're serious about 
real time you don't just throw a bag of unknown software at something and 
expect it to work.  Operating systems don't steal CPU time -- programmers 
steal CPU time, sometimes by choosing the wrong OS.

-- 

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com


Article: 156077
Subject: Re: microZed adventures
From: Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net>
Date: Fri, 22 Nov 2013 13:29:18 -0500
Links: << >>  << T >>  << A >>
On 11/22/2013 11:57 AM, John Larkin wrote:
>
>
> We're into this signal processing project, using a microZed/ZYNQ thing as the
> compute engine.
>
> After a week or so of work by an FPGA guy and a programmer, we can now actually
> read and write an FPGA register from a C program, and wiggle a bit on a
> connector pin. Amazingly, the uZed eval kit does not include a demo of this, and
> the default boot image does not configure the FPGA!
>
> We're using their build tools to embed the FPGA config into the boot image. We'd
> really like to be able to have a C program read a bitstream file and reconfigure
> the FPGA, but we haven't been able to figure that out.
>
> If we run a C program that wiggles a pin as fast as it can, we can do a write to
> the FPGA register about every 170 ns. Without any attempts at optimization (like
> dedicating the second ARM core to the loop) we see stutters (OS stealing our
> CPU) that last tens or hundreds of microseconds, occasionally a full
> millisecond. That might get worse if we run TCP/IP sessions or host web pages or
> something, so dedicating the second ARM to realtime stuff would be good.
>
>
That is amazing, especially since so many manufacturers 
(*cough*ST*cough*) respond to any query by saying "Hack up the sample code."

Cheers

Phil Hobbs

-- 
Dr Philip C D Hobbs
Principal Consultant
ElectroOptical Innovations LLC
Optics, Electro-optics, Photonics, Analog Electronics

160 North State Road #203
Briarcliff Manor NY 10510

hobbs at electrooptical dot net
http://electrooptical.net

Article: 156078
Subject: Re: microZed adventures
From: Spehro Pefhany <speffSNIP@interlogDOTyou.knowwhat>
Date: Fri, 22 Nov 2013 13:33:14 -0500
Links: << >>  << T >>  << A >>
On Fri, 22 Nov 2013 08:57:12 -0800, John Larkin
<jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

>
>
>We're into this signal processing project, using a microZed/ZYNQ thing as the
>compute engine.
>
>After a week or so of work by an FPGA guy and a programmer, we can now actually
>read and write an FPGA register from a C program, and wiggle a bit on a
>connector pin. Amazingly, the uZed eval kit does not include a demo of this, and
>the default boot image does not configure the FPGA!
>
>We're using their build tools to embed the FPGA config into the boot image. We'd
>really like to be able to have a C program read a bitstream file and reconfigure
>the FPGA, but we haven't been able to figure that out.
>
>If we run a C program that wiggles a pin as fast as it can, we can do a write to
>the FPGA register about every 170 ns. Without any attempts at optimization (like
>dedicating the second ARM core to the loop) we see stutters (OS stealing our
>CPU) that last tens or hundreds of microseconds, occasionally a full
>millisecond. That might get worse if we run TCP/IP sessions or host web pages or
>something, so dedicating the second ARM to realtime stuff would be good.

Hi, John:-

What OS is it running? Can you set the granularity of the task
switching to something reasonable like low double-digit microseconds? 

This is a very interesting chip, especially with a bit bigger FPGA
than the 7010. 


Article: 156079
Subject: Re: microZed adventures
From: Tom Gardner <spamjunk@blueyonder.co.uk>
Date: Fri, 22 Nov 2013 18:36:59 +0000
Links: << >>  << T >>  << A >>
That's very useful information since I'm seriously considering using a
MicroZed (or a Zybo - both have advantages and disadvantages for me).

Please continue to update us on your progress, and maybe write a
blog pointing us to how you overcome "issues" similar to the ones
you mention below.


On 22/11/13 16:57, John Larkin wrote:
> We're into this signal processing project, using a microZed/ZYNQ thing as the
> compute engine.
>
> After a week or so of work by an FPGA guy and a programmer, we can now actually
> read and write an FPGA register from a C program, and wiggle a bit on a
> connector pin. Amazingly, the uZed eval kit does not include a demo of this, and
> the default boot image does not configure the FPGA!
>
> We're using their build tools to embed the FPGA config into the boot image. We'd
> really like to be able to have a C program read a bitstream file and reconfigure
> the FPGA, but we haven't been able to figure that out.

Have you asked on any of the ZedBoard/MicroZed forums?


> If we run a C program that wiggles a pin as fast as it can, we can do a write to
> the FPGA register about every 170 ns.

That's a useful figure to have in mind.


> Without any attempts at optimization (like
> dedicating the second ARM core to the loop) we see stutters (OS stealing our
> CPU) that last tens or hundreds of microseconds, occasionally a full
> millisecond. That might get worse if we run TCP/IP sessions or host web pages or
> something, so dedicating the second ARM to realtime stuff would be good.

Personally I'm surprised that it is only a millisecond,
but then I'm a pessimist :)

I'm sure I'm teaching you to suck eggs, but you may
like to consider these points:
   - contention at the hardware level, particularly w.r.t.
     DRAM shared between two cores and the any FPGA logic

   - cache effects. Even a 486 with its minimal cache
     showed interrupt latencies that were sometimes
     ten times the typical latency, all due to pessimal
     caching. Larger caches would probably exhibit
     poorer worst-case performance

   - hard realtime systems are often best designed by
     determining the worst-case software main-loop time
     then once per main-loop configuring the hardware,
     and then letting the hardware deal with all
     actions for the next main-loop

For serious HRT work, personally I'd consider the XMOS
processors -- no caches nor interrupts so the dev system
can specifies the worst case performance. I don't know
about the propellor chips.

Article: 156080
Subject: Re: microZed adventures
From: Tom Gardner <spamjunk@blueyonder.co.uk>
Date: Fri, 22 Nov 2013 18:46:02 +0000
Links: << >>  << T >>  << A >>
On 22/11/13 17:35, Jan Panteltje wrote:
> On a sunny day (Fri, 22 Nov 2013 08:57:12 -0800) it happened John Larkin
> <jjlarkin@highNOTlandTHIStechnologyPART.com> wrote in
> <jj2v8997iq6amci40mr1t2g5l2e040ojgu@4ax.com>:
>
>> We're into this signal processing project, using a microZed/ZYNQ thing as the
>> compute engine.
>>
>> After a week or so of work by an FPGA guy and a programmer, we can now actually
>> read and write an FPGA register from a C program, and wiggle a bit on a
>> connector pin. Amazingly, the uZed eval kit does not include a demo of this, and
>> the default boot image does not configure the FPGA!
>>
>> We're using their build tools to embed the FPGA config into the boot image. We'd
>> really like to be able to have a C program read a bitstream file and reconfigure
>> the FPGA, but we haven't been able to figure that out.
>>
>> If we run a C program that wiggles a pin as fast as it can, we can do a write to
>> the FPGA register about every 170 ns. Without any attempts at optimization (like
>> dedicating the second ARM core to the loop) we see stutters (OS stealing our
>> CPU) that last tens or hundreds of microseconds, occasionally a full
>> millisecond. That might get worse if we run TCP/IP sessions or host web pages or
>> something, so dedicating the second ARM to realtime stuff would be good.
>
> In my view FPGA should be used for - or used as hardware solution.

I don't think there's any argument about that.

But it isn't the only consideration and doesn't invalidate the
concepts behind the Zynq chips.


> Putting a processor in a FPGA will work. and a multitasker will constantly see I?O interruped.
> use the procssor for what the processor is good for, and do the rest in hardware.
> If you want I/O speed... Or any speed.

I/O speed is only one aspect. In most cases:
   - predictable worst-case latency is a more significant parameter
   - precision relative timing is a more significant parameter
   - any processor with a cache /will/ cause problems w.r.t.
     worst-case software guarantees


> Else you are just building an other _slow_ mobo.
> and then may as well use this:
>   http://www.bugblat.com/products/pif/

If you know of any boards that can be added to an RPi or something
similar and contains an FPGA that can capture three digital inputs
at >=1 GSa/s each, please let me know.

> Without any defined spec for the application who knows?
> Ad Jim says: You are about as vague as it gets on that,

Sure, but the poster didn't want advice about his application!


Article: 156081
Subject: Re: microZed adventures
From: Tom Gardner <spamjunk@blueyonder.co.uk>
Date: Fri, 22 Nov 2013 18:51:14 +0000
Links: << >>  << T >>  << A >>
On 22/11/13 17:35, Jan Panteltje wrote:
> Else you are just building an other _slow_ mobo.
> and then may as well use this:
>   http://www.bugblat.com/products/pif/

What's the peak rate at which the RPi could
read data from the FPGA and copy it to DRAM?

I haven't had rime to understand the RPI's i/o, yet.
My concern is that while there are several i/o bits
available on the GPIO connector, they can't all be
read simultaneously. If true then GPIO i/o would be
reduced to the level of a bit-banged interface!


Article: 156082
Subject: Re: microZed adventures
From: John Larkin <jlarkin@highlandtechnology.com>
Date: Fri, 22 Nov 2013 10:58:58 -0800
Links: << >>  << T >>  << A >>
On Fri, 22 Nov 2013 17:35:52 GMT, Jan Panteltje
<pNaonStpealmtje@yahoo.com> wrote:

>On a sunny day (Fri, 22 Nov 2013 08:57:12 -0800) it happened John Larkin
><jjlarkin@highNOTlandTHIStechnologyPART.com> wrote in
><jj2v8997iq6amci40mr1t2g5l2e040ojgu@4ax.com>:
>
>>We're into this signal processing project, using a microZed/ZYNQ thing as the
>>compute engine.
>>
>>After a week or so of work by an FPGA guy and a programmer, we can now actually
>>read and write an FPGA register from a C program, and wiggle a bit on a
>>connector pin. Amazingly, the uZed eval kit does not include a demo of this, and
>>the default boot image does not configure the FPGA!
>>
>>We're using their build tools to embed the FPGA config into the boot image. We'd
>>really like to be able to have a C program read a bitstream file and reconfigure
>>the FPGA, but we haven't been able to figure that out.
>>
>>If we run a C program that wiggles a pin as fast as it can, we can do a write to
>>the FPGA register about every 170 ns. Without any attempts at optimization (like
>>dedicating the second ARM core to the loop) we see stutters (OS stealing our
>>CPU) that last tens or hundreds of microseconds, occasionally a full
>>millisecond. That might get worse if we run TCP/IP sessions or host web pages or
>>something, so dedicating the second ARM to realtime stuff would be good.
>
>In my view FPGA should be used for - or used as hardware solution.
>Putting a processor in a FPGA will work. and a multitasker will constantly see I?O interruped.
>use the procssor for what the processor is good for, and do the rest in hardware.
>If you want I/O speed... Or any speed.
>Else you are just building an other _slow_ mobo.
>and then may as well use this:
> http://www.bugblat.com/products/pif/
>
>Without any defined spec for the application who knows?

There is a perfectly good, detailed spec. You can't see it.

>Ad Jim says: You are about as vague as it gets on that,

I'm building a box that accepts an analog input, crunches it in
complex ways, and makes an analog output. ZED is an ideal platform.
All that nasty DRAM and flash and power supply stuff is done, and it
boots Linux out of the box. Having the dual-core ARM and the FPGA on
the same chip is cool, because it avoids a lot of interconnect between
two chips on a board. Unfortunately, ARM-FPGA transactions still cross
a clock boundary, so aren't blindingly fast.


-- 

John Larkin         Highland Technology, Inc

jlarkin at highlandtechnology dot com
http://www.highlandtechnology.com

Precision electronic instrumentation
Picosecond-resolution Digital Delay and Pulse generators
Custom laser drivers and controllers
Photonics and fiberoptic TTL data links
VME thermocouple, LVDT, synchro   acquisition and simulation

Article: 156083
Subject: Re: microZed adventures
From: Tim Wescott <tim@seemywebsite.really>
Date: Fri, 22 Nov 2013 13:06:20 -0600
Links: << >>  << T >>  << A >>
On Fri, 22 Nov 2013 13:33:14 -0500, Spehro Pefhany wrote:

> On Fri, 22 Nov 2013 08:57:12 -0800, John Larkin
> <jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:
> 
> 
>>
>>We're into this signal processing project, using a microZed/ZYNQ thing
>>as the compute engine.
>>
>>After a week or so of work by an FPGA guy and a programmer, we can now
>>actually read and write an FPGA register from a C program, and wiggle a
>>bit on a connector pin. Amazingly, the uZed eval kit does not include a
>>demo of this, and the default boot image does not configure the FPGA!
>>
>>We're using their build tools to embed the FPGA config into the boot
>>image. We'd really like to be able to have a C program read a bitstream
>>file and reconfigure the FPGA, but we haven't been able to figure that
>>out.
>>
>>If we run a C program that wiggles a pin as fast as it can, we can do a
>>write to the FPGA register about every 170 ns. Without any attempts at
>>optimization (like dedicating the second ARM core to the loop) we see
>>stutters (OS stealing our CPU) that last tens or hundreds of
>>microseconds, occasionally a full millisecond. That might get worse if
>>we run TCP/IP sessions or host web pages or something, so dedicating the
>>second ARM to realtime stuff would be good.
> 
> Hi, John:-
> 
> What OS is it running? Can you set the granularity of the task switching
> to something reasonable like low double-digit microseconds?

What programming model are you assuming?

The RTOS's that I'm used to using make it very easy to make RTOS tasks 
event-driven off of interrupts, so the critical timing parameter for the 
OS is how rapidly it can reschedule a task after such an interrupt.

Note that for every RTOS I've ever worked with, a programmer can cut the 
RTOS off at the knees by turning off interrupts and doing some lengthly 
process, or by doing lengthly processing in an ISR on a processor that 
automatically turns off interrupts on interrupt.  No interrupts means the 
RTOS has no way of getting its hands on the processor.  

This "interrupt off" time can be essential if you have something that 
absolutely, positively must be done without interrupts, and it can be a 
valuable way to make an operation atomic if it happens to create less 
latency than using the OS's mutex scheme.  But in the hands of a lazy 
programmer, it can absolutely kill real-time capability (as, for that 
matter, can misuse of mutexes or any number of other OS features).

-- 

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com


Article: 156084
Subject: Re: microZed adventures
From: Tim Wescott <tim@seemywebsite.really>
Date: Fri, 22 Nov 2013 13:10:38 -0600
Links: << >>  << T >>  << A >>
On Fri, 22 Nov 2013 18:36:59 +0000, Tom Gardner wrote:

> That's very useful information since I'm seriously considering using a
> MicroZed (or a Zybo - both have advantages and disadvantages for me).
> 
> Please continue to update us on your progress, and maybe write a blog
> pointing us to how you overcome "issues" similar to the ones you mention
> below.
> 
> 
> On 22/11/13 16:57, John Larkin wrote:
>> We're into this signal processing project, using a microZed/ZYNQ thing
>> as the compute engine.
>>
>> After a week or so of work by an FPGA guy and a programmer, we can now
>> actually read and write an FPGA register from a C program, and wiggle a
>> bit on a connector pin. Amazingly, the uZed eval kit does not include a
>> demo of this, and the default boot image does not configure the FPGA!
>>
>> We're using their build tools to embed the FPGA config into the boot
>> image. We'd really like to be able to have a C program read a bitstream
>> file and reconfigure the FPGA, but we haven't been able to figure that
>> out.
> 
> Have you asked on any of the ZedBoard/MicroZed forums?
> 
> 
>> If we run a C program that wiggles a pin as fast as it can, we can do a
>> write to the FPGA register about every 170 ns.
> 
> That's a useful figure to have in mind.
> 
> 
>> Without any attempts at optimization (like dedicating the second ARM
>> core to the loop) we see stutters (OS stealing our CPU) that last tens
>> or hundreds of microseconds, occasionally a full millisecond. That
>> might get worse if we run TCP/IP sessions or host web pages or
>> something, so dedicating the second ARM to realtime stuff would be
>> good.
> 
> Personally I'm surprised that it is only a millisecond,
> but then I'm a pessimist :)
> 
> I'm sure I'm teaching you to suck eggs, but you may like to consider
> these points:
>    - contention at the hardware level, particularly w.r.t.
>      DRAM shared between two cores and the any FPGA logic
> 
>    - cache effects. Even a 486 with its minimal cache
>      showed interrupt latencies that were sometimes ten times the
>      typical latency, all due to pessimal caching. Larger caches would
>      probably exhibit poorer worst-case performance
> 
>    - hard realtime systems are often best designed by
>      determining the worst-case software main-loop time then once per
>      main-loop configuring the hardware, and then letting the hardware
>      deal with all actions for the next main-loop
> 
> For serious HRT work, personally I'd consider the XMOS processors -- no
> caches nor interrupts so the dev system can specifies the worst case
> performance. I don't know about the propellor chips.

Probably more egg sucking instruction, but if the instruction cache is 
big enough and allows it, you can lock down the lines that contain the 
critical ISRs and OS bits.  You can only take this so far: at some point 
you need to either throw your hands up in despair, or find a way to fork 
that job into the FPGA.

At the price of making your software inscrutable, and slowing down 
everything else, etc., etc., etc.

-- 

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com


Article: 156085
Subject: Re: microZed adventures
From: John Larkin <jlarkin@highlandtechnology.com>
Date: Fri, 22 Nov 2013 11:12:00 -0800
Links: << >>  << T >>  << A >>
On Fri, 22 Nov 2013 13:33:14 -0500, Spehro Pefhany
<speffSNIP@interlogDOTyou.knowwhat> wrote:

>On Fri, 22 Nov 2013 08:57:12 -0800, John Larkin
><jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:
>
>>
>>
>>We're into this signal processing project, using a microZed/ZYNQ thing as the
>>compute engine.
>>
>>After a week or so of work by an FPGA guy and a programmer, we can now actually
>>read and write an FPGA register from a C program, and wiggle a bit on a
>>connector pin. Amazingly, the uZed eval kit does not include a demo of this, and
>>the default boot image does not configure the FPGA!
>>
>>We're using their build tools to embed the FPGA config into the boot image. We'd
>>really like to be able to have a C program read a bitstream file and reconfigure
>>the FPGA, but we haven't been able to figure that out.
>>
>>If we run a C program that wiggles a pin as fast as it can, we can do a write to
>>the FPGA register about every 170 ns. Without any attempts at optimization (like
>>dedicating the second ARM core to the loop) we see stutters (OS stealing our
>>CPU) that last tens or hundreds of microseconds, occasionally a full
>>millisecond. That might get worse if we run TCP/IP sessions or host web pages or
>>something, so dedicating the second ARM to realtime stuff would be good.
>
>Hi, John:-
>
>What OS is it running? Can you set the granularity of the task
>switching to something reasonable like low double-digit microseconds? 
>
>This is a very interesting chip, especially with a bit bigger FPGA
>than the 7010. 

We're running the Linux that comes installed on the uZed.

There's probably some way to make Linux run the realtime app on the
second ARM core. I guess we could even force that to run bare-metal
code if we had to. The current application will probably run fine if
we do nothing special. We'll have some FIFOs in the FPGA to buffer
stuff, so the occasional millisecond or so timeout won't break
anything.

I have been pressured for some time now to run C apps inside an FPGA,
in a soft core processor, microBlaze or whatever. That never made
sense to me, eating all those FPGA resources to get a pokey CPU with a
tiny memory space. The new FPGA chips with hard ARM cores, cache, ram,
and DRAM controllers mean it's time to do it.


-- 

John Larkin         Highland Technology, Inc

jlarkin at highlandtechnology dot com
http://www.highlandtechnology.com

Precision electronic instrumentation
Picosecond-resolution Digital Delay and Pulse generators
Custom laser drivers and controllers
Photonics and fiberoptic TTL data links
VME thermocouple, LVDT, synchro   acquisition and simulation

Article: 156086
Subject: Re: microZed adventures
From: John Larkin <jlarkin@highlandtechnology.com>
Date: Fri, 22 Nov 2013 11:16:48 -0800
Links: << >>  << T >>  << A >>
On Fri, 22 Nov 2013 12:20:21 -0600, Tim Wescott
<tim@seemywebsite.really> wrote:

>On Fri, 22 Nov 2013 08:57:12 -0800, John Larkin wrote:
>
>> We're into this signal processing project, using a microZed/ZYNQ thing
>> as the compute engine.
>> 
>> After a week or so of work by an FPGA guy and a programmer, we can now
>> actually read and write an FPGA register from a C program, and wiggle a
>> bit on a connector pin. Amazingly, the uZed eval kit does not include a
>> demo of this, and the default boot image does not configure the FPGA!
>> 
>> We're using their build tools to embed the FPGA config into the boot
>> image. We'd really like to be able to have a C program read a bitstream
>> file and reconfigure the FPGA, but we haven't been able to figure that
>> out.
>> 
>> If we run a C program that wiggles a pin as fast as it can, we can do a
>> write to the FPGA register about every 170 ns. Without any attempts at
>> optimization (like dedicating the second ARM core to the loop) we see
>> stutters (OS stealing our CPU) that last tens or hundreds of
>> microseconds, occasionally a full millisecond. That might get worse if
>> we run TCP/IP sessions or host web pages or something, so dedicating the
>> second ARM to realtime stuff would be good.
>
>There's not nearly enough information there, but if you're serious about 
>real time you don't just throw a bag of unknown software at something and 
>expect it to work.  Operating systems don't steal CPU time -- programmers 
>steal CPU time, sometimes by choosing the wrong OS.

It's looking that the Linux that comes with the uZed will work fine
for the current application. Is Linux "a bag of unknown software"?

We need to do TCP/IP stuff, and manage waveform data files, run BIST,
things like that, and using Linux sure makes that part easy. A lot of
the functionality could be in ARM code or might be in the FPGA, but
I'm moving as much as possible into the ARM. C is a lot easier to code
and compile than VHDL.




-- 

John Larkin         Highland Technology, Inc

jlarkin at highlandtechnology dot com
http://www.highlandtechnology.com

Precision electronic instrumentation
Picosecond-resolution Digital Delay and Pulse generators
Custom laser drivers and controllers
Photonics and fiberoptic TTL data links
VME thermocouple, LVDT, synchro   acquisition and simulation

Article: 156087
Subject: Re: microZed adventures
From: Tom Gardner <spamjunk@blueyonder.co.uk>
Date: Fri, 22 Nov 2013 19:32:23 +0000
Links: << >>  << T >>  << A >>
On 22/11/13 19:10, Tim Wescott wrote:
> On Fri, 22 Nov 2013 18:36:59 +0000, Tom Gardner wrote:
>> For serious HRT work, personally I'd consider the XMOS processors -- no
>> caches nor interrupts so the dev system can specifies the worst case
>> performance. I don't know about the propellor chips.
>
> Probably more egg sucking instruction, but if the instruction cache is
> big enough and allows it, you can lock down the lines that contain the
> critical ISRs and OS bits.

I know the i960 allowed you to do that. Which more modern processors do?
(No, I'm not after an exhaustive list!)


Article: 156088
Subject: Re: microZed adventures
From: Jan Panteltje <pNaonStpealmtje@yahoo.com>
Date: Fri, 22 Nov 2013 19:33:38 GMT
Links: << >>  << T >>  << A >>
On a sunny day (Fri, 22 Nov 2013 10:58:58 -0800) it happened John Larkin
<jlarkin@highlandtechnology.com> wrote in
<j2av89lv8f4sbddppohnj8h1784js2c23n@4ax.com>:

>>Else you are just building an other _slow_ mobo.
>>and then may as well use this:
>> http://www.bugblat.com/products/pif/
>>
>>Without any defined spec for the application who knows?
>
>There is a perfectly good, detailed spec. You can't see it.
>
>>Ad Jim says: You are about as vague as it gets on that,
>
>I'm building a box that accepts an analog input, crunches it in
>complex ways, and makes an analog output. ZED is an ideal platform.
>All that nasty DRAM and flash and power supply stuff is done, and it
>boots Linux out of the box. Having the dual-core ARM and the FPGA on
>the same chip is cool, because it avoids a lot of interconnect between
>two chips on a board. Unfortunately, ARM-FPGA transactions still cross
>a clock boundary, so aren't blindingly fast.

Well you state 120 ns, I dunno,
but I can flip 10M Hz that makes 50 nS on 50 nS off on the Raspi,
without any FPGA, using GPIO.
I posted about those test results here, maybe it was actually 12 MHz,
That allows me to send real time DVB-S signals from GPIO.
because of the kernel task switching that you noticed, I added 8kx9 FIFO
to get a constant output stream.
 http://panteltje.com/panteltje/raspberry_pi_dvb-s_transmitter/sendiq.c
That should not be that hard for a hardware designer,.
Considering the insane price of that Xilinx thing the choice should be even easier.
Now that free Mathematica runs on it what cannot be done...
But Mathematica is of course very slow on it, but no math limits.
When it MUST be FPGA for some part of the project bugblat can for example do your vector math.
 http://www.bugblat.com/products/pif/
It has also enough on board RAM to make a FIFO IIRC.
What your programmers took a WEEK?? to do is already working in several languages there.

I know the value of saying 'Look We Have The Latest ZZZZZZZ' and that _could_ impress a customer,
IF he knows something, but usually they do not care how you do it if it contained horse shit and beats
their expectations fine, I think that those were Kennedy's ('s OK now? hehe) words,

Nothing to argue, It is your show. There are many channels.
I have heard Monty Python wants to do a come back, I have never even watched the stuff ever.

So, I will spend some time playing with Wolfram Language (never used that) and Mathematica on my Raspi.
Very nice if him to make it available for free.

Article: 156089
Subject: Re: microZed adventures
From: Tom Gardner <spamjunk@blueyonder.co.uk>
Date: Fri, 22 Nov 2013 19:47:23 +0000
Links: << >>  << T >>  << A >>
On 22/11/13 19:33, Jan Panteltje wrote:
> Well you state 120 ns, I dunno,
> but I can flip 10M Hz that makes 50 nS on 50 nS off on the Raspi,
> without any FPGA, using GPIO.

Small point: you're comparing frequency and conductance :)

More interesting question, assuming you were actually
talking about times, what's the typical and guaranteed
tolerance on those times?




Article: 156090
Subject: Re: Mill: FPGA version?
From: Ivan Godard <ivan@ootbcomp.com>
Date: Fri, 22 Nov 2013 11:48:07 -0800
Links: << >>  << T >>  << A >>
On 11/22/2013 7:20 AM, Joseph H Allen wrote:
> I've been wondering if there could be a successful (not too large,
> reasonable clock frequency) soft-core FPGA version of a low end variant of
> the Mill.  One issue with FPGAs is that only two-port memory is available.
> It's not so hard to make extra read ports with these, but extra write ports
> are a big problem.  This pretty much precludes any sane implementation of
> Tomasulo's algorithm for OOE.
>
> If I understand "the belt" properly, the number of write ports is set to
> just the number of pipelines (or maybe to two to support the spilling).  The
> pipes need to be able to read from anywhere, but we can do that with extra
> read ports and one extra mux stage.  Anyway, it seems like a nice way to get
> superscalar on an FPGA.
>


The belt is not implemented as SRAM, nor as a shift register. The belt
is implemented in the same manner as a conventional register bypass,
with bypass muxes.

In the case of a conventional, the bypass mux selects are based upon
qualified equals comparators. So if a source of the current operation
has the same register number as the result of a previous operation, then
that previous value is used as long as it is not old enough to have been
written to the register file.

In the case of the belt, the belt result selects are based upon
qualified equals comparators also, but what is being compared are belt
"temporal location" tags. The register file isn't used roughly 80% of
the time, so why use it and its associated "physical location" tags? A
register file can take 3 or 4 clocks for a result written to it to show
up at a functional unit's source. That turns out to be on the order of
average life time of a result's "temporal location" tag before it gets
"incremented off the end" of the belt.

So in the case of both a conventional bypass and the belt, each
functional unit's source has a multiplexer to select from each possible
slot result output. So each slot source has a quick path thru the result
select mux for latency 1 results, and nearly a full pipe stage path thru
the mux for all the rest.

I hope that answers your question - I wasn't sure if it was regarding
"normal" belt operation or spilling/filling for calls, returns,
interrupts, traps and the like.

-- 
Arthur Kahlich
Chief Engineer
Out-of-the-Box Computing

Article: 156091
Subject: Re: microZed adventures
From: Joerg <invalid@invalid.invalid>
Date: Fri, 22 Nov 2013 12:08:37 -0800
Links: << >>  << T >>  << A >>
Phil Hobbs wrote:
> On 11/22/2013 11:57 AM, John Larkin wrote:
>>
>>
>> We're into this signal processing project, using a microZed/ZYNQ thing
>> as the
>> compute engine.
>>
>> After a week or so of work by an FPGA guy and a programmer, we can now
>> actually
>> read and write an FPGA register from a C program, and wiggle a bit on a
>> connector pin. Amazingly, the uZed eval kit does not include a demo of
>> this, and
>> the default boot image does not configure the FPGA!
>>
>> We're using their build tools to embed the FPGA config into the boot
>> image. We'd
>> really like to be able to have a C program read a bitstream file and
>> reconfigure
>> the FPGA, but we haven't been able to figure that out.
>>
>> If we run a C program that wiggles a pin as fast as it can, we can do
>> a write to
>> the FPGA register about every 170 ns. Without any attempts at
>> optimization (like
>> dedicating the second ARM core to the loop) we see stutters (OS
>> stealing our
>> CPU) that last tens or hundreds of microseconds, occasionally a full
>> millisecond. That might get worse if we run TCP/IP sessions or host
>> web pages or
>> something, so dedicating the second ARM to realtime stuff would be good.
>>
>>
> That is amazing, especially since so many manufacturers
> (*cough*ST*cough*) respond to any query by saying "Hack up the sample
> code."
> 

Or, as in my case about am ARM controller and a few instances before, ST
did not answer at all. So they flew out of the design.

-- 
Regards, Joerg

http://www.analogconsultants.com/

Article: 156092
Subject: Re: FPGA Cryptosystem
From: Jon Elson <jmelson@wustl.edu>
Date: Fri, 22 Nov 2013 14:12:00 -0600
Links: << >>  << T >>  << A >>
youngejoe wrote:


> With FPGAs, for the above mentioned project, would I would require two
> development boards connected to PC1 and PC2? My initial concept was to use
> 2 FPGAs resembling 2 flash drives.
> 
No, I don't think so.  Since your proposed scheme is carried out at
two locations at different times, no reason you can't do that for
testing.  Load the encryption config into the FPGA, and encrypt
a message, store on the computer.  Then, load the decryption
config into the same FPGA, and decrypt the stored secret message.
> PGP is very interesting - employing both asymmetric and symmetric
> encryption as well as digital signatures etc. I like the idea behind it.
> As its software based, would it be difficult resembling it in hardware,
> say on FPGAs?
I'm not enough of an expert to know.  But, most encryption algorithms
are based on XORs and simple integer arithmetic, so most likely it
would not be hard at all to implement in an FPGA.

Jon

Article: 156093
Subject: Re: FPGA Cryptosystem
From: Theo Markettos <theom+news@chiark.greenend.org.uk>
Date: 22 Nov 2013 20:14:35 +0000 (GMT)
Links: << >>  << T >>  << A >>
youngejoe <cyounge28@gmail.com> wrote:
> The main guideline I'm trying to stick is an FPGA based cryptosystem.

IMO there things to think about, in descending order of importance:

1. How you're going to get the data in and out of the cryptosystem
2. What are the constraints on performance
3. What crypto you're going to do

Don't get distracted about 3, that's the easy bit.

If you aren't too fussed on speed, I'd try and get a soft processor system
up on the FPGA, for example NIOS II or Microblaze.  If you already have an
FPGA board, maybe there's a demo project.  This will give you a familiar
means of taking to something on the board and pushing data in and out, using
something like C.  There will be lots of what seems to be voodoo in getting
there, but hopefully someone else has done the voodoo for you.  You might
learn something along the way too.

Then you can make peripherals that do crypto, and plug them into the system.

If you're doing it bare metal, you need to push data in and out yourself. 
The simplest way might be a parallel port connected to some pins on the
FPGA, and maybe another parallel port to collect the answer.  But you'd
probably have to do some soldering for this - FPGAs don't come with handy
parallel ports as standard (even ones routed over USB).

If you were making, say, a secure telephone then it would be easier because
your board might have an ADC that would deliver regular audio samples that
you could drive through your crypto and send down a wire to the other end. 
Then you can do everything in the FPGA without needing much help from a
processor (key management is the tricky bit).

Once you have something that delivers a pile of bits in and collects a pile
of bits at the output, then you can start thinking about crypto.

If you want to make something useful to other people, then you need to pick
an application where FPGA is well suited.  PCIe crypto accelerator for SSL,
for example.  But that's more complex and not good as a starter project.

Theo

Article: 156094
Subject: Re: Granularity of components for FPGA synthesis?
From: Jon Elson <jmelson@wustl.edu>
Date: Fri, 22 Nov 2013 14:14:38 -0600
Links: << >>  << T >>  << A >>
Kip Ingram wrote:


> Hi Jurgen.  Sorry to join the party late.  I tend to buck the
> conventional wisdom on things like this.  I did my first programmable
> logic design back in the 1980's when we used PALs (22V10, etc.)
> Generally you took *total* control of your design.  You could use
> equations, but even when I did I liked knowing exactly what was going on
> with each and every fuse.
With even the smallest modern FPGAs having 500K + "fuses", ie. configuration
bits, it would be a very daunting task to know what they all do!
Also, for design security and manufacturer's protection of their
internal IP, they are getting VERY secretive of the internals.

Jon

Article: 156095
Subject: Re: microZed adventures
From: John Larkin <jlarkin@highlandtechnology.com>
Date: Fri, 22 Nov 2013 12:57:23 -0800
Links: << >>  << T >>  << A >>
On Fri, 22 Nov 2013 19:33:38 GMT, Jan Panteltje
<pNaonStpealmtje@yahoo.com> wrote:

>On a sunny day (Fri, 22 Nov 2013 10:58:58 -0800) it happened John Larkin
><jlarkin@highlandtechnology.com> wrote in
><j2av89lv8f4sbddppohnj8h1784js2c23n@4ax.com>:
>
>>>Else you are just building an other _slow_ mobo.
>>>and then may as well use this:
>>> http://www.bugblat.com/products/pif/
>>>
>>>Without any defined spec for the application who knows?
>>
>>There is a perfectly good, detailed spec. You can't see it.
>>
>>>Ad Jim says: You are about as vague as it gets on that,
>>
>>I'm building a box that accepts an analog input, crunches it in
>>complex ways, and makes an analog output. ZED is an ideal platform.
>>All that nasty DRAM and flash and power supply stuff is done, and it
>>boots Linux out of the box. Having the dual-core ARM and the FPGA on
>>the same chip is cool, because it avoids a lot of interconnect between
>>two chips on a board. Unfortunately, ARM-FPGA transactions still cross
>>a clock boundary, so aren't blindingly fast.
>
>Well you state 120 ns, I dunno,
>but I can flip 10M Hz that makes 50 nS on 50 nS off on the Raspi,
>without any FPGA, using GPIO.

I haven't tried it, but I'm sure the 600 MHz ARM dio pins are faster.
The ARM transactions into the FPGA pass through the AMBA bus thing
into the FPGA clock domain, and that slows things down. It's probably
one of those modern situations that trades DMA throughput against
single-transaction latency.


>I posted about those test results here, maybe it was actually 12 MHz,
>That allows me to send real time DVB-S signals from GPIO.
>because of the kernel task switching that you noticed, I added 8kx9 FIFO
>to get a constant output stream.
> http://panteltje.com/panteltje/raspberry_pi_dvb-s_transmitter/sendiq.c
>That should not be that hard for a hardware designer,.
>Considering the insane price of that Xilinx thing the choice should be even easier.

The uZed is only about $200, a pretty good deal for all the stuff that
it does. It's something like a 12 or 14 layer board.


>Now that free Mathematica runs on it what cannot be done...
>But Mathematica is of course very slow on it, but no math limits.
>When it MUST be FPGA for some part of the project bugblat can for example do your vector math.
> http://www.bugblat.com/products/pif/
>It has also enough on board RAM to make a FIFO IIRC.
>What your programmers took a WEEK?? to do is already working in several languages there.
>
>I know the value of saying 'Look We Have The Latest ZZZZZZZ' and that _could_ impress a customer,
>IF he knows something, but usually they do not care how you do it if it contained horse shit and beats
>their expectations fine, I think that those were Kennedy's ('s OK now? hehe) words,
>
>Nothing to argue, It is your show. There are many channels.
>I have heard Monty Python wants to do a come back, I have never even watched the stuff ever.

They were fabulous. Dead parrots. Gas cookers. Exploding version of
the 1812 Overture. Lumberjack Song. Twit Races. Cartoons. Get some
DVDs.


-- 

John Larkin         Highland Technology, Inc

jlarkin at highlandtechnology dot com
http://www.highlandtechnology.com

Precision electronic instrumentation
Picosecond-resolution Digital Delay and Pulse generators
Custom laser drivers and controllers
Photonics and fiberoptic TTL data links
VME thermocouple, LVDT, synchro   acquisition and simulation

Article: 156096
Subject: Re: microZed adventures
From: mroberds@att.net
Date: Fri, 22 Nov 2013 20:59:57 +0000 (UTC)
Links: << >>  << T >>  << A >>
In sci.electronics.design John Larkin <jlarkin@highlandtechnology.com> wrote:
> We're running the Linux that comes installed on the uZed.

This is more true for desktop-y Linux than it is for embedded, but
sometimes it pays to recompile the kernel and customize it to your
needs.  There are some choices in the scheduler that can be tweaked
this way.  This can also be a good way to get a kernel that just
doesn't work at all, so make sure you have a way to go back to stock.

The kernel configuration for plain old x86 is pretty good about
dependencies: if you turn on kernel feature X, it will tell you that
you need to turn on Y and Z as well to get X to work, and maybe even do
it for you.  Linux for embedded CPUs varies - sometimes it's like x86,
and sometimes there is precisely one (undocumented) combination of
kernel build options that actually works.  Sometimes the documentation
exists, but it's on the wrong side of an E[STF]L barrier.

Back to your original point, sometimes the lack of sample code is down
to the vendor being clueless.  Sometimes there is another reason - if
you get the hard sell for using their approved development partners,
that's a hint.

> There's probably some way to make Linux run the realtime app on the
> second ARM core.

taskset(1) from the command line if they gave you that,
sched_setaffinity(2) if they didn't.

> I guess we could even force that to run bare-metal code if we had to.

I am pretty sure that you can tell Linux at boot time to not use some
of the cores, but I'm not sure how you would then get something else
to run on the cores that Linux isn't suing.

> I have been pressured for some time now to run C apps inside an FPGA,
> in a soft core processor, microBlaze or whatever. That never made
> sense to me, eating all those FPGA resources to get a pokey CPU with
> a tiny memory space.

I heard this too, and my objection (from the software side) was that in
my experience, the hardware guys I worked with tended to be pretty bad
at revision control for FPGAs.  Part of this was down to the FPGA tools,
and part of it was down to an "it's hardware and we'll never have to
change it" attitude, so they wouldn't leave a way to update the soft
core over the phone.  I think I have ranted about this before.  :)

I like the hard core idea better, as long as the stuff that runs on the
hard core loads up like normal, and is not embedded in some huge binary
blob puked out by the FPGA tools.

Matt Roberds


Article: 156097
Subject: Re: Mill: FPGA version?
From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Date: Fri, 22 Nov 2013 21:37:43 +0000 (UTC)
Links: << >>  << T >>  << A >>
In comp.arch.fpga Joseph H Allen <jhallen@theworld.com> wrote:
> I've been wondering if there could be a successful (not too large,
> reasonable clock frequency) soft-core FPGA version of a low end variant of
> the Mill.  One issue with FPGAs is that only two-port memory is available. 
> It's not so hard to make extra read ports with these, but extra write 
> ports are a big problem.  This pretty much precludes any sane 
> implementation of Tomasulo's algorithm for OOE.

I have wondered about an FPGA implementation of the 360/91,
I believe where Tomasulo's algorithm was developed.
As far as I know, though, not enough details are available.

-- glen

Article: 156098
Subject: Re: legacy Xilinx software
From: matt.lettau@gmail.com
Date: Fri, 22 Nov 2013 14:28:35 -0800 (PST)
Links: << >>  << T >>  << A >>
On Monday, November 11, 2013 2:40:56 PM UTC-8, Jon Elson wrote:
> I've been using Ise WebPack 10.1 for some time, as it is the last version
>=20
> that supported the Spartan 2E chips.  I don't do a lot on the
>=20
> 2E anymore, but there are a number of units in the field with
>=20
> those chips.  Anyway, I'm still using Spartan 3A and 3AN, as
>=20
> well as 9500XL and Coolrunner II CPLDs.  I recently realized
>=20
> my main desktop computer has been running 12 years straight,
>=20
> and is probably living on borrowed time.  So, I'm trying to
>=20
> set up a new system.  Xilinx doesn't allow WebPack 10.1 to
>=20
> run on X86_64 systems, but some people report workarounds.
>=20
> So far, I have not gotten it to install on Linux.  I
>=20
> installed the 32-bit libraries and bypassed the first-level
>=20
> setup script, but I get to a page where you enter your
>=20
> Xilinx registration code, and then it allows you to select the
>=20
> components you want, but WebPack is greyed out.  So, apparently
>=20
> at that script it also detects the 64-bit system.
>=20
>=20
>=20
> Then, I tried downloading the current version of Vivado WebPack,
>=20
> but it supports only a VERY small range of -7 parts, and no
>=20
> CPLDs.  Didn't seem like a very useful piece of software.
>=20
> And, there's no way I can afford $4000 to be allowed to run
>=20
> 5-year old software.  What gives?  WebPack used to be a completely
>=20
> viable option for developing on the mid-range parts from
>=20
> several families.
>=20
>=20
>=20
>   I'm going to try copying over all my files from the 10.1
>=20
> install on the old machine and see if that works.  If not, does
>=20
> anyone know what older Ise Webpack will support Spartan 3A
>=20
> plus CPLD's and run on a 64-bit Linux system?  I tried looking
>=20
> this up on Xilinx.com, but it was REALLY difficult to find any
>=20
> mention of what chips are supported by what software.
>=20
>=20
>=20
> Thanks for any tips!
>=20
>=20
>=20
> Jon

I have no issues running the command line 10.1 tools on Win7pro 64 bit. I'v=
e no use for any of the GUI components, so I can't vouch for that. I don't =
install though. I keep a zip file that is the installation folder of the 10=
.1 tools from long ago. I mount that as a drive using a zip mount utility. =
I point my $XILINX environment variable to the mounted drive, and I can run=
 the command line tools just fine. I preserve a number of the old versions =
of tools this way to support various old designs from time to time. I just =
carry those zip files forward to new machines. Very easy to migrate.

Article: 156099
Subject: Re: Mill: FPGA version?
From: jhallen@TheWorld.com (Joseph H Allen)
Date: Fri, 22 Nov 2013 22:55:35 +0000 (UTC)
Links: << >>  << T >>  << A >>
In article <l6oir7$am4$1@speranza.aioe.org>,
glen herrmannsfeldt  <gah@ugcs.caltech.edu> wrote:
>In comp.arch.fpga Joseph H Allen <jhallen@theworld.com> wrote:
>> I've been wondering if there could be a successful (not too large,
>> reasonable clock frequency) soft-core FPGA version of a low end variant of
>> the Mill.  One issue with FPGAs is that only two-port memory is available. 
>> It's not so hard to make extra read ports with these, but extra write 
>> ports are a big problem.  This pretty much precludes any sane 
>> implementation of Tomasulo's algorithm for OOE.

>I have wondered about an FPGA implementation of the 360/91,
>I believe where Tomasulo's algorithm was developed.
>As far as I know, though, not enough details are available.

Heh, if you are really brave, start Herrmannsfeldt Corporation (like Amdahl
Corporation): make an FPGA implementation of any recent (64-bit) IBM
mainframe- probably there is a market even if it's a slow, simple in-order
single-issue design.  Use the Hercules emulator as the predictor in your
design verification suite.

-- 
/*  jhallen@world.std.com AB1GO */                        /* Joseph H. Allen */
int a[1817];main(z,p,q,r){for(p=80;q+p-80;p-=2*a[p])for(z=9;z--;)q=3&(r=time(0)
+r*57)/7,q=q?q-1?q-2?1-p%79?-1:0:p%79-77?1:0:p<1659?79:0:p>158?-79:0,q?!a[p+q*2
]?a[p+=a[p+=q]=q]=q:0:0;for(;q++-1817;)printf(q%79?"%c":"%c\n"," #"[!a[q-1]]);}



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