VOGONS


First post, by alphaaxp

User metadata
Rank Newbie
Rank
Newbie

My first PC was a 486.
When building 486 and previous systems, I always felt that it was not very convenient.

So I recently want to start a more modern and user-friendly 486 project with ATX board type, I also hope to support 286/386 processors
The system architecture I am currently envisioning is shown in the following figure.

What I really need to implement is a new northbridge based on FPGA, which mainly has three interfaces. The first is the host interface that supports multiple processors,
and the second is the memory interface for SDR or DDR, which is related to the selection of FPGA. Finally, there is the host to PCI bridge, a PCI master interface

I really want to hear if you have any novel crazy ideas or suggestions?

Reply 1 of 17, by PC@LIVE

User metadata
Rank Oldbie
Rank
Oldbie

This project is very interesting, for my part, not being a technician, I cannot give you specific suggestions, but from my knowledge in MB repairs, I can say that the 486 architecture was used by CPU manufacturers (not Intel), I believe that there are on the market (or rather there were) CPUs that are 486, improved and speeded up, adapted to socket 7, I don't know the details but I believe that IDT C6 Winchip is one of these.
Perhaps the simplest thing would be to use an ISA or PCI card, the type to insert into a riser card, such a standard was on the market many years ago.
Personally I find the idea of ​​Slot1 very interesting, which through an adapter could easily change the CPU, then with the Celeron Mendocino we returned to the socket (370), and of that there is a non-Intel chipset, with DDR RAM support.
I will follow this project with interest, and I hope you will be able to make it happen.

AMD 286-16 287-10 4MB HD 45MB VGA 256KB
AMD 386DX-40 Intel 387 8MB HD 81MB VGA 256KB
Cyrix 486DLC-40 IIT387-40 8MB VGA 512KB
AMD 5X86-133 16MB VGA VLB CL5428 2MB and many others
AMD K62+ 550 SOYO 5EMA+ and many others
AST Pentium Pro 200 MHz L2 256KB

Reply 2 of 17, by Cyberdyne

User metadata
Rank Oldbie
Rank
Oldbie

Let us start with a 16bit wide 286/386sx and go from there.

I am aroused about any X86 motherboard that has full functional ISA slot. I think i have problem. Not really into that original (Turbo) XT,286,386 and CGA/EGA stuff. So just a DOS nut.
PS. If I upload RAR, it is a 16-bit DOS RAR Version 2.50.

Reply 3 of 17, by MikeSG

User metadata
Rank Member
Rank
Member

All of that is built in to one chip in the Vortex86DX SoC's.

It evolved from DM&P's M6117D (ALI m1217 + i386sx).

Vortex86sx = 486sx class. 300MHz. 16KB+16KB L1. No L2. No FPU. 16bit SDRAM / DDR2-166. PCI, ISA, ATA, Ethernet, USB2, Serial.
Vortex86dx = 486dx class. 600-1000MHz. 16KB+16KB L1. 256KB L2. With FPU. 16-bit DDR2-333. PCI, ISA, ATA, Ethernet, USB2, Serial.
Vortex86mx = Pentium class (MMX). 600-1000MHz. 16KB+16KB L1. 256KB L2. With FPU. 16-bit DDR2-400. PCI, ATA, Ethernet, USB2, Serial. 2D VGA. HD Audio.
Vortex86mx+ = Pentium class (MMX). 600-1000MHz. 16KB+16KB L1. 256KB L2. With FPU. 32-bit DDR2-400. PCI, ATA, Ethernet, USB2, Serial. GPU. HD Audio.
Vortex86dx2. PCI-E.
Vortex86ex. PCI-E. 32KB L1. DDR3
Vortex86dx3. i686. 32KB+32KB L1. 512KB L2. SATA.
Vortex86ex2. Dual CPU (600MHZ + 400MHz). 16KB+16KB L1. No L2. With FPUs. DDR3.

