LMARV-1 reboot part 10: Some errors, some schematics

  Рет қаралды 1,778

Robert Baruch

Robert Baruch

3 жыл бұрын

A somewhat short video this time, catching some errors, and trying out some schematics.
nMigen exercises: github.com/RobertBaruch/nmige...
github repo for code: github.com/RobertBaruch/riscv...
RISC-V specs: riscv.org/technical/specifica...
nMigen tutorial: github.com/RobertBaruch/nmige...

Пікірлер: 26
@dnwheeler
@dnwheeler 3 жыл бұрын
Coincidently, I'm wearing a Weyland-Yutani shirt right now, too. "Building Better Worlds"
@obiwanjacobi
@obiwanjacobi 3 жыл бұрын
If the 'totally generic' board idea doesn't work, you can at least combine similar types of boards. Like have one register card that can be used for all registers - etc. Nice progress, thanks for taking us along.
@LaserFur
@LaserFur 3 жыл бұрын
it's interesting in how you are now looking at one of the things that was done in the early computers. to reduce the number of different types of cards they had the cards designed so that they could do different things depending on how the backplane was wired.
@smunaut
@smunaut 3 жыл бұрын
Your ring oscillator example has an even number of stage :D
@marknn3
@marknn3 3 жыл бұрын
Then it's a flip-flop :-)
@TomStorey96
@TomStorey96 3 жыл бұрын
"How's that, cat?" 😸
@truezulu
@truezulu 3 жыл бұрын
As always: Very interesting!
@marijnstollenga1601
@marijnstollenga1601 3 жыл бұрын
Can't wait to see the first cards!
@Jonas_Meyer
@Jonas_Meyer 3 жыл бұрын
I would put some not mounted footprint on the PCB for some larger MLCC capacitors just in case you need them.
@miharu3188
@miharu3188 3 жыл бұрын
Flava tech live :)
@abeditani8293
@abeditani8293 3 жыл бұрын
6:40 yes that what I was see it wrong from the start . You need outside synchronize controls
@KingJellyfishII
@KingJellyfishII 3 жыл бұрын
Easiest way to solve this is to have the entire CPU as a ROM, with the program as the address and the output as the data :p
@LaserFur
@LaserFur 3 жыл бұрын
a 4GB static rom?
@KingJellyfishII
@KingJellyfishII 3 жыл бұрын
@@LaserFur 4000000GB more like
@merseyviking
@merseyviking 3 жыл бұрын
@@KingJellyfishII You can buy them on eBay, totally legitimately. :)
@KaneYork
@KaneYork 3 жыл бұрын
Register file X/Y/Debug should fit on one card each, right? But yeah that makes sense for every internal register
@sabriath
@sabriath 3 жыл бұрын
I would be impressed if this were built as a mechanical or fluidics computer.
@naikrovek
@naikrovek 3 жыл бұрын
which Surface device are you using for recording? Or I guess it could be a Wacom device. GIMME DEM HARDWARE SPECS BRO
@RobertBaruch
@RobertBaruch 3 жыл бұрын
Wacom Cintiq 27QHDT
@hjups
@hjups 3 жыл бұрын
Shamt is encoded in the same field as immediate. So you can just feed the rs2 / immed bus to the shifter. For the gold plating, you want something called "gold fingers" not ENIG plating. The ENIG will wear down just as quickly as solder plating. Instead, the gold fingers place a thin sheet of gold film over the pads (I believe its sort of like a laminate) which will last much longer. Good find on the card edge connector, those look like they will work very well. Having four of them may make them much harder to insert though... could you perhaps consolidate busses by sequencing the sequence logic? You don't need all of those values at once all the time, right? Also, for a lot of the logic, it may be worthwhile to just build a generic PLA element. If you want to save cost to make it re-usable, you could place 0 ohm resistors at every intersection to select how the PLA is configured. You could potentially even implement the big gates not as 74 series, but as transistors (since large input gates are trivial with transistors but need to be done in a binary tree with 2-input gates). I suspect that would be a lot faster than a ROM, and if you can simplify the logic equations, it could potentially allow you to sequence the sequencer into multiple steps to save buses / wires.
@marknn3
@marknn3 3 жыл бұрын
I think the generic cards can be done with only 3 connectors each. The Sequencer will have dedicated slots for each card type, and route the required signals to the individual cards. Maybe there is an overlap in signals that I don't fully see, but it is worth to try this puzzle.
@hjups
@hjups 3 жыл бұрын
@@marknn3 There are definitely ways to reduce the number of signals... he really only needs branchPC, PC+4, and EPC. EPC can come from the CSR where the CSR either outputs mtvec with cause, or mepc. The branchpc takes care of branches, jumps, and auipc, etc. That could probably be generalized to having two registers on a single card. Each with 3 input options as well as keep (so that's the 4th). Reset to 0 can be done if he uses the OE signal, and ties the register output to 0. So you set OE = false and input = keep. For mtvec, 1) he doesn't have to support vectored interrupts (it's not required by the spec), and 2) he doesn't have to support arbitrary vectored instructions. What I mean by that, is he could place cause and mtvec in the same register, and just have the ability to output or not output different parts of it. Make it a 32-bit register, where IRQ is the msb, but the backplane shifts the output by 2. He could also put the multiplexer for a single output on that register card too. There are ways to reduce the wires required.
@davefiddes
@davefiddes 3 жыл бұрын
Have you given any thought to debugging the system once it's been built? Your original idea had excellent blinkenlights which seems pretty much impossible given the number of signals you have now. Having some way of hooking up a logic analyser to verify correct operation seems like a good idea to me. Yes I realise that your modelling and formal verification should minimize any errors but there's going to be a heck of a lot of hardware to trace through if it's not perfect.
@tomaszcichocki8281
@tomaszcichocki8281 3 жыл бұрын
I'm wondering, have you considered using github.com/xesscorp/skidl or something similar? I admire your KiCAD proficiency and schematics have some visual appeal for me, but wouldn't it be easier to create netlists straight form python? Possibly from the same codebase that describes circuit in nMigen... I can imagine having "elaborate" method and "generate_netlist" next to each other...
@wChris_
@wChris_ 3 жыл бұрын
i hope you wont prematurely by any PCBs until everything is Designed and pretty much finalized
@RobertBaruch
@RobertBaruch 3 жыл бұрын
Yeah, I've been burned way too many times.
LMARV-1 reboot part 11: The crossbar
15:48
Robert Baruch
Рет қаралды 2,8 М.
Looks realistic #tiktok
00:22
Анастасия Тарасова
Рет қаралды 97 МЛН
LOVE LETTER - POPPY PLAYTIME CHAPTER 3 | GH'S ANIMATION
00:15
HOW DID HE WIN? 😱
00:33
Topper Guild
Рет қаралды 41 МЛН
Я нашел кто меня пранкует!
00:51
Аришнев
Рет қаралды 4,4 МЛН
What is Formal Verification?
2:29
Galois
Рет қаралды 33 М.
Relay Latency Test - Wiring or Relay Characteristics?
2:10
David C. Smith DP
Рет қаралды 29
IT’S GETTING BAD! James Webb's Finding Ends Debate in Physics
13:33
100+ Linux Things you Need to Know
12:23
Fireship
Рет қаралды 741 М.
Formal Verification
3:01
BTC Embedded Systems
Рет қаралды 849
LMARV-1 reboot part 14: Chips that don't exist
37:37
Robert Baruch
Рет қаралды 6 М.
James Webb Telescope INSANE New Discovery Before The Big Bang
14:59
Cosmos Chronicles
Рет қаралды 1,2 М.
Урна с айфонами!
0:30
По ту сторону Гугла
Рет қаралды 8 МЛН
😱Хакер взломал зашифрованный ноутбук.
0:54
Последний Оплот Безопасности
Рет қаралды 415 М.
iPhone 16 с инновационным аккумулятором
0:45
ÉЖИ АКСЁНОВ
Рет қаралды 8 МЛН