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 158700

Article: 158700
Subject: Re: FPGA Internal or external USB PHY/SIE ??
From: KJ <kkjennings@sbcglobal.net>
Date: Sun, 27 Mar 2016 17:56:43 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Sunday, March 27, 2016 at 11:25:52 AM UTC-4, SJA wrote:
> We need to interface 8 to 16 embedded USB 2.0 devices to an FPGA.
>=20
> We could just use external ULPI transceivers but am wondering
> what FPGAs have transceivers that are USB 2.0 compatible and if
> the internal USB SIE gate count is low enough to make it cost
> effective to wire the USB devices directly to the FPGA. (Would save
> lots of pins ....)
>=20

You'll probably find that it is not cost effective to use a full USB implem=
entation inside an FPGA, unless it comes as hard logic already in the devic=
e.  If you use an external PHY, use something with a ULPI interface to mini=
mize the pin count (12 pins if I recall correctly).

If you can get by with a relatively 'slow for USB 2' speeds, you might be b=
etter off using an external USB UART like this http://www.ftdichip.com/Prod=
ucts/ICs/FT232R.htm from FTDI.  The ones I've seen will top out at around 3=
 MBaud, but they are USB 2, the FPGA logic to support is trivial and you ha=
ve a relatively small, simple interface to the part.

Kevin Jennings

Article: 158701
Subject: Re: Vivado MIG says "Design entry" is VERILOG, how to change to VHDL?
From: GaborSzakacs <gabor@alacron.com>
Date: Mon, 28 Mar 2016 08:59:44 -0400
Links: << >>  << T >>  << A >>
Eric Smith wrote:
> With Vivado 2015.4, I'm trying to add DDR3 memory to a Microblaze design. I add the Memory Interface Generator to the block diagram, and double-click on it to configure it. The windows that comes up says that "It is very important that the correct Vivado Project Options are selected", that Design Entry is set to VERILOG (sic), and "If any of these options are incorrect, please click on 'Cancel', change the Vivado Project Options, and restart MIG.  However, the Vivado Project Options shows that my target language is VHDL.. What do I actually have to do to convince MIG that Design Entry is VHDL?

You might want to ask this on the Xilinx forums.  I know that
in Vivado many cores no longer come with multi-language support,
but I'm still working mainly with ISE so I'm not sure whether
MIG is one of those.  Basically what I'm saying is that some
cores now support only Verilog and some support only VHDL.
This can become a headache if you use a third-party simulator
with single-language support.

-- 
Gabor

Article: 158702
Subject: Re: FPGA Internal or external USB PHY/SIE ??
From: Theo Markettos <theom+news@chiark.greenend.org.uk>
Date: 29 Mar 2016 22:45:17 +0100 (BST)
Links: << >>  << T >>  << A >>
KJ <kkjennings@sbcglobal.net> wrote:
> You'll probably find that it is not cost effective to use a full USB
> implementation inside an FPGA, unless it comes as hard logic already in
> the device.  If you use an external PHY, use something with a ULPI
> interface to minimize the pin count (12 pins if I recall correctly).

It's a bit of a headache because I'm not aware of any FPGAs with a hard USB
MAC.  There are commercial soft IP cores for USB, but I have no experience
of them and suspect them to be large.  I don't know of any FPGA vendors who
provide their own USB IP.  Maybe somebody does a relatively compact USB 1.1
MAC as a starting point?

If you want to put the USB off-chip, there are few USB parts particularly
friendly to FPGAs - most are expecting PCIe or similar.  Currently we use
the SAF1761 / ISP1761 but that feels like it's approaching end of line.

> If you can get by with a relatively 'slow for USB 2' speeds, you might be
> better off using an external USB UART like this
> http://www.ftdichip.com/Products/ICs/FT232R.htm from FTDI.  The ones I've
> seen will top out at around 3 MBaud, but they are USB 2, the FPGA logic to
> support is trivial and you have a relatively small, simple interface to
> the part.

Note the OP wants a USB host not a USB device part, so the above won't do.
If a USB device is required, the problem is much easier: there's a variety
of USB microcontrollers - the Cypress EZ-USB FX2 family (CY7C68013) is a
popular choice.

The other troublesome part is the software side: how much of an OS are you
running on or near the FPGA?  USB needs a substantial software stack, and
most of the code out there for host controllers assumes a heavyweight OS.

Theo

Article: 158703
Subject: Re: FPGA Internal or external USB PHY/SIE ??
From: GaborSzakacs <gabor@alacron.com>
Date: Wed, 30 Mar 2016 10:14:24 -0400
Links: << >>  << T >>  << A >>
SJA wrote:
> We need to interface 8 to 16 embedded USB 2.0 devices to an FPGA.
> 
> We could just use external ULPI transceivers but am wondering
> what FPGAs have transceivers that are USB 2.0 compatible and if
> the internal USB SIE gate count is low enough to make it cost
> effective to wire the USB devices directly to the FPGA. (Would save
> lots of pins ....)
> 
> Any suggestions ?
> 
> 

Xilinx Zynq parts have one USB 2.0 or 3.0 port.  You'd still need
to implement a hub off-chip to connect your peripherals.

-- 
Gabor

Article: 158704
Subject: Re: FPGA Internal or external USB PHY/SIE ??
From: Theo Markettos <theom+news@chiark.greenend.org.uk>
Date: 31 Mar 2016 11:16:32 +0100 (BST)
Links: << >>  << T >>  << A >>
GaborSzakacs <gabor@alacron.com> wrote:
> Xilinx Zynq parts have one USB 2.0 or 3.0 port.  You'd still need
> to implement a hub off-chip to connect your peripherals.

Likewise Altera's SoC parts.  It does mean running Linux on the ARM for
driver reasons.  But that's probably the most sensible way to go if you
really need an FPGA with USB host support.

However the main issue is it limits you to a range of SoC silicon: there are
Cyclone V and Arria V SoC parts, but no Stratix currently.  Arria 10 SoC
production silicon is on long lead time at the moment.

Theo

Article: 158705
Subject: Re: FPGA Internal or external USB PHY/SIE ??
From: rickman <gnuarm@gmail.com>
Date: Mon, 4 Apr 2016 11:46:24 -0400
Links: << >>  << T >>  << A >>
On 3/31/2016 6:16 AM, Theo Markettos wrote:
> GaborSzakacs <gabor@alacron.com> wrote:
>> Xilinx Zynq parts have one USB 2.0 or 3.0 port.  You'd still need
>> to implement a hub off-chip to connect your peripherals.
>
> Likewise Altera's SoC parts.  It does mean running Linux on the ARM for
> driver reasons.  But that's probably the most sensible way to go if you
> really need an FPGA with USB host support.
>
> However the main issue is it limits you to a range of SoC silicon: there are
> Cyclone V and Arria V SoC parts, but no Stratix currently.  Arria 10 SoC
> production silicon is on long lead time at the moment.