https://en.wikipedia.org/wiki/Vortex86
http://www.dmp.com.tw/tech/vortex86dx/

All drivers are made and compatible with Windows CE, Linux.

Individual chips are $30-50. Full SoC's are ~$300 complete with DDR RAM, ATA/IDE headers etc.

Hard to beat for small form factor, and you can expand it out and give it full ISA/PCI bus and use old school cards...

But you can't use the actual 286-486 CPUs with it.

Reply 4 of 17, by rasz_pl

User metadata
Rank l33t
Rank
l33t

Some good resources:
80286 http://www.s100computers.com/My%20System%20Pa … CPU%20Board.htm
80386 http://www.s100computers.com/My%20System%20Pa … CPU%20Board.htm http://www.s100computers.com/My%20System%20Pa … %20Board_II.htm
80486 http://www.s100computers.com/My%20System%20Pa … CPU%20Board.htm

DDR is not ideal, problems with latency. You will need cache.

https://github.com/raszpl/FIC-486-GAC-2-Cache-Module for AT&T Globalyst
https://github.com/raszpl/386RC-16 memory board
https://github.com/raszpl/440BX Reference Design adapted to Kicad
https://github.com/raszpl/Zenith_ZBIOS MFM-300 Monitor

Reply 5 of 17, by rmay635703

User metadata
Rank Oldbie
Rank
Oldbie
rasz_pl wrote on 2024-09-28, 21:43:
Some good resources: 80286 http://www.s100computers.com/My%20System%20Pa … CPU%20Board.htm 80386 http://www.s100computers.com/My […]
Show full quote

Some good resources:
80286 http://www.s100computers.com/My%20System%20Pa … CPU%20Board.htm
80386 http://www.s100computers.com/My%20System%20Pa … CPU%20Board.htm http://www.s100computers.com/My%20System%20Pa … %20Board_II.htm
80486 http://www.s100computers.com/My%20System%20Pa … CPU%20Board.htm

DDR is not ideal, problems with latency. You will need cache.

DDR 1,2,3,4,5 all have an absolute cycle frequency that would be similar to zero wait

SDRAM PC133 CL2 has a zero wait state cycle frequency of
133/3 = 44mhz

Reply 6 of 17, by rasz_pl

User metadata
Rank l33t
Rank
l33t

It all depends on how expensive FPGA you are willing to use, on something like DE0/DE10-Nano you want sdram with faster cores because of latency

https://github.com/raszpl/FIC-486-GAC-2-Cache-Module for AT&T Globalyst
https://github.com/raszpl/386RC-16 memory board
https://github.com/raszpl/440BX Reference Design adapted to Kicad
https://github.com/raszpl/Zenith_ZBIOS MFM-300 Monitor

Reply 7 of 17, by alphaaxp

User metadata
Rank Newbie
Rank
Newbie
rasz_pl wrote on 2024-09-28, 21:43:
Some good resources: 80286 http://www.s100computers.com/My%20System%20Pa … CPU%20Board.htm 80386 http://www.s100computers.com/My […]
Show full quote

Some good resources:
80286 http://www.s100computers.com/My%20System%20Pa … CPU%20Board.htm
80386 http://www.s100computers.com/My%20System%20Pa … CPU%20Board.htm http://www.s100computers.com/My%20System%20Pa … %20Board_II.htm
80486 http://www.s100computers.com/My%20System%20Pa … CPU%20Board.htm

DDR is not ideal, problems with latency. You will need cache.

I only considered the standard external frequency of 33/40 before. I noticed that sometimes 50x2, 60x2, or even 66x2 are used, the delay of SDR/DDR for these frequencies is too long, L2 is needed

Reply 8 of 17, by alphaaxp

User metadata
Rank Newbie
Rank
Newbie
rasz_pl wrote on 2024-09-28, 22:16:

It all depends on how expensive FPGA you are willing to use, on something like DE0/DE10-Nano you want sdram with faster cores because of latency

