![Ellipsis Projects](/img/default-banner.jpg)
- 9
- 4 315
Ellipsis Projects
Australia
เข้าร่วมเมื่อ 25 เม.ย. 2014
A 32-bit Register (RISC-V Part 6)
The RISC-V CPU will need some registers to store the 32-bit numbers used by the add/sub module. Here we will learn how a computer can store values in a digital circuit with feedback and we'll design a 32-bit register in KiCad.
OR gate feedback circuit: www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxAUgoqoQFMBaMMAKDARRGzXABZeueAWH5QQnJAhYB3QcNEIwnEQMgsAshSV8BCDIR1iU0KbO5UlecRmUoraszzCEqdq86oPxedy+-viTi83cECQXmdQoJktZQVtMDCvRWUwiINE6IAZa1srNHc7MSoAMwBDABsAZzpqNSA
SR latch circuit: www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWc0FwCwCY0HYEA4cEMElURTJyBTAWjDACgwEJiA2cNygZjb08qUMUckxYh2EvP178M0kcMoIGAdxCyBGvuACcStdv5h9EhB0mRDm+TJ2Xr982Y4mD6yW5fhsHKx+dJIOwDABlvbkg0Hw5I6OEIABcAJwBXKnIoBnDPNGiwX3A8iXAQFPTMqwBZIy084y4SjBQGGpsFeqk5CRaAD3AEXXAMShMIMAxuEAtogGcqRIZ+tG5jVZA0ZzA0CHjogEUlouwpVjgpaJmQZKp5xeX1jDYOTYs2IavDtEgpr24iDbcYRoPCCEB4AD6bDQEMgEO+ul0EIQsNg8F0vnMxAhdAhGAhkO4DCAA
SR latch with enable circuit: www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWEAWaAmBayQBxvpAGxoDsAnCApJZdQgKYC0YYAUGAhBoSKWiAGZCOXiX7V+SBO068EPMMmSDh4JVF4bpAdxUjFyofpI9IrXUfAm5PNMmpmLqvnt72o513Ynyrpz9x+NuCEDgG+3sGBZgCyrgYoyPrqEtDScZYuSiIuqdIcEGBo+sXBRSISNPmy5bw4ORH1GpKUnrUCkMpkPB3KjiDdgp0DCimegwm1CWYAMuClLPyEyosa1AAuAE4ArvQ0s-M5YiDLouIaW7v7rAAeIMz8pBTIXHgobiCb9ADO9Ou3A3m1Be8wE7zsIF+-zuyAEJWBviKYOUEIAigClNQBPgUAgRNiwbZlOi5oNeiNBJg1iAAGYAQwANr9rndiIIcCsBIYcCRwcp6AA7OkAIwZ9FYQA
D latch with enable circuit: www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWEAWaAmBayQBxvpAGxoDsAnCApJZdQgKYC0YYAUGAhBoSKWiAGZCOXiX7V+SBO068EPMMmSDh4JVF4bpAdxUjFyofpI9IrXUfAm5PNMmpmLqvnt72o513Ynyrpz9x+NuCEDgG+3sGBZgCyrgYoyPrqEtDScZYuSiIuqdIcEGBo+sXBRSISNPmy5bw4ORH1GpKUnrUCkMpkPB3KjiDdgp0DCimegwm1CWYAHiCMOEgsIoyqRRDKdiAAIqxzyAIl1Mi+RQIobiAAinuJ1AL4KAgiD+e2yjcAkiFqymAKZHEUDSrV0-1+PxY4jaCiK4FKUI8YIB-HBuRholRpXRABkRkMuj1MBpqAAzACGABsAM70GizECEc6HBQCJCHCibZT0AB25IARpT6Kw8eDEYwkuA4Q4QBSaXSkGYgA
Edge triggered D flip flop circuit: www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWEAWaAmBayQBxvpAGxoDsAnCApJZdQgKYC0YYAUGAhBoSKWiAGZCOXiX7Vxldp14IeYZMkHDwiqL3UJWAd2UiFSofpI9IOveBOyeaZNTO6jo-k9v3zru9cunz3H95ghO66-m7e-mYAshYGKMj6ahLQWjGuYvEifOpoKdIQYGj6RYElEpr54CVFWXK8OCLldOaFIgKQSmQ87UoOIF2CHf3ySeYDca2qvawAHigCxdTIdYUCKLxKAIqz8dQC+CgIbWhrNlusAJLgI0pB4GSSMEhauncT8oVQLR-8kyzi33uvxsGT6d2yk2yfUYiiyXkYAiEGxCIBhCWu1DRcJRWJAOExiJ4+K+ulx-1RsLx7iuZM+ZOC6ieUjmjAQyAoOB4rP2eIoSlsIAAIuYESpyQikeToel+KL9J9pUjsnLnF8OBAJTY6ox8LVTBpmurUYThqjdaamlJSebzTrcLwBdDzXE7cVGiKBrbnaNSZ74Z77dDxmpXbxAx6fqjg9MjaHxeMFQapLGbf6zvYky8o5G3gqRTLjSoBJgSaaemWS2YaeTi7K7rXGSkraj6yWBg3oTWSyqO5cKYRDN2FoPHk2swicCPC21K6wADIU9HE1mfYkZgBmAEMADYAZ3oNDMC5hA8E3fZ3Ur6i3e4PSDMLLZJDPIhXbUIEH5SgAxtuANasEAA
0:00 RISC-V Registers
1:48 Digital Feedback
2:46 SR Latch
6:21 D Latch
7:07 Edge Triggered Flip Flops
10:07 74HC574 DFF Datasheet
11:22 74HCT245 Buffer Datasheet
12:45 32-bit Register Schematic (KiCAD)
14:13 32-bit Register PCB (KiCAD)
OR gate feedback circuit: www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxAUgoqoQFMBaMMAKDARRGzXABZeueAWH5QQnJAhYB3QcNEIwnEQMgsAshSV8BCDIR1iU0KbO5UlecRmUoraszzCEqdq86oPxedy+-viTi83cECQXmdQoJktZQVtMDCvRWUwiINE6IAZa1srNHc7MSoAMwBDABsAZzpqNSA
SR latch circuit: www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWc0FwCwCY0HYEA4cEMElURTJyBTAWjDACgwEJiA2cNygZjb08qUMUckxYh2EvP178M0kcMoIGAdxCyBGvuACcStdv5h9EhB0mRDm+TJ2Xr982Y4mD6yW5fhsHKx+dJIOwDABlvbkg0Hw5I6OEIABcAJwBXKnIoBnDPNGiwX3A8iXAQFPTMqwBZIy084y4SjBQGGpsFeqk5CRaAD3AEXXAMShMIMAxuEAtogGcqRIZ+tG5jVZA0ZzA0CHjogEUlouwpVjgpaJmQZKp5xeX1jDYOTYs2IavDtEgpr24iDbcYRoPCCEB4AD6bDQEMgEO+ul0EIQsNg8F0vnMxAhdAhGAhkO4DCAA
SR latch with enable circuit: www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWEAWaAmBayQBxvpAGxoDsAnCApJZdQgKYC0YYAUGAhBoSKWiAGZCOXiX7V+SBO068EPMMmSDh4JVF4bpAdxUjFyofpI9IrXUfAm5PNMmpmLqvnt72o513Ynyrpz9x+NuCEDgG+3sGBZgCyrgYoyPrqEtDScZYuSiIuqdIcEGBo+sXBRSISNPmy5bw4ORH1GpKUnrUCkMpkPB3KjiDdgp0DCimegwm1CWYAMuClLPyEyosa1AAuAE4ArvQ0s-M5YiDLouIaW7v7rAAeIMz8pBTIXHgobiCb9ADO9Ou3A3m1Be8wE7zsIF+-zuyAEJWBviKYOUEIAigClNQBPgUAgRNiwbZlOi5oNeiNBJg1iAAGYAQwANr9rndiIIcCsBIYcCRwcp6AA7OkAIwZ9FYQA
D latch with enable circuit: www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWEAWaAmBayQBxvpAGxoDsAnCApJZdQgKYC0YYAUGAhBoSKWiAGZCOXiX7V+SBO068EPMMmSDh4JVF4bpAdxUjFyofpI9IrXUfAm5PNMmpmLqvnt72o513Ynyrpz9x+NuCEDgG+3sGBZgCyrgYoyPrqEtDScZYuSiIuqdIcEGBo+sXBRSISNPmy5bw4ORH1GpKUnrUCkMpkPB3KjiDdgp0DCimegwm1CWYAHiCMOEgsIoyqRRDKdiAAIqxzyAIl1Mi+RQIobiAAinuJ1AL4KAgiD+e2yjcAkiFqymAKZHEUDSrV0-1+PxY4jaCiK4FKUI8YIB-HBuRholRpXRABkRkMuj1MBpqAAzACGABsAM70GizECEc6HBQCJCHCibZT0AB25IARpT6Kw8eDEYwkuA4Q4QBSaXSkGYgA
Edge triggered D flip flop circuit: www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWEAWaAmBayQBxvpAGxoDsAnCApJZdQgKYC0YYAUGAhBoSKWiAGZCOXiX7Vxldp14IeYZMkHDwiqL3UJWAd2UiFSofpI9IOveBOyeaZNTO6jo-k9v3zru9cunz3H95ghO66-m7e-mYAshYGKMj6ahLQWjGuYvEifOpoKdIQYGj6RYElEpr54CVFWXK8OCLldOaFIgKQSmQ87UoOIF2CHf3ySeYDca2qvawAHigCxdTIdYUCKLxKAIqz8dQC+CgIbWhrNlusAJLgI0pB4GSSMEhauncT8oVQLR-8kyzi33uvxsGT6d2yk2yfUYiiyXkYAiEGxCIBhCWu1DRcJRWJAOExiJ4+K+ulx-1RsLx7iuZM+ZOC6ieUjmjAQyAoOB4rP2eIoSlsIAAIuYESpyQikeToel+KL9J9pUjsnLnF8OBAJTY6ox8LVTBpmurUYThqjdaamlJSebzTrcLwBdDzXE7cVGiKBrbnaNSZ74Z77dDxmpXbxAx6fqjg9MjaHxeMFQapLGbf6zvYky8o5G3gqRTLjSoBJgSaaemWS2YaeTi7K7rXGSkraj6yWBg3oTWSyqO5cKYRDN2FoPHk2swicCPC21K6wADIU9HE1mfYkZgBmAEMADYAZ3oNDMC5hA8E3fZ3Ur6i3e4PSDMLLZJDPIhXbUIEH5SgAxtuANasEAA
0:00 RISC-V Registers
1:48 Digital Feedback
2:46 SR Latch
6:21 D Latch
7:07 Edge Triggered Flip Flops
10:07 74HC574 DFF Datasheet
11:22 74HCT245 Buffer Datasheet
12:45 32-bit Register Schematic (KiCAD)
14:13 32-bit Register PCB (KiCAD)
มุมมอง: 564
วีดีโอ
Testing Expanded Arduino I/O (RISC-V Part 5)
มุมมอง 702หลายเดือนก่อน
To complete the test card I'll solder up the PCB, correct some dumb mistakes and finally test if the ALU add/sub module works. This card adds 138 I/O to an Arduino Uno and will enable me to test the modules of the RISC-V build. 0:00 Fixing PCB mistakes 1:01 I2C pull-up resistors 2:48 Setting up the I/O expander chips 5:51 Output to the I/O 12:28 MCP23017 vs MCP23S17 14:11 Testing add 16:26 Test...
Expanding Arduino's I/O for the Test Circuit (RISC-V Part 4)
มุมมอง 1.8Kหลายเดือนก่อน
To test the RISC-V CPU I'm going to need a lot of I/O - about 138 bits of it. Arduino offers only 18 bits of I/O. So in this video I'm going to look at various types of serial to parallel expansion that can significantly extend the Arduino's capabilities.
ALU Output Buffering (RISC-V Part 3)
มุมมอง 3254 หลายเดือนก่อน
We finally finish the RISC-V ALU's add/sub module - although testing may be an issue.
ALU add & sub in Verilog (RISC-V Part 2)
มุมมอง 5505 หลายเดือนก่อน
As I build the RISC-V CPU it will be comforting to know that I can retest the design as I add new parts to it. To that end, every circuit that I design I'll also build a Verilog module and load it onto an FPGA. In this video I begin by coding the add/sub module of the ALU.
ALU add & sub (RISC-V Part 1)
มุมมอง 3246 หลายเดือนก่อน
An Arithmetic Logic Unit (ALU) is the heart of a CPU. Here, we start by designing a circuit to add and subtract 32-bit numbers. This will be used as a building block for an ALU that will end up in a RISC-V CPU that I will build on both PCB and on an FPGA.
Negative Binary - Two's Complement
มุมมอง 256 หลายเดือนก่อน
How do computers represent negative numbers? In this video we have a quick look at how the two's complement number system allows computers to easily represent negative numbers and perform arithmetic on them.
Building a 4-bit adder
มุมมอง 786 หลายเดือนก่อน
How do computers add numbers? In this video we look at how binary numbers are added and build a 4-bit adder from basic logic gates (AND, OR & XOR).
Binary numbers crash course
มุมมอง 496 หลายเดือนก่อน
How do computers represent numbers? In this video we have a quick look at how binary numbers work and how a computer can use voltages to represent positive integers.
I tried replicating Arduino i/o expansion you did, except with esp32 and instead of MCP i used CD4067 16 channel analog multiplexer since I don't really need parllel i/o and MCP is a bit costly in my area, around the same cost as esp32 but cd4067 is far cheaper for me. Anyway good work as always. What is your opinion on ysing cd4067 instead mcp23017? Are there any better and cheaper options you suggest?
To be honest, I use the MCP because it's the one I'm familiar with. I tend to buy most of my chips on Aliexpress and the prices there are usually cheaper than anywhere else and often include shipping - you can get 5 surface mount MPCs for about 10AUD. As for other I/O expanders, depending on your needs you might get away with something like a shift register which can be much cheaper. But others similar to the MCP (e.g. similar chips from TI) I've not used, so couldn't advise.
This series is very interesting and informative. I'm really enjoying it a lot. It is moving along at a nice pace. This reminds me of Ben Eater's 6502 series. Well done
Thanks so much. Any comparison to Ben Eater is high praise :-)
Awesome bro
Thanks mate 🤗
Well explained! Currently learning System Verilog
Thanks!
Nice job!
Thanks mate.
I am quite surprised that you want to use the 0-variant. Wouldn't the S-variant be much more convenient. You just have to set the Address-Enable-Bit on setup and get 16-Port addressed like a single huge chip. The Datasheet is quite comprehensive and when using Bank-Mode it's so simple that I don't even bother with drivers; this chip just works.
Since I wanted to use I2C to reduce I/O count I went ahead and ordered the 0-variant before making this video without reading the S-variant section of the datasheet. So I wasn't even aware of the addressing mode option for the SPI interface - thanks for letting me know about it!
Nice video i was thinking of replicating this project with esp32 with a different i/o expander. Seems pretty intresting.
ESP32 is my goto micro for many projects. A few more I/O for it would be a great idea.
The MCP23017 with I2C interface has a silicon bug which is why pin 7 of each port is now listed as output only. Those pins can still be used as an input because all of the circuitry is still in there, but you naturally run the risk of hitting that bug if the conditions are right. Search "MCP23017 bug" for some information about it. Or you can use the SPI version which doesn't have the bug, if your application allows it. Or of course another I2C expander.
Thank you man! please keep this coming
Glad you enjoyed it!
Hey man I've just been getting into these recently, pretty awesome stuff. Thanks for going through it so clearly
Thanks mate. Glad to hear your getting something out of it. More to come soon.
Why use a 74245 instead of a 74244 or another buffer ic instead of the full transceiver ic?
I was originally looking to use a 241 or similar but they didn't seem to be available in an SO package on AliExpress where I was buying all the parts. Also, I may want a bidirectional buffer later when I start looking at integrating memory, so I just bought a bunch of the 245s. So no technical reason, just for practicality.
Happy to bump into your channel, subscribed!
Thanks Alice.
subbed, will keep up with the series, good shit
Thanks @MegaBlueIronV20.
Liked and subscribed.
Nice! Educational. Looking forward to the whole series!
Thanks James.