The Smart Fusion2 devices from Microsemi also support USB in hardware 
only requiring an external ULPI PHY.  The processor is an ARM CM3 and 
does not require running Linux to use the USB.

-- 

Rick

Article: 158706
Subject: Re: FPGA Internal or external USB PHY/SIE ??
From: Tim Wescott <seemywebsite@myfooter.really>
Date: Mon, 04 Apr 2016 13:43:49 -0500
Links: << >>  << T >>  << A >>
On Thu, 31 Mar 2016 11:16:32 +0100, Theo Markettos wrote:

> GaborSzakacs <gabor@alacron.com> wrote:
>> Xilinx Zynq parts have one USB 2.0 or 3.0 port.  You'd still need to
>> implement a hub off-chip to connect your peripherals.
> 
> Likewise Altera's SoC parts.  It does mean running Linux on the ARM for
> driver reasons.  But that's probably the most sensible way to go if you
> really need an FPGA with USB host support.

I've seen USB host software available as an add-on for embedded systems 
without Linux.

That's the extent of my knowledge.  It ought to work, and may be sensible 
if you just need a little dingus with USB host capabilities, and not a 
big machine.

-- 

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

Article: 158707
Subject: Re: FPGA Internal or external USB PHY/SIE ??
From: Theo Markettos <theom+news@chiark.greenend.org.uk>
Date: 05 Apr 2016 01:24:59 +0100 (BST)
Links: << >>  << T >>  << A >>
Tim Wescott <seemywebsite@myfooter.really> wrote:
> On Thu, 31 Mar 2016 11:16:32 +0100, Theo Markettos wrote:
> 
> > GaborSzakacs <gabor@alacron.com> wrote:
> >> Xilinx Zynq parts have one USB 2.0 or 3.0 port.  You'd still need to
> >> implement a hub off-chip to connect your peripherals.
> > 
> > Likewise Altera's SoC parts.  It does mean running Linux on the ARM for
> > driver reasons.  But that's probably the most sensible way to go if you
> > really need an FPGA with USB host support.
> 
> I've seen USB host software available as an add-on for embedded systems 
> without Linux.
> 
> That's the extent of my knowledge.  It ought to work, and may be sensible 
> if you just need a little dingus with USB host capabilities, and not a 
> big machine.

The reason it's nontrivial is the IP cores used are typically complex, and
the driver stack assumes a full-fat OS (threading, virtual memory, DMA etc).

If you have a simple IP core, it's possible to write simple software.  With
a complex IP core it is possible to stray 'off piste' and write your own
software, but that depends on the vendor providing documentation.  In the
case of the Synopsys core used on the Cyclone V SoC, which happens to be the
same core as the Raspberry Pi, the core documentation is very confidential. 
A few people have reverse engineered it, but every OS I know about uses the
Synopsys driver - which is 40K LOC.

I didn't look into it much, but the Smartfusion OTG core rickman mentioned
looks simpler and seems like a much better fit.

Theo

Article: 158708
Subject: Re: FPGA Internal or external USB PHY/SIE ??
From: rickman <gnuarm@gmail.com>
Date: Mon, 4 Apr 2016 21:36:09 -0400
Links: << >>  << T >>  << A >>
On 4/4/2016 8:24 PM, Theo Markettos wrote:
> Tim Wescott <seemywebsite@myfooter.really> wrote:
>> On Thu, 31 Mar 2016 11:16:32 +0100, Theo Markettos wrote:
>>
>>> GaborSzakacs <gabor@alacron.com> wrote:
>>>> Xilinx Zynq parts have one USB 2.0 or 3.0 port.  You'd still need to
>>>> implement a hub off-chip to connect your peripherals.
>>>
>>> Likewise Altera's SoC parts.  It does mean running Linux on the ARM for
>>> driver reasons.  But that's probably the most sensible way to go if you
>>> really need an FPGA with USB host support.
>>
>> I've seen USB host software available as an add-on for embedded systems
>> without Linux.
>>
>> That's the extent of my knowledge.  It ought to work, and may be sensible
>> if you just need a little dingus with USB host capabilities, and not a
>> big machine.
>
> The reason it's nontrivial is the IP cores used are typically complex, and
> the driver stack assumes a full-fat OS (threading, virtual memory, DMA etc).
>
> If you have a simple IP core, it's possible to write simple software.  With
> a complex IP core it is possible to stray 'off piste' and write your own
> software, but that depends on the vendor providing documentation.  In the
> case of the Synopsys core used on the Cyclone V SoC, which happens to be the
> same core as the Raspberry Pi, the core documentation is very confidential.
> A few people have reverse engineered it, but every OS I know about uses the
> Synopsys driver - which is 40K LOC.

What confidential info in the rPi core?  My understanding is that the 
GPU has proprietary aspects, but the core is ARM which is fully 
documented.  Do I not understand this properly?

> I didn't look into it much, but the Smartfusion OTG core rickman mentioned
> looks simpler and seems like a much better fit.

I can't say for sure, I have not tried working with the USB on the 
SmartFusion2 yet.

-- 

Rick

Article: 158709
Subject: Re: FPGA Internal or external USB PHY/SIE ??
From: Theo Markettos <theom+news@chiark.greenend.org.uk>
Date: 05 Apr 2016 12:07:29 +0100 (BST)
Links: << >>  << T >>  << A >>
rickman <gnuarm@gmail.com> wrote:
> What confidential info in the rPi core?  My understanding is that the 
> GPU has proprietary aspects, but the core is ARM which is fully 
> documented.  Do I not understand this properly?

We're talking peripheral IP cores.  The Pi has a bunch of IP from third
party vendors - Synopsys (USB), Arasan (SDHCI), maybe others (DDR2
controller?).  Those are proprietary and documentation is not public.
(though the SD core mostly obeys the SDHCI spec so is less of an issue)

Any SoC is much more than the CPU, and it's the I/O where it always gets
messy.

Theo

Article: 158710
Subject: Re: FPGA Internal or external USB PHY/SIE ??
From: rickman <gnuarm@gmail.com>
Date: Tue, 5 Apr 2016 10:58:35 -0400
Links: << >>  << T >>  << A >>
On 4/5/2016 7:07 AM, Theo Markettos wrote:
> rickman <gnuarm@gmail.com> wrote:
>> What confidential info in the rPi core?  My understanding is that the
>> GPU has proprietary aspects, but the core is ARM which is fully
>> documented.  Do I not understand this properly?
>
> We're talking peripheral IP cores.  The Pi has a bunch of IP from third
> party vendors - Synopsys (USB), Arasan (SDHCI), maybe others (DDR2
> controller?).  Those are proprietary and documentation is not public.
> (though the SD core mostly obeys the SDHCI spec so is less of an issue)
>
> Any SoC is much more than the CPU, and it's the I/O where it always gets
> messy.