At present, I am considering using the Cyclone 1st generation or Stratix 1st generation, there is also a voltage issue. 286/386/Most 486/P24T are 5V IO and require FPGA to be 5V tolerant

Reply 9 of 17, by rmay635703

User metadata
Rank Oldbie
Rank
Oldbie
alphaaxp wrote on 2024-09-29, 00:31:
rasz_pl wrote on 2024-09-28, 22:16:

It all depends on how expensive FPGA you are willing to use, on something like DE0/DE10-Nano you want sdram with faster cores because of latency

At present, I am considering using the Cyclone 1st generation or Stratix 1st generation, there is also a voltage issue. 286/386/Most 486/P24T are 5V IO and require FPGA to be 5V tolerant

There used to be ways of dealing with vio mismatches between the chipset and CPU, but likely moderately complex and speed limited.

Reply 10 of 17, by alphaaxp

User metadata
Rank Newbie
Rank
Newbie
rmay635703 wrote on 2024-09-29, 00:41:
alphaaxp wrote on 2024-09-29, 00:31:
rasz_pl wrote on 2024-09-28, 22:16:

It all depends on how expensive FPGA you are willing to use, on something like DE0/DE10-Nano you want sdram with faster cores because of latency

At present, I am considering using the Cyclone 1st generation or Stratix 1st generation, there is also a voltage issue. 286/386/Most 486/P24T are 5V IO and require FPGA to be 5V tolerant

There used to be ways of dealing with vio mismatches between the chipset and CPU, but likely moderately complex and speed limited.

Yes, I know there are some pull-up resistors, clamp diodes, and so on.

Considering that there are too many processor signals, it is better for FPGA to tolerate 5V. Currently, both of these are still in stock, and even for small batch, there is not a big problem

Reply 11 of 17, by rasz_pl

User metadata
Rank l33t
Rank
l33t
alphaaxp wrote on 2024-09-29, 00:51:

Yes, I know there are some pull-up resistors, clamp diodes, and so on.

what? no! you slap a couple of 74LVC16245 and you are good to go

https://github.com/raszpl/FIC-486-GAC-2-Cache-Module for AT&T Globalyst
https://github.com/raszpl/386RC-16 memory board
https://github.com/raszpl/440BX Reference Design adapted to Kicad
https://github.com/raszpl/Zenith_ZBIOS MFM-300 Monitor

Reply 12 of 17, by alphaaxp

User metadata
Rank Newbie
Rank
Newbie
rasz_pl wrote on 2024-09-29, 03:44:
alphaaxp wrote on 2024-09-29, 00:51:

Yes, I know there are some pull-up resistors, clamp diodes, and so on.

what? no! you slap a couple of 74LVC16245 and you are good to go

A 74LVC16245 chip can perform level conversion on 16 bit signals, increasing the delay by 2ns-8ns.
A processor requires at least 7 chips and is not friendly to PCB layout
If choosing a 5V tolerant FPGA will not have these problems, the only drawback is that the selection range is limited.
A properly set stratix can work with 5V chips

Reply 13 of 17, by alphaaxp

User metadata
Rank Newbie
Rank
Newbie

Progress in the past two days
1. The bus protocol of 386/486/pentium is of the same type, and there is a chance to create a universal host interface that can adapt to all these processors. I will continue to confirm later.
2. For high external frequency situations, consider adding SSRAM to implement L2 cache. Find 72Mbits SSRAM with width of 36 bits, which can form 16MB L2 in two chips.
External frequency below 50M read and write latency can achieve 2-1-1-1, and higher external frequency read and write latency is 3-1-1-1. The frequency of SSRAM is 2xFSB
3. Some people want a 486 with AGP, considering that AGP is about 66M PCI plus double data rate, there is a chance to achieve it.

Reply 14 of 17, by MikeSG

User metadata
Rank Member
Rank
Member

