Тёмный

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

Robert Baruch
Подписаться 37 тыс.
Просмотров 1,8 тыс.
50% 1

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...

Наука

Опубликовано:

 

7 янв 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 26   
@dnwheeler
@dnwheeler 3 года назад
Coincidently, I'm wearing a Weyland-Yutani shirt right now, too. "Building Better Worlds"
@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?" 😸
@marijnstollenga1601
@marijnstollenga1601 3 года назад
Can't wait to see the first cards!
@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.
@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.
@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.
@truezulu
@truezulu 3 года назад
As always: Very interesting!
@KaneYork
@KaneYork 3 года назад
Register file X/Y/Debug should fit on one card each, right? But yeah that makes sense for every internal register
@abeditani8293
@abeditani8293 3 года назад
6:40 yes that what I was see it wrong from the start . You need outside synchronize controls
@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
@miharu3188
@miharu3188 3 года назад
Flava tech live :)
@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.
@sabriath
@sabriath 3 года назад
I would be impressed if this were built as a mechanical or fluidics computer.
@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.
@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. :)
@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
Просмотров 2,8 тыс.
LMARV-1 reboot part 12: The sequencer
1:24:29
Просмотров 1,9 тыс.
LMARV-1 reboot part 13: More sequencer schematicking
1:26:58
Enter The Arena: Simplifying Memory Management (2023)
1:47:50
LMARV-1 reboot part 14: Chips that don't exist
37:37
Introduction to Circuit Protection
30:48
Просмотров 25 тыс.
Linux from Scratch
2:35:42
Просмотров 115 тыс.
How To Design and Manufacture Your Own Chip
1:56:04
Просмотров 88 тыс.
Live programming: LMARV-1 RISCV
2:12:46
Просмотров 1,8 тыс.
LMARV-1 reboot part 5: formal verification of the CPU
54:35
Новодельный ноутбук Pocket386
1:16:17
Prices & Poco M4 Pro 5G
1:00
Просмотров 274 тыс.