I thought specifically this was about using the USB port.  Are you 
saying the USB port on the rPi is not fully documented?  Like I said, my 
understanding is that the only portion of the rPi processor (the 
original rPi, I haven't discussed the new rPi 2 or 3 processors with 
anyone) that is not fully documented (that means as well as anyone ever 
documents complex cores) is the GPU.  This has been discussed widely 
about the rPi and I'm sure it would have been brought up if any other 
portions were not fully documented.

-- 

Rick

Article: 158711
Subject: Altera HSMC connector
From: "Rick C. Hodgin" <rick.c.hodgin@gmail.com>
Date: Tue, 5 Apr 2016 11:40:47 -0700 (PDT)
Links: << >>  << T >>  << A >>
Hello all.  I'm looking for some information about Altera's FPGA.  I have
this Cyclone V GX dev board:

    https://www.altera.com/products/boards_and_kits/dev-kits/partners/kit-terasic-cyclone-v-gx-starter.html

It has a 160-pin HSMC connector, which connects using this flexible cable:

    https://www.altera.com/en_US/pdfs/literature/ds/hsmc_spec.pdf
    http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=275

I'm wondering if this connector can be used for general purpose off-board
communication for custom uses outside of connecting to other Mezzanine
boards?  Could I, for example, connect some wires to the pins and signal
them independently for GPIO?

Or... is this cable interface something proprietary that only allows
interconnect between Mezzanine devices?

Best regards,
Rick C. Hodgin

Article: 158712
Subject: Re: Altera HSMC connector
From: Rob Gaddi <rgaddi@highlandtechnology.invalid>
Date: Tue, 5 Apr 2016 18:49:54 -0000 (UTC)
Links: << >>  << T >>  << A >>
Rick C. Hodgin wrote:

> Hello all.  I'm looking for some information about Altera's FPGA.  I have
> this Cyclone V GX dev board:
>
>     https://www.altera.com/products/boards_and_kits/dev-kits/partners/kit-terasic-cyclone-v-gx-starter.html
>
> It has a 160-pin HSMC connector, which connects using this flexible cable:
>
>     https://www.altera.com/en_US/pdfs/literature/ds/hsmc_spec.pdf
>     http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=275
>
> I'm wondering if this connector can be used for general purpose off-board
> communication for custom uses outside of connecting to other Mezzanine
> boards?  Could I, for example, connect some wires to the pins and signal
> them independently for GPIO?
>
> Or... is this cable interface something proprietary that only allows
> interconnect between Mezzanine devices?
>
> Best regards,
> Rick C. Hodgin

It's a bit of a pain as connectors go. 
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=67&No=322&PartNo=1 makes a convenient breakout.  You want the (M), to mate the dev kit, not the (F).

-- 
Rob Gaddi, Highland Technology -- www.highlandtechnology.com
Email address domain is currently out of order.  See above to fix.

Article: 158713
Subject: Re: Altera HSMC connector
From: "Rick C. Hodgin" <rick.c.hodgin@gmail.com>
Date: Tue, 5 Apr 2016 12:03:49 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Tuesday, April 5, 2016 at 2:53:15 PM UTC-4, Rob Gaddi wrote:
> Rick C. Hodgin wrote:
> > Hello all.  I'm looking for some information about Altera's FPGA.  I have
> > this Cyclone V GX dev board:
> >
> >     https://www.altera.com/products/boards_and_kits/dev-kits/partners/kit-terasic-cyclone-v-gx-starter.html
> >
> > It has a 160-pin HSMC connector, which connects using this flexible cable:
> >
> >     https://www.altera.com/en_US/pdfs/literature/ds/hsmc_spec.pdf
> >     http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=275
> >
> > I'm wondering if this connector can be used for general purpose off-board
> > communication for custom uses outside of connecting to other Mezzanine
> > boards?  Could I, for example, connect some wires to the pins and signal
> > them independently for GPIO?
> >
> > Or... is this cable interface something proprietary that only allows
> > interconnect between Mezzanine devices?
> 
> It's a bit of a pain as connectors go. 
> http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=67&No=322&PartNo=1 makes a convenient breakout.  You want the (M), to mate the dev kit, not the (F).
> 
> -- 
> Rob Gaddi, Highland Technology -- www.highlandtechnology.com

Thank you, Rob.  That's exactly what I was looking for.

Best regards,
Rick C. Hodgin

Article: 158714
Subject: Using an FPGA to drive the 80386 CPU on a real motherboard
From: "Rick C. Hodgin" <rick.c.hodgin@gmail.com>
Date: Tue, 5 Apr 2016 12:15:35 -0700 (PDT)
Links: << >>  << T >>  << A >>
I have a desire to create an 80386 CPU in FPGA form, one which will plug in
to the 132-pin socket of existing 80386 motherboard as a replacement CPU.  I
want to be able to provide the features of the 80386 on that machine, but
through my FPGA, to then allow me to extend the ISA to include other
instructions and abilities.

Does anybody have an experience or advice in creating an FPGA-based CPU that
connects to a real hardware device and simulates the real device's abilities?

For example, the 80386 uses 5V and the Altera board I have drives 1.xV and
3.3V max, so I'd have to use a level converter.  At speeds up to a max of
40 MHz, would there be any issues?

Also, I'd like to create a "monitor board," which is a board with a 132-
pin male socket connecting to the CPU on one side, and a 132-pin female
socket on the other side to which a real 80386 CPU would connect, and then
to be able to pull signals off the wires between the CPU socket and the
CPU itself.  I had assumed I would use opto-isolation for this, but I don't
know if it would work or be best.

In addition, and specific to the 80386 CPU, AMD manufactured an Am386 CPU
that is 100% compatible with the Intel 80386, but it has the ability to
underclock down to even 0 MHz in a standby mode (allowing it to consume
only 0.001 Watts).  I'm wondering if anyone has any experience underclocking
an 80386 motherboard down into the KHz range, or even Hz range, and if it
would still work at those slow speeds on the board?

My goals in slowing down the CPU are to detect and isolate timing protocols,
which I can then scale up to higher speeds once identified.

In any event, any help or advice is appreciated.  Thank you.

Best regards,
Rick C. Hodgin

