Tang Nano 9K Simple PicoRV32-based SoC on FPGA
ฝัง
- เผยแพร่เมื่อ 12 มิ.ย. 2024
- This video shows how to create a very simple system-on-a-chip (SoC) using the PicoRV32 RISC-V core and the Tang Nano 9K FPGA development board. The goal is a simple and consistent design that is not abstracted but is easy to extend. We show both Verilog for the SoC and C code for software on the PicoRV32 soft core.
Chapters
0:00 Introduction
0:40 Pins & connections
1:15 View of board
1:25 UART output
2:00 SoC's design
2:49 PicoRV32 core
4:26 Bus operation
5:20 Write strobe signals
6:08 Verilog files
6:42 Top-level module
10:12 Reset
10:36 Slave device integration
12:18 SRAM
15:04 Countdown timer
17:22 Software
21:52 Resources & Timing
22:47 Logic analyzer
Links
Project github: github.com/grughuhler/picorv32
PicoRV32: github.com/YosysHQ/picorv32
Gowin SRAM on Tang Nano 9K: • Block SRAM on the Tang...
ADALM2000 Logic Analyzer: • ADALM2000 (M2K) Logic ...
ADALM200: Intro: • Introduction to ADALM2... - วิทยาศาสตร์และเทคโนโลยี
AWESOME!!! Content... i will try to build that on my Tang Nano 25K... thank you so much!!!
Thank you for this kind comment. Good luck with the 25K.
Nano 25K? Did you mean the Primer 25K? As far as I know the Nano range stops at 20K
Xilinx (and Intel/Altera) FPGAs have moved to using 6 input LUTs, so they can do more per LUT compared to the 4 input models used by the GOWIN. Because of that the numbers aren’t strictly comparable.
Even given the above, a full fat version of the PicoRISC should fit in the 9K you have available. A little light cheating (e.g. using the DSP blocks for hardware multiplication) can cut usage down, and you can hook up the 8MB of onboard PSRAM rather than using the limited BRAM available.
The litex project proves what you say about doing more on even the Tang Nano 9K. It's easy to get it to spit out a much more complete and capable SoC than mine-- including the PSRAM. But if you want to add to it, you have to understand and buy into Litex's tools and methods. For me it's too much abstraction while I am still getting experience with FPGAs. Thanks for your comments.
LiteX automates the process of creating an in-FPGA SoC design, letting you create full systems. The Nano 9K is in its supported boards list, but that doesn’t mean you can build a fully spec’d system on one.
There is nothing wrong with wanting to do your own thing, and the suggestions were there as things you could do to enhance it. You might want to think about how you could support uploading arbitrary code to it at runtime for example.