8088 microprocessor IP core fits in 308 LUTs, runs at 180MHz on a Kintex-7 FPGA
forums.xilinx.com
forums.xilinx.com
There's more from the creator at http://www.eetimes.com/author.asp?section_id=216&doc_id=1328... including this nice tidbit:
The result is the MCL86, which is basically a 7-instruction, 32-bit micro-sequencer. Some of the micro-sequencer's instructions are specialized so as to allow it to rapidly decode instructions as well as nest function calls. With these seven instructions, I was able to microcode all of the 8086 opcodes in a relatively small number of micro-sequencer clocks.
A video of this running 8088mph would be awesome, they already have a number of videos of this running other stuff on a PC: https://www.youtube.com/channel/UC9B3TaEUon-araO2j7tp9jg EDIT: There is a video of it runnin 8088 mph that polpo linked!
Then once there was space to put all the stuff needed for a single instruction on the die, we found ourselves clock-limited by long logic depth and started splitting the functions out across "pipeline" stages, which begat RISC, and we've never looked back.
But all that being said: this design is totally cheating. Sure, the logic takes only 308 LUTs. But the microcode is stored in 4 block RAMs, which a quick Google tells me are 36kbit a piece. That's a much more significant chunk of chip resources than is implied in the linked article.
I'm willing to bet lots that 4/n_block_ram > 308/n_lut.
So that design uses 308/(2*63550) =~ 0.2% of the logic resources on the FPGA, but 4/(28620/36) = 0.5% of the RAM.
Not nearly as imbalanced as it sounded to me originally, but still: the LUT numbers are spun by more than a factor of two. The design is more closely equivalent to "640 LUTs". Which interestingly is very comparable to the equivalent transistor count on the original part from Intel.
So...you could put 100 8088 work-alikes on one FPGA?
At the risk of inducing /. nostalgia in the old timers here...can you imagine a Beowulf cluster of these?
http://www.xilinx.com/products/silicon-devices/fpga/kintex-7... (<-- HTML overview page at Xilinx)
...which contains 10,250 slices where one slice contains four 6-in-2-out lookup tables and 8 flipflops:
http://www.xilinx.com/support/documentation/user_guides/ug47... (<-- family user-guide) http://imgur.com/viEdQUv (<-- png of page 19 with "schematic" of one logic slice)
On page 19: The four boxes on the left are the lookup tables implementing combinatorical logic (A/W/O5/O6/...), the eight squares on the middle/right (D/CE/CK/SR/...) are flipflops (store one bit of data each). There's a bunch of random multiplexers (the trapezoid ones, they choose one output of X inputs) scattered around. This "schematic" is of course simplified ;-).
So, 10250*6/308=199.7 fits the 8088 "IP" 200 times. Of course this is a very naive calculation ignoring any routing between cores or any peripherals to make them do anything useful, and one would use one of such a 8-bit CPU for easy housekeeping tasks, and not 200 of them. But it shows nicely how incredibly dense current FPGAs are.
Of course, just one bare chip will set you back around $120. https://octopart.com/search?q=XC7K70T (<-- part search)
That's a total of 17,889 Intel 8088 Microprocessors.
...That said, that's crazy impressive.
This stream of maybe a TByte/sec of data will then be filtered and decimated/downconverted in real time by racks full of DSP/FPGA boards. Here's a picture of one board used for an Australian facility:
http://www.atnf.csiro.au/news/newsletter/oct06/CABB.htm
5x Virtex II XC2VP50 (23,616 slices, 2 PowerPC CPU blocks, $1700 each)
5x Virtex 4 XC4VSX55 (15,360 slices, $1300 each)
Yes, an ASIC might be more energy efficient and could be made faster, but FPGAs give you the flexibility to adapt your algorithms and filter topologies. And an ASIC run might cost you half a million dollars whereas with FPGAs you only spend ~15'000$/board.
OMG,that would be one fast Beowulf cluster!
Maybe the size of my monitor is contributing to this. My DOS gaming days were on 12" and 14" CRTs current play is on 27" LCD.
To be a kid again!
Say a modern day FPGA has 10 million gates. 6 gates/LUT. That gives 1.6 million LUTS. Let's say half are used up by other IPs and IOs within the chip. 800k/308 = ~2500.
You could have 2500 of the 8088 running at 180MHz simultaneously. Why? For science.
That could actually be useful.
Check out FreeRangeFactory. They have some good intro books. Not sure how advanced they get (as I do mostly verilog). Feel free to shoot me a message if you get stuck.
In particular, the Kefrens bars at 4:42 render completely wrong.
Having said that, the fact that the music slows down noticeable during the moire-effect seems to indicate that indeed some instructions are a few cycles off here and there.
EDIT: Thanks for the explanations, guys!
LUT = Look-Up Table
LUTs are the building blocks of FPGAs.
A LUT is, more or less, the smallest logical element on an FPGA (a piece of programmable hardware) -- it's a Look-Up Table. They're not directly comparable from FPGA to FPGA, because some FPGAs have different sizes; in the early days, LUTs had 3 inputs and produced one output, but on modern FPGAs, 'LUT4's (4 input, 1 output) are the smallest that you'll reasonably get, and some FPGAs even use 'LUT6's (6 input, 1 output; sometimes divisible into 5 input, 2 output, or other subdivisions) as their basic logic element. But no matter how you slice it, 308 LUTs is impressively small, especially for 180MHz.
A chip half-way between a PAL (think of a dozen or so gates in a small package, you could choose how they were hooked up; it was fast and it was small) and an FPGA (relatively huge and expensive). Both programmable, but PALs usually only once.
http://1tour.vn http://en.1tour.vn http://1tour.vn/khach-san http://1tour.vn/tour http://blog.1tour.vn http://1tour.vn/khach-san/ha-noi http://1tour.vn/khach-san/sapa/ http://1tour.vn/khach-san/da-nang/ http://1tour.vn/khach-san/da-lat/ http://1tour.vn/khach-san/nha-trang/ http://1tour.vn/khach-san/vung-tau/ http://1tour.vn/khach-san/phan-thiet/ http://1tour.vn/khach-san/sai-gon/ http://1tour.vn/khach-san/phu-quoc/
You may be confusing the 8088 CPU with the 8051 microcontroller, which is extremely common in embedded designs.
Coincidence? Don't think so.
For most of us, Dr. Moore had other plans.
For the past four decades, Robert Chao has remained indifferent to the cataclysmic vortex of Moore’s Law. His first patent (4215281), filed in February 1978 on behalf of Supertex Semiconductor (of which he was a founder), was for a CMOS integrated circuit - a single-chip solution that provided the platform enabling the ubiquitous home smoke detector.
http://1tour.vn http://en.1tour.vn http://1tour.vn/khach-san http://1tour.vn/tour http://blog.1tour.vn http://1tour.vn/khach-san/ha-noi http://1tour.vn/khach-san/sapa/ http://1tour.vn/khach-san/da-nang/ http://1tour.vn/khach-san/da-lat/ http://1tour.vn/khach-san/nha-trang/ http://1tour.vn/khach-san/vung-tau/ http://1tour.vn/khach-san/phan-thiet/ http://1tour.vn/khach-san/sai-gon/ http://1tour.vn/khach-san/phu-quoc/ http://en.1tour.vn/accommodation/halong-bay-cruises-tours http://en.1tour.vn/tour/hanoi/ http://en.1tour.vn/tour/sapa/ http://en.1tour.vn/tour/mekong-delta/ http://tourdulich123.com/ http://dongtaydulich.com/ http://datvemaybayi.com http://monngon7.com http://dulichasian.com/ http://travellvnn.com/ http://tourgiarenhat.com http://vemaybayr.com http://dulich3mienn.com http://khachsan9.com/ http://cantho60s.com http://raovatzoom.com http://vnco.net http://cachlamkem.vn http://thoitrang365.net http://autocar24.com