Article: 158715
Subject: Re: Altera HSMC connector
From: "Rick C. Hodgin" <rick.c.hodgin@gmail.com>
Date: Tue, 5 Apr 2016 12:23:07 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Tuesday, April 5, 2016 at 3:03:53 PM UTC-4, Rick C. Hodgin wrote:
> On Tuesday, April 5, 2016 at 2:53:15 PM UTC-4, Rob Gaddi wrote:
> > Rick C. Hodgin wrote:
> > > Hello all.  I'm looking for some information about Altera's FPGA.  I have
> > > this Cyclone V GX dev board:
> > >
> > >     https://www.altera.com/products/boards_and_kits/dev-kits/partners/kit-terasic-cyclone-v-gx-starter.html
> > >
> > > It has a 160-pin HSMC connector, which connects using this flexible cable:
> > >
> > >     https://www.altera.com/en_US/pdfs/literature/ds/hsmc_spec.pdf
> > >     http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=275
> > >
> > > I'm wondering if this connector can be used for general purpose off-board
> > > communication for custom uses outside of connecting to other Mezzanine
> > > boards?  Could I, for example, connect some wires to the pins and signal
> > > them independently for GPIO?
> > >
> > > Or... is this cable interface something proprietary that only allows
> > > interconnect between Mezzanine devices?
> > 
> > It's a bit of a pain as connectors go. 
> > http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=67&No=322&PartNo=1 makes a convenient breakout.  You want the (M), to mate the dev kit, not the (F).
> > 
> > -- 
> > Rob Gaddi, Highland Technology -- www.highlandtechnology.com
> 
> Thank you, Rob.  That's exactly what I was looking for.

Ordered.  Thank you again.

Best regards,
Rick C. Hodgin

Article: 158716
Subject: Re: FPGA Internal or external USB PHY/SIE ??
From: Theo Markettos <theom+news@chiark.greenend.org.uk>
Date: 05 Apr 2016 21:06:13 +0100 (BST)
Links: << >>  << T >>  << A >>
rickman <gnuarm@gmail.com> wrote:
> I thought specifically this was about using the USB port.  Are you 
> saying the USB port on the rPi is not fully documented?

Yes.  (Not publically anyway)

>  Like I said, my understanding is that the only portion of the rPi
> processor (the original rPi, I haven't discussed the new rPi 2 or 3
> processors with anyone) that is not fully documented (that means as well
> as anyone ever documents complex cores) is the GPU.

That is incorrect.  This is a misapprehension because most people are
running Linux, and Linux has drivers for these peripherals, so they don't
care.  It only comes to bite you when you want to write drivers for an OS
(or lack of OS) that isn't Linux.

The situation with the Pi is actually somewhat better than that because a)
the Arasan core is (more or less) SDHCI, which is a documented standard even
if this particular core isn't.  The next usual problem then relates to
clocks, resets and power control which are frequently controlled external
to an IP core (so not in its documentation), quite often by a pile of GPIOs
in a dark corner.  In this case the GPU handles those so we just use its API
(config.txt or mailbox) and don't have to worry.  But it's not the same as
understanding what it's doing inside.

Theo
(who notes that ability to cut and paste random IP into an SoC frequently
makes for a mess that software people have to deal with)

Article: 158717
Subject: Re: Using an FPGA to drive the 80386 CPU on a real motherboard
From: rickman <gnuarm@gmail.com>
Date: Tue, 5 Apr 2016 16:13:26 -0400
Links: << >>  << T >>  << A >>
On 4/5/2016 3:15 PM, Rick C. Hodgin wrote:
> I have a desire to create an 80386 CPU in FPGA form, one which will plug in
> to the 132-pin socket of existing 80386 motherboard as a replacement CPU.  I
> want to be able to provide the features of the 80386 on that machine, but
> through my FPGA, to then allow me to extend the ISA to include other
> instructions and abilities.
>
> Does anybody have an experience or advice in creating an FPGA-based CPU that
> connects to a real hardware device and simulates the real device's abilities?
>
> For example, the 80386 uses 5V and the Altera board I have drives 1.xV and
> 3.3V max, so I'd have to use a level converter.  At speeds up to a max of
> 40 MHz, would there be any issues?

Even at 40 MHz you will need to be tidy with your routing to keep the 
signals from ringing, etc.  I don't know the details of the 386 chip I/O 
specs, but quickswitch type parts will do a good job of level shifting 
between 3.33 and 5 volts without adding much delay.  Because the signal 
passes between the source and drain there is very little delay.  They 
don't pull up to 5 volts, but 5 volt logic usually only need 2.x volts 
anyway.  But you'll need to check the parts you are interfacing to on 
the mother board or just give it a wing.  You can add pullups on the 5 
volt side, but pullups tend to be slow.  Even a few ns of added delay 
can cause a 386 not to work.  Many of the early mobos had timing issues 
because of the TTL logic used.  I don't think 386 mobos had chip sets in 
place of the TTL, did they?


> Also, I'd like to create a "monitor board," which is a board with a 132-
> pin male socket connecting to the CPU on one side, and a 132-pin female
> socket on the other side to which a real 80386 CPU would connect, and then
> to be able to pull signals off the wires between the CPU socket and the
> CPU itself.  I had assumed I would use opto-isolation for this, but I don't
> know if it would work or be best.

Opto-isolation is pretty slow compared to 40 MHz, but maybe there are 
faster converters these days.  Why do you need isolation?


> In addition, and specific to the 80386 CPU, AMD manufactured an Am386 CPU
> that is 100% compatible with the Intel 80386, but it has the ability to
> underclock down to even 0 MHz in a standby mode (allowing it to consume
> only 0.001 Watts).  I'm wondering if anyone has any experience underclocking
> an 80386 motherboard down into the KHz range, or even Hz range, and if it
> would still work at those slow speeds on the board?

No experience, but the parts that would give trouble at slow clocks were 
the NMOS devices that went out long before the 386.  Certainly TTL and 
CMOS don't normally have a problem with slow clocking.


> My goals in slowing down the CPU are to detect and isolate timing protocols,
> which I can then scale up to higher speeds once identified.
>
> In any event, any help or advice is appreciated.  Thank you.

I have a book somewhere on the ISA bus with timing info.  ISA was never 
fully specified.  I think there was an effort to produce a spec, but it 
got canned and retracted at some point.  You can't even find draft 
versions of it now.  But that was more of an 8086/80286 thing.  I'm not 
sure the ISA bus was still mapped directly to the 386 bus.  I just don't 
remember.

-- 

Rick

Article: 158718
Subject: Re: FPGA Internal or external USB PHY/SIE ??
From: rickman <gnuarm@gmail.com>
Date: Tue, 5 Apr 2016 16:19:57 -0400
Links: << >>  << T >>  << A >>
On 4/5/2016 4:06 PM, Theo Markettos wrote:
> rickman <gnuarm@gmail.com> wrote:
>> I thought specifically this was about using the USB port.  Are you
>> saying the USB port on the rPi is not fully documented?
>
> Yes.  (Not publically anyway)
>
>>   Like I said, my understanding is that the only portion of the rPi
>> processor (the original rPi, I haven't discussed the new rPi 2 or 3
>> processors with anyone) that is not fully documented (that means as well
>> as anyone ever documents complex cores) is the GPU.
>
> That is incorrect.  This is a misapprehension because most people are
> running Linux, and Linux has drivers for these peripherals, so they don't
> care.  It only comes to bite you when you want to write drivers for an OS
> (or lack of OS) that isn't Linux.

The issue was open source software.  The drivers for the GPU were 
binary.  If the drives for any other part of the chip were binary I'm 
sure it would have come up.


> The situation with the Pi is actually somewhat better than that because a)
> the Arasan core is (more or less) SDHCI, which is a documented standard even
> if this particular core isn't.  The next usual problem then relates to
> clocks, resets and power control which are frequently controlled external
> to an IP core (so not in its documentation), quite often by a pile of GPIOs
> in a dark corner.  In this case the GPU handles those so we just use its API
> (config.txt or mailbox) and don't have to worry.  But it's not the same as
> understanding what it's doing inside.

What part of the CPU chip on the rPi is not documented in the manual? 
It is large and I have not read it all of course, but I'm sure I would 
have heard in these discussions if there were any other part than the 
GPU that was driven by closed source code.


> Theo
> (who notes that ability to cut and paste random IP into an SoC frequently
> makes for a mess that software people have to deal with)
>


-- 

Rick

Article: 158719
Subject: Re: Using an FPGA to drive the 80386 CPU on a real motherboard
From: "Rick C. Hodgin" <rick.c.hodgin@gmail.com>
Date: Tue, 5 Apr 2016 13:50:27 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Tuesday, April 5, 2016 at 4:13:28 PM UTC-4, rickman wrote:
> On 4/5/2016 3:15 PM, Rick C. Hodgin wrote:
> > In addition, and specific to the 80386 CPU, AMD manufactured an Am386 CPU
> > that is 100% compatible with the Intel 80386, but it has the ability to
> > underclock down to even 0 MHz in a standby mode (allowing it to consume
> > only 0.001 Watts).  I'm wondering if anyone has any experience underclocking
> > an 80386 motherboard down into the KHz range, or even Hz range, and if it
> > would still work at those slow speeds on the board?
> 
> No experience, but the parts that would give trouble at slow clocks were 
> the NMOS devices that went out long before the 386.  Certainly TTL and 
> CMOS don't normally have a problem with slow clocking.

I assume the entire system is clocked off the single source?  So, would it
be as simple as removing the crystal circuit and replacing it with a soft
circuit operating at the same frequency driven from an FPGA output?  And
then taking the FPGA output and bringing it down slowly to underclock the
system?

I have two standard 80386 motherboards, and one 80386 motherboard with an
expansion socket.  I also have an 80486 motherboard with an i80486DX, and
two Pentium motherboards, 33 MHz and 60 MHz I believe.

Here's an online image I found which matches the 80386 I'm interested in
underlcocking:

    http://www.armanax.com/placa-base-m321-rev-2-5.html

It has an 80 MHz timing circuit, as the clock speed for the 80386s were
always double-pumped.

I want to get a case, power supply, VGA and MDA setup on it.  I have a
custom 80386 OS I wrote that I'll use for bootup and testing (loads
from a floppy disk).  I would write a simple test algorithm that does
some screen output, processes keystrokes, mouse movement, etc., and
have that test running as it's underclocked... assuming I'm on the
right path.

Best regards,
Rick C. Hodgin

Article: 158720
Subject: Re: Using an FPGA to drive the 80386 CPU on a real motherboard
From: "Rick C. Hodgin" <rick.c.hodgin@gmail.com>
Date: Tue, 5 Apr 2016 14:11:02 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Tuesday, April 5, 2016 at 4:13:28 PM UTC-4, rickman wrote:
> On 4/5/2016 3:15 PM, Rick C. Hodgin wrote:
> > I have a desire to create an 80386 CPU in FPGA form, one which will plug in
> > to the 132-pin socket of existing 80386 motherboard as a replacement CPU.  I
> > want to be able to provide the features of the 80386 on that machine, but
> > through my FPGA, to then allow me to extend the ISA to include other
> > instructions and abilities.
> >
> > Does anybody have an experience or advice in creating an FPGA-based CPU that
> > connects to a real hardware device and simulates the real device's abilities?
> >
> > For example, the 80386 uses 5V and the Altera board I have drives 1.xV and
> > 3.3V max, so I'd have to use a level converter.  At speeds up to a max of
> > 40 MHz, would there be any issues?
> 
> Even at 40 MHz you will need to be tidy with your routing to keep the 
> signals from ringing, etc.

If I can get the machine underclocked, I'd like to bring it down into the
low KHz or even Hz range if possible, but something 100 KHz or lower at
least.

I envision the Cyclone V GX being mounted a couple inches above the 80386
socket.  I would use the HSMC to GPIO port to connect to the CPU socket.

I had considered at first using the co-processor socket and emulating the
80387 ISA at first.  I may still do that, but regardless, there are only
90 pins that are active on the 80386, and 64 of those are direct address
and data pins, with another 20 being control pins for when those lines
are active, and in what mode they're active.

There really isn't much logic involved in hooking up an 80386, which is
why I'm attempting this project.

To be honest, I wouldn't even mind dipping back down to a 4.77 MHz 8086
system and starting there as part of the ISA I'll support for the 80386
contains a full 8086 subset.

> I don't know the details of the 386 chip I/O 
> specs, but quickswitch type parts will do a good job of level shifting 
> between 3.33 and 5 volts without adding much delay.  Because the signal 
> passes between the source and drain there is very little delay.  They 
> don't pull up to 5 volts, but 5 volt logic usually only need 2.x volts 
> anyway.  But you'll need to check the parts you are interfacing to on 
> the mother board or just give it a wing.  You can add pullups on the 5 
> volt side, but pullups tend to be slow.  Even a few ns of added delay 
> can cause a 386 not to work.  Many of the early mobos had timing issues 
> because of the TTL logic used.

Excellent information, thank you.

> I don't think 386 mobos had chip sets in place of the TTL, did they?

Not originally, but later on.  These motherboards were manufactured in
the early 90s, and came with Am386 CPUs manufactured in 91 or 92.  I
believe the boards I have had switched to chip sets by then.

> > Also, I'd like to create a "monitor board," which is a board with a 132-
> > pin male socket connecting to the CPU on one side, and a 132-pin female
> > socket on the other side to which a real 80386 CPU would connect, and then
> > to be able to pull signals off the wires between the CPU socket and the
> > CPU itself.  I had assumed I would use opto-isolation for this, but I don't
> > know if it would work or be best.
> 
> Opto-isolation is pretty slow compared to 40 MHz, but maybe there are 
> faster converters these days.  Why do you need isolation?

I may not need it.  However, when I was working on stepper motors back
in the mid-90s, I believe we used them to maintain a low power draw on
the circuits we were monitoring.

> > In addition, and specific to the 80386 CPU, AMD manufactured an Am386 CPU
> > that is 100% compatible with the Intel 80386, but it has the ability to
> > underclock down to even 0 MHz in a standby mode (allowing it to consume
> > only 0.001 Watts).  I'm wondering if anyone has any experience underclocking
> > an 80386 motherboard down into the KHz range, or even Hz range, and if it
> > would still work at those slow speeds on the board?
> 
> No experience, but the parts that would give trouble at slow clocks were 
> the NMOS devices that went out long before the 386.  Certainly TTL and 
> CMOS don't normally have a problem with slow clocking.

From what I've read, Intel's 80386 CPUs would not clock below 10 MHz well.
But AMD's would clock down to any clock speed including 0 MHz.  It's why
I've wanted to try to target these systems which came with the Am386 CPU,
for their underclocking abilities.

> > My goals in slowing down the CPU are to detect and isolate timing protocols,
> > which I can then scale up to higher speeds once identified.
> >
> > In any event, any help or advice is appreciated.  Thank you.
> 
> I have a book somewhere on the ISA bus with timing info.  ISA was never 
> fully specified.  I think there was an effort to produce a spec, but it 
> got canned and retracted at some point.  You can't even find draft 
> versions of it now.  But that was more of an 8086/80286 thing.  I'm not 
> sure the ISA bus was still mapped directly to the 386 bus.  I just don't 
> remember.

IIRC, it operated at 4.77 MHz for 8-bit bus, and 6 MHz or 8 MHz for the
16-bit bus.  I don't know if that speed is required, or if it's the
standard clock speed when the system was operating at its normal clock
speed as would be setup by early BIOS during boot. I assume once it boots
up, the entire system can be overclocked or underclocked by altering the
frequency emitted by the clock circuit, and the whole system would rise
and fall in relative speed parity.  Just a guess though.

Best regards,
Rick C. Hodgin

Article: 158721
Subject: Re: Using an FPGA to drive the 80386 CPU on a real motherboard
From: rickman <gnuarm@gmail.com>
Date: Tue, 5 Apr 2016 21:22:30 -0400
Links: << >>  << T >>  << A >>
On 4/5/2016 5:11 PM, Rick C. Hodgin wrote:
> On Tuesday, April 5, 2016 at 4:13:28 PM UTC-4, rickman wrote:
>> On 4/5/2016 3:15 PM, Rick C. Hodgin wrote:
>>> I have a desire to create an 80386 CPU in FPGA form, one which will plug in
>>> to the 132-pin socket of existing 80386 motherboard as a replacement CPU.  I
>>> want to be able to provide the features of the 80386 on that machine, but
>>> through my FPGA, to then allow me to extend the ISA to include other
>>> instructions and abilities.
>>>
>>> Does anybody have an experience or advice in creating an FPGA-based CPU that
>>> connects to a real hardware device and simulates the real device's abilities?
>>>
>>> For example, the 80386 uses 5V and the Altera board I have drives 1.xV and
>>> 3.3V max, so I'd have to use a level converter.  At speeds up to a max of
>>> 40 MHz, would there be any issues?
>>
>> Even at 40 MHz you will need to be tidy with your routing to keep the
>> signals from ringing, etc.
>
> If I can get the machine underclocked, I'd like to bring it down into the
> low KHz or even Hz range if possible, but something 100 KHz or lower at
> least.

Running with a slow clock doesn't assure a lack of problems from edge 
rates.  The edges usually are still just as fast and that is what 
creates problems.


> I envision the Cyclone V GX being mounted a couple inches above the 80386
> socket.  I would use the HSMC to GPIO port to connect to the CPU socket.

I don't know about the HSMC port, but I don't think you need anything 
special for a 40 MHz interface.


> I had considered at first using the co-processor socket and emulating the
> 80387 ISA at first.  I may still do that, but regardless, there are only
> 90 pins that are active on the 80386, and 64 of those are direct address
> and data pins, with another 20 being control pins for when those lines
> are active, and in what mode they're active.
>
> There really isn't much logic involved in hooking up an 80386, which is
> why I'm attempting this project.
>
> To be honest, I wouldn't even mind dipping back down to a 4.77 MHz 8086
> system and starting there as part of the ISA I'll support for the 80386
> contains a full 8086 subset.
>
>> I don't know the details of the 386 chip I/O
>> specs, but quickswitch type parts will do a good job of level shifting
>> between 3.33 and 5 volts without adding much delay.  Because the signal
>> passes between the source and drain there is very little delay.  They
>> don't pull up to 5 volts, but 5 volt logic usually only need 2.x volts
>> anyway.  But you'll need to check the parts you are interfacing to on
>> the mother board or just give it a wing.  You can add pullups on the 5
>> volt side, but pullups tend to be slow.  Even a few ns of added delay
>> can cause a 386 not to work.  Many of the early mobos had timing issues
>> because of the TTL logic used.
>
> Excellent information, thank you.
>
>> I don't think 386 mobos had chip sets in place of the TTL, did they?
>
> Not originally, but later on.  These motherboards were manufactured in
> the early 90s, and came with Am386 CPUs manufactured in 91 or 92.  I
> believe the boards I have had switched to chip sets by then.

I recall that because there was no "standard" for the design of the 
motherboard other than what IBM had done, there were some differences 
between the various chip sets.  In those days they *were* chip sets as 
the whole shebang didn't end up in one chip like was used later and 
still called a "chip set".  lol


>>> Also, I'd like to create a "monitor board," which is a board with a 132-
>>> pin male socket connecting to the CPU on one side, and a 132-pin female
>>> socket on the other side to which a real 80386 CPU would connect, and then
>>> to be able to pull signals off the wires between the CPU socket and the
>>> CPU itself.  I had assumed I would use opto-isolation for this, but I don't
>>> know if it would work or be best.
>>
>> Opto-isolation is pretty slow compared to 40 MHz, but maybe there are
>> faster converters these days.  Why do you need isolation?
>
> I may not need it.  However, when I was working on stepper motors back
> in the mid-90s, I believe we used them to maintain a low power draw on
> the circuits we were monitoring.

Optos are the opposite of low power draw on busses.  Enough current is 
required to drive an LED on the sensing side.  Optos are typically used 
to provide isolation from circuits that can have ground swings or 
otherwise be noisy or have high voltage spikes, like motor circuits.


