| Electronics > Beginners |
| modern TTL/Logic-gate/74xx |
| << < (3/13) > >> |
| ker2x:
--- Quote from: magic on October 07, 2019, 06:39:15 pm ---The one chip ALU you can probably forget, but many 74 series stuff is still being made, no problem. I think Mouser has the ability to restrict search to particular families like 74HC so you could see what's available using Wikipedia as quick part number decoder. FFs, counters, decoders, muxes, buffers you will get for sure and that alone may reduce component count quite a bit compared to bare logic gates. --- End quote --- Ha thank you ! I tried to restrict to "74" and "SMD/SMC", expecting to have the full 74xx range but it only returned 10 result and all of them were diode. Yeah, i don't want to buy an ALU, it would defeat the purpose of the project. If i just wanted a cpu i could just buy one for much cheaper than building one with logic gate ;D I see some toshiba part... didn't they go bankrupt decades ago ? ??? Nexperia seems to be specialized in automotive so i'll probably forget about it. SMT do some parts. Most chips seems to come from "ON Semiconductor" so i'll just go with that. i guess ? And they provide the ECAD Model, which is a must have. |
| rstofer:
Search the Internet for 'LC-3' a very nice RISC design that isn't necessarily implemented in hardware but the project does include the microcode worksheet and a full-blown transition diagram. There is a related book by Patt and Patel that describes everything you need to know about logic and system design. The project comes with a C compiler and an assembler. https://www.amazon.com/Introduction-Computing-Systems-Gates-Beyond/dp/0072467509 There is also a newer version of LC-3 known as LC-3b which is based on byte addressing instead of 16 bit word addressing. Here is some documentation on the LC-3b project: http://users.ece.utexas.edu/~patt/05f.360N/handouts/360n.appC.pdf Similar documents are out on the web for the original LC-3 project. When you block out your TTL, count the number of wire-wraps. Heck, just count the number for a 16 bit register and then realize that I can declare such a register with one line of code and manipulate it in a small 'process' for things like load and clear. I can even do an add '1' in case I am implementing the Program Counter. Maybe 10 lines of code... The LC-3 CPU state machine uses 1000 lines of VHDL plus another 400 for things like registers and memory while the UART and Baud Rate Generator add another 400 or so. So, for about 2000 lines of code I didn't have to wire-wrap a single device. I didn't need to buy chips and sockets, all I needed was an FPGA board. Now, I went all-in on the FPGA board because I like peripherals like 7 segment displays, LEDs, switches and buttons. But that's just me! https://store.digilentinc.com/nexys-a7-fpga-trainer-board-recommended-for-ece-curriculum/ In theory, I could add enough hardware to include networking but that's a little above my skill level. At a minimum, I would be using a LOT of Xilinx IP to do such a thing. Duplicating the LC-3 project is probably not interesting to you as you have your own design concepts. But the thing is, when you hit a design wall, it's pretty cheap to rip out VHDL and do it over. Not so simple with wire-wrap. HINT: Write a program that has some kind of datastructure for your netlist. The idea is to print out a wire-wrap list by level that will put the wire ends on the same level. There would usually be just a first level list and a second level list. You would do this because it is easier to disassemble. At most, you remove 3 wires. If you wrapped the wire as a daisy chain, you could possibly have to remove the entire chain to make one little fix. I took an IBM 1130 and all of its peripherals and stuffed it into an FPGA about the size of a postage stamp. It runs all of the factory software, unchanged. And it runs at 50 MHz instead of 400 kHz and if I wanted to spend a little more time on the project, it would probably run at 100 MHz It's about 10,000 lines of code as I recall but there is a lot of code tied up in the line printer, card reader, bouncing ball typewriter, keyboard, disk subsystem, DMA system and, of course, the 1627 drum plotter. FPGAs are amazing! So was the 1130 when I was wandering through undergrad: http://ibm1130.org/ Of course I'm going to champion FPGAs! It's like having a dumpster full of logic just waiting for a design. Typical transition schedule for FPGAs: Blink an LED then build a CPU. Not much in the middle... |
| edavid:
Your questions are really confusing. 1. There are still many standard logic ICs available in various CMOS versions. For a good introduction, see the TI website: http://www.ti.com/logic-circuit/support-training.html 2. There are many homebrew CPUs built out of MSI logic ICs instead of simple gates. For examples see: https://www.homebrewcpuring.org/ 3. There is indeed a big difference between CPLDs and FPGAs: CPLDs can be programmed via schematic capture. So even if you don't want to learn an HDL, you could still consider CPLDs. 4. If you just hate VHDL, you should look at Verilog, which is not Ada like. |
| magic:
I did say: 74HC :P Or maybe 74LVC, that's a newer one. |
| rstofer:
Another fun way to design CPUs is with microcoded design and the old AM2900 series logic. There are still AM2901 (4 bit slice) on eBay for reasonable prices. It would take a bit of research to find all the proper chips but there aren't many different devices in the family Plus you need some kind of flash for the microcode. Full-on EPROM might be a little prohibitive in the early stages. I took a class on these devices many years ago and we designed an 8086 replacement without too much difficulty. The standard text is "Bit Slice Microprocessor Design" by Mick and Brick https://www.alibris.com/booksearch?keyword=bit+slice+microprocessor+design Extra credit for writing a meta-assembler for defining the microcode and filling in the very wide ROM word. Usually, every control signal, anywhere in the machine, has a bit position in the microcode word. That's why they get very wide, very fast. Note that the LC-3 project I referenced above uses a microcoded design and the word is about 35 bits wide. Pretty narrow as microcode goes. Even if you use discrete logic, I would still recommend a microcoded control unit. It is so much easier to make changes (and additions) when the only thing that changes is some bit in a word. |
| Navigation |
| Message Index |
| Next page |
| Previous page |