SSRAM:
You might not be able to find 5v Synchronous SRAM, they are all 3.3v compatible that I can find. Which means adding level shifters, or using ASYNC.(?)

Pentium cache (part T35L6432A) is 64k x 32 SSRAM/BSRAM. 3.3v.

Reply 15 of 17, by alphaaxp

User metadata
Rank Newbie
Rank
Newbie

This is a point, and one of the two regrets of the current architecture, which is the inability to achieve the read timing of 2-1-1-1 at full frequency

The original design of Pentium series L2cache had SSRAM addresses and data directly connected to the processor's tri state main interface.
At present, the voltage of the SSRAM found is 3.3V or below, while the IO of 286, 386, most 486, and P5 are 5V. Directly connecting them will damage the SSRAM chip.
Stratix's IO can tolerate 5V, so I hid the SSRAM behind the FPGA. At time zero, the processor's memory access is valid, the FPGA latches the memory access address on the rising edge and outputs it to the SSRAM.
The first rising edge SSRAM latches the address, the second rising edge SSRAM outputs the read data, and the third rising edge FPGA latches the data and tag, and compare the tag.
If it hits, the data is output, and the fourth rising edge processor takes away the L2 read data. SSRAM has four cycles, corresponding to two cycles of processor 3-1-1-1 read timing.
In one sentence, the original design of SSRAM can achieve 3-1-1-1 at the same frequency, and hiding SSRAM behind FPGA requires doubling the SSRAM frequency.

The official external frequency of SS7 is up to 100, and the frequency of SSRAM must be greater than 200. Fortunately, the highest frequency of SSRAM I found is about 250M.
If the overclocking is not too high, it is basically sufficient. To achieve the timing requirement of 2-1-1-1, the SSRAM frequency is four times that of FSB, and the external frequency of the processor does not exceed 50M.
Therefore, for 286386, the vast majority of 486, and P24T, zero overhead latency can be achieved

Another regret of this architecture is AGP4x, it transfers data 4 times per cycle, 66x4=266, which is at the same rate as DDR266. FPGA also supports 1.5V, which theoretically can be implemented with Stratix,
but more time is needed to study the spec and implement it.

The biggest problem with current hardware is that it's not fun, the choices are limited, everyone is the same, and it's boring.
This is also my original intention for designing this board. It can accommodate 20+types of processors, AGP1x/2x, and possibly even 4x graphics cards, Voodoo 1/2/3/4, Rendition, PCI S3, ISA DOS graphics cards, CGA/EGA, various PCI/ISA sound cards, PCI ATA100/SATA, USB2.0. It is capable of playing games before 2000, and I believe most people who have come from that era will have fun playing it

Reply 16 of 17, by alphaaxp

User metadata
Rank Newbie
Rank
Newbie

Just thought of an interesting question, what is the best IO expansion design for a motherboard ranging from 286 to SS7?
AGP:PCI:ISA
1:6:1
1:5:2
1:4:3
1:3:4
1:2:5
1:1:6

Reply 17 of 17, by alphaaxp

User metadata
Rank Newbie
Rank
Newbie

After researched the spec of Intel P6 front side bus and I would like to add support for the P6 series from Pentium Pro to Tualatin on the target motherboard.

The implementation method is to develop different RTL codes for the host interface of processors with different protocols,
and then integrate them with other parts of the IP to synthesize corresponding Northbridge FPGA configuration files for different processors.
By selecting jumper wires on the motherboard, load the corresponding configuration files to achieve the corresponding functions.
The Intel P6 protocol has a configuration file, and the Pentium level front side bus will be implemented in two versions. One version corresponds to Intel, and Intel Pentium processors naturally support SMP.
The other version is designed specifically for AMD/Cyrix/Winchip/Rise and supports SMP through Northbridge.
486/386 will have one version, 286 will have one version.

Now starting the development of P6 Host Interface first

I feel that the ratio of IO expansion slots, 1AGP, 5PCI, 2ISA, would be better to use