>>> In addition, and specific to the 80386 CPU, AMD manufactured an Am386 CPU
>>> that is 100% compatible with the Intel 80386, but it has the ability to
>>> underclock down to even 0 MHz in a standby mode (allowing it to consume
>>> only 0.001 Watts).  I'm wondering if anyone has any experience underclocking
>>> an 80386 motherboard down into the KHz range, or even Hz range, and if it
>>> would still work at those slow speeds on the board?
>>
>> No experience, but the parts that would give trouble at slow clocks were
>> the NMOS devices that went out long before the 386.  Certainly TTL and
>> CMOS don't normally have a problem with slow clocking.
>
>  From what I've read, Intel's 80386 CPUs would not clock below 10 MHz well.
> But AMD's would clock down to any clock speed including 0 MHz.  It's why
> I've wanted to try to target these systems which came with the Am386 CPU,
> for their underclocking abilities.

I've forgotten more than I knew, lol.  That may be accurate.  I know the 
original NMOS circuits used dynamic circuits where values were 
remembered on capacitance and so had minimum clock rates.  Maybe even on 
CMOS designs they did the same thing.


>>> My goals in slowing down the CPU are to detect and isolate timing protocols,
>>> which I can then scale up to higher speeds once identified.
>>>
>>> In any event, any help or advice is appreciated.  Thank you.
>>
>> I have a book somewhere on the ISA bus with timing info.  ISA was never
>> fully specified.  I think there was an effort to produce a spec, but it
>> got canned and retracted at some point.  You can't even find draft
>> versions of it now.  But that was more of an 8086/80286 thing.  I'm not
>> sure the ISA bus was still mapped directly to the 386 bus.  I just don't
>> remember.
>
> IIRC, it operated at 4.77 MHz for 8-bit bus, and 6 MHz or 8 MHz for the
> 16-bit bus.  I don't know if that speed is required, or if it's the
> standard clock speed when the system was operating at its normal clock
> speed as would be setup by early BIOS during boot. I assume once it boots
> up, the entire system can be overclocked or underclocked by altering the
> frequency emitted by the clock circuit, and the whole system would rise
> and fall in relative speed parity.  Just a guess though.

It's not actually a synchronous bus.  Everything is timed by the read 
and write strobes with some other signals helping to control data 
directions on buffers.  It started with the 8088 I/O bus controls and 
remained compatible I believe, but I'm not sure.  If you don't mind 
stretching the cycles a bit it can be run synchronously.  I'll see if I 
can find that book.

-- 

Rick

Article: 158722
Subject: Re: Using an FPGA to drive the 80386 CPU on a real motherboard
From: "Rick C. Hodgin" <rick.c.hodgin@gmail.com>
Date: Tue, 5 Apr 2016 19:47:53 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Tuesday, April 5, 2016 at 9:22:32 PM UTC-4, rickman wrote:
> On 4/5/2016 5:11 PM, Rick C. Hodgin wrote:
> > On Tuesday, April 5, 2016 at 4:13:28 PM UTC-4, rickman wrote:
> >> On 4/5/2016 3:15 PM, Rick C. Hodgin wrote:
> >>> I have a desire to create an 80386 CPU in FPGA form, one which will plug in
> >>> to the 132-pin socket of existing 80386 motherboard as a replacement CPU.  I
> >>> want to be able to provide the features of the 80386 on that machine, but
> >>> through my FPGA, to then allow me to extend the ISA to include other
> >>> instructions and abilities.
> >>>
> >>> Does anybody have an experience or advice in creating an FPGA-based CPU that
> >>> connects to a real hardware device and simulates the real device's abilities?
> >>>
> >>> For example, the 80386 uses 5V and the Altera board I have drives 1.xV and
> >>> 3.3V max, so I'd have to use a level converter.  At speeds up to a max of
> >>> 40 MHz, would there be any issues?
> >>
> >> Even at 40 MHz you will need to be tidy with your routing to keep the
> >> signals from ringing, etc.
> >
> > If I can get the machine underclocked, I'd like to bring it down into the
> > low KHz or even Hz range if possible, but something 100 KHz or lower at
> > least.
> 
> Running with a slow clock doesn't assure a lack of problems from edge 
> rates.  The edges usually are still just as fast and that is what 
> creates problems.
> 
> 
> > I envision the Cyclone V GX being mounted a couple inches above the 80386
> > socket.  I would use the HSMC to GPIO port to connect to the CPU socket.
> 
> I don't know about the HSMC port, but I don't think you need anything 
> special for a 40 MHz interface.
> 
> 
> > I had considered at first using the co-processor socket and emulating the
> > 80387 ISA at first.  I may still do that, but regardless, there are only
> > 90 pins that are active on the 80386, and 64 of those are direct address
> > and data pins, with another 20 being control pins for when those lines
> > are active, and in what mode they're active.
> >
> > There really isn't much logic involved in hooking up an 80386, which is
> > why I'm attempting this project.
> >
> > To be honest, I wouldn't even mind dipping back down to a 4.77 MHz 8086
> > system and starting there as part of the ISA I'll support for the 80386
> > contains a full 8086 subset.
> >
> >> I don't know the details of the 386 chip I/O
> >> specs, but quickswitch type parts will do a good job of level shifting
> >> between 3.33 and 5 volts without adding much delay.  Because the signal
> >> passes between the source and drain there is very little delay.  They
> >> don't pull up to 5 volts, but 5 volt logic usually only need 2.x volts
> >> anyway.  But you'll need to check the parts you are interfacing to on
> >> the mother board or just give it a wing.  You can add pullups on the 5
> >> volt side, but pullups tend to be slow.  Even a few ns of added delay
> >> can cause a 386 not to work.  Many of the early mobos had timing issues
> >> because of the TTL logic used.
> >
> > Excellent information, thank you.
> >
> >> I don't think 386 mobos had chip sets in place of the TTL, did they?
> >
> > Not originally, but later on.  These motherboards were manufactured in
> > the early 90s, and came with Am386 CPUs manufactured in 91 or 92.  I
> > believe the boards I have had switched to chip sets by then.
> 
> I recall that because there was no "standard" for the design of the 
> motherboard other than what IBM had done, there were some differences 
> between the various chip sets.  In those days they *were* chip sets as 
> the whole shebang didn't end up in one chip like was used later and 
> still called a "chip set".  lol
> 
> 
> >>> Also, I'd like to create a "monitor board," which is a board with a 132-
> >>> pin male socket connecting to the CPU on one side, and a 132-pin female
> >>> socket on the other side to which a real 80386 CPU would connect, and then
> >>> to be able to pull signals off the wires between the CPU socket and the
> >>> CPU itself.  I had assumed I would use opto-isolation for this, but I don't
> >>> know if it would work or be best.
> >>
> >> Opto-isolation is pretty slow compared to 40 MHz, but maybe there are
> >> faster converters these days.  Why do you need isolation?
> >
> > I may not need it.  However, when I was working on stepper motors back
> > in the mid-90s, I believe we used them to maintain a low power draw on
> > the circuits we were monitoring.
> 
> Optos are the opposite of low power draw on busses.  Enough current is 
> required to drive an LED on the sensing side.  Optos are typically used 
> to provide isolation from circuits that can have ground swings or 
> otherwise be noisy or have high voltage spikes, like motor circuits.
> 
> 
> >>> In addition, and specific to the 80386 CPU, AMD manufactured an Am386 CPU
> >>> that is 100% compatible with the Intel 80386, but it has the ability to
> >>> underclock down to even 0 MHz in a standby mode (allowing it to consume
> >>> only 0.001 Watts).  I'm wondering if anyone has any experience underclocking
> >>> an 80386 motherboard down into the KHz range, or even Hz range, and if it
> >>> would still work at those slow speeds on the board?
> >>
> >> No experience, but the parts that would give trouble at slow clocks were
> >> the NMOS devices that went out long before the 386.  Certainly TTL and
> >> CMOS don't normally have a problem with slow clocking.
> >
> >  From what I've read, Intel's 80386 CPUs would not clock below 10 MHz well.
> > But AMD's would clock down to any clock speed including 0 MHz.  It's why
> > I've wanted to try to target these systems which came with the Am386 CPU,
> > for their underclocking abilities.
> 
> I've forgotten more than I knew, lol.  That may be accurate.  I know the 
> original NMOS circuits used dynamic circuits where values were 
> remembered on capacitance and so had minimum clock rates.  Maybe even on 
> CMOS designs they did the same thing.
> 
> 
> >>> My goals in slowing down the CPU are to detect and isolate timing protocols,
> >>> which I can then scale up to higher speeds once identified.
> >>>
> >>> In any event, any help or advice is appreciated.  Thank you.
> >>
> >> I have a book somewhere on the ISA bus with timing info.  ISA was never
> >> fully specified.  I think there was an effort to produce a spec, but it
> >> got canned and retracted at some point.  You can't even find draft
> >> versions of it now.  But that was more of an 8086/80286 thing.  I'm not
> >> sure the ISA bus was still mapped directly to the 386 bus.  I just don't
> >> remember.
> >
> > IIRC, it operated at 4.77 MHz for 8-bit bus, and 6 MHz or 8 MHz for the
> > 16-bit bus.  I don't know if that speed is required, or if it's the
> > standard clock speed when the system was operating at its normal clock
> > speed as would be setup by early BIOS during boot. I assume once it boots
> > up, the entire system can be overclocked or underclocked by altering the
> > frequency emitted by the clock circuit, and the whole system would rise
> > and fall in relative speed parity.  Just a guess though.
> 
> It's not actually a synchronous bus.  Everything is timed by the read 
> and write strobes with some other signals helping to control data 
> directions on buffers.  It started with the 8088 I/O bus controls and 
> remained compatible I believe, but I'm not sure.  If you don't mind 
> stretching the cycles a bit it can be run synchronously.  I'll see if I 
> can find that book.
> 
> -- 
> 
> Rick

Alright ... suppose I target this from another angle.  What if I take
the CPU completely off the 80386 motherboard, and create a custom socket
connected to my FPGA, and I provide it with everything it requires?

The Am386 CPUs operated at speeds from 0 MHz to 40 MHz.  Since they can
actually clock at any speed, I could take the CPU completely away from the peculiar and bizarre 80386 motherboard design, and instead provide the
facilities which basically allow the FPGA to be its motherboard, feeding
it whatever it's required.

Possible?

BTW, if I haven't said so you, I greatly appreciate your assistance and
advice.  It is very kind of you to help me in this way, and much, very
much appreciated.

Best regards,
Rick C. Hodgin

Article: 158723
Subject: Re: Using an FPGA to drive the 80386 CPU on a real motherboard
From: rickman <gnuarm@gmail.com>
Date: Wed, 6 Apr 2016 00:35:42 -0400
Links: << >>  << T >>  << A >>
On 4/5/2016 10:47 PM, Rick C. Hodgin wrote:
>
> Alright ... suppose I target this from another angle.  What if I take
> the CPU completely off the 80386 motherboard, and create a custom socket
> connected to my FPGA, and I provide it with everything it requires?
>
> The Am386 CPUs operated at speeds from 0 MHz to 40 MHz.  Since they can
> actually clock at any speed, I could take the CPU completely away from the peculiar and bizarre 80386 motherboard design, and instead provide the
> facilities which basically allow the FPGA to be its motherboard, feeding
> it whatever it's required.
>
> Possible?

Sure.  Booting one of these things may be a bit complicated, but not 
likely any worse than booting a modern high end ARM processor.  Likely a 
lot easier.


> BTW, if I haven't said so you, I greatly appreciate your assistance and
> advice.  It is very kind of you to help me in this way, and much, very
> much appreciated.

No problem.  This an interesting if not mysterious project.

-- 

Rick

Article: 158724
Subject: Re: Using an FPGA to drive the 80386 CPU on a real motherboard
From: o pere o <me@somewhere.net>
Date: Wed, 6 Apr 2016 14:17:49 +0200
Links: << >>  << T >>  << A >>
On 05/04/16 21:15, Rick C. Hodgin wrote:
> I have a desire to create an 80386 CPU in FPGA form, one which will plug in
> to the 132-pin socket of existing 80386 motherboard as a replacement CPU.  I
> want to be able to provide the features of the 80386 on that machine, but
> through my FPGA, to then allow me to extend the ISA to include other
> instructions and abilities.
>
> Does anybody have an experience or advice in creating an FPGA-based CPU that
> connects to a real hardware device and simulates the real device's abilities?
>
> For example, the 80386 uses 5V and the Altera board I have drives 1.xV and
> 3.3V max, so I'd have to use a level converter.  At speeds up to a max of
> 40 MHz, would there be any issues?
>
> Also, I'd like to create a "monitor board," which is a board with a 132-
> pin male socket connecting to the CPU on one side, and a 132-pin female
> socket on the other side to which a real 80386 CPU would connect, and then
> to be able to pull signals off the wires between the CPU socket and the
> CPU itself.  I had assumed I would use opto-isolation for this, but I don't
> know if it would work or be best.
>
> In addition, and specific to the 80386 CPU, AMD manufactured an Am386 CPU
> that is 100% compatible with the Intel 80386, but it has the ability to
> underclock down to even 0 MHz in a standby mode (allowing it to consume
> only 0.001 Watts).  I'm wondering if anyone has any experience underclocking
> an 80386 motherboard down into the KHz range, or even Hz range, and if it
> would still work at those slow speeds on the board?
>
> My goals in slowing down the CPU are to detect and isolate timing protocols,
> which I can then scale up to higher speeds once identified.
>
> In any event, any help or advice is appreciated.  Thank you.
>
> Best regards,
> Rick C. Hodgin
>

If you plan to slow down the CPU by slowing down the FPGA clock be 
careful: FPGAs like clean and relatively fast edges and some slow 
generators don't work well.

Pere



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