Bringing up Kimos
The ZipCPU by Gisselquist Technology
by
9h ago
Ever had one of those problems where you were stuck for weeks? It’s not supposed to happen, but … it does. Let me tell you about the Kimos story so far. What is Kimos? Kimos is the name of one of the current open source projects I’m working on. The project is officially named the “Kintex-7 Memory controller, Open Source toolchain”, but the team shortened that to “KiMOS” and I’ve gotten to the point where I just call it “Kimos” (pronounced KEE-mos). The goals of the project are twofold. Test an Open Source DDR3 SDRAM memory controller. This includes both performance testing, and performance c ..read more
Visit website
2023, Year in review
The ZipCPU by Gisselquist Technology
by
5M ago
It should come as no surprise that a blog with no advertisements has never paid my bills–at least not directly. I blog for fun, and to some extent for rubber duck debugging. As I learn new concepts, I enjoy sharing them here. Going through the rigor to write about a topic also helps to make sure I understand the topic as well. Why are there no advertisements? For two reasons. First, because I’m not doing this to make money. Second, because because I want more control over any advertising from this site than most advertisers want to provide. Perhaps some day the site will be supported by advert ..read more
Visit website
An Overview of a 10Gb Ethernet Switch
The ZipCPU by Gisselquist Technology
by
7M ago
Fig 1. The KlusterLab board used for the 10Gb Ethernet Switch testing I’ve now been working with Symbiotic EDA and PCB Arts on a 10Gb Ethernet switch project for NetIdee for some time. Indeed, I’ve discussed this project several times on the blog. I first brought it up in the context of building a Virtual Packet FIFO. The topic then came up again during two articles on building an SDIO (SD-Card) controller: first when discussing how to build a Verilog test bench for it, and then again when discussing what bugs managed to slip past the verification, which then had to be caught in hardware ..read more
Visit website
SDIO RX: Bugs found w/ Formal methods
The ZipCPU by Gisselquist Technology
by
11M ago
This post is the second post regarding my new SDIO/eMMC controller. The SDIO protocol is commonly used on SD cards, and the eMMC protocol for eMMC chips. The two protocols are so similar that, when using this controller, they will differ in software only. Today’s bottom line is that, although the controller is still quite new and only barely silicon proven, this week I had the chance to formally verify the receive portion of the controller and so I thought I might write about what took place. My goal will be to answer the question of whether this extra step of doing formal verification was wor ..read more
Visit website
Using a Verilog task to simulate a packet generator for an SDIO controller
The ZipCPU by Gisselquist Technology
by
1y ago
Fig 1. The KlusterLab board One of my current projects is to test and bring up a 10Gb Ethernet test board. The board has been fondly named the “KlusterLab”, because of all of the various interfaces present on it. Among those interfaces are an SD port and an eMMC port. Now, how shall I verify their functionality? Building an SDIO/eMMC Controller My first round of testing the SD port used my SPI-based SD card controller, SDSPI. Using that controller, the card responded in much the way I expected, save that the first sector of the card wasn’t what FATFS was expecting. Since this is simply bo ..read more
Visit website
Introducing the ZipCPU v3.0
The ZipCPU by Gisselquist Technology
by
1y ago
It’s time to announce a new version of the ZipCPU: ZipCPU v3.0! For reference, here’s how the ZipCPU’s development has taken place over the years: ZipCPU v0.1 Way back in the beginning, the ZipCPU had four bit opcodes and only 16x16-bit multiplies. It truly had a very limited instruction set. That said, the instruction set design was too limited to be very functional. This original instruction set didn’t even last a half a year. ZipCPU v1.0 The ZipCPU, v1.0, had 32-bit bytes and no octet level access. If you wanted to read or write an octet (8bit value) in memory, you needed to read a 32b word ..read more
Visit website
What is a Virtual Packet FIFO?
The ZipCPU by Gisselquist Technology
by
1y ago
I first came across virtual packet FIFOs in a SONAR project by necessity. The SONAR device’s only means of communicating with the outside world was via Gb Ethernet. There was no UART and no JTAG. Everything went over Ethernet. Collected data went over Ethernet. Device control was over Ethernet. Debugging had to be done over Ethernet. FPGA reconfiguration and all software updates had to go over Ethernet. Last of all, the CPU needed to talk to the outside world over Ethernet. This was where I first came up with the idea of a virtual packet FIFO. Fig 1. A Virtual Packets FIFO The idea came f ..read more
Visit website
What is a SwiC?
The ZipCPU by Gisselquist Technology
by
1y ago
Central to the motivation behind the development of the ZipCPU is the concept of a System within a Chip (SwiC). As I’m now preparing the ZipCPU for a version 3.0 release, it’s worth revisiting this concept to see what it means and then to compare that with how the ZipCPU has been used in practice. Fig 1. A SwiC consists of a small CPU within a chip I have defined a SwiC to be a small soft-core CPU within a chip, but specifically where the CPU is neither the purpose of the chip nor the main application within it. Key to this definition is the requirement that the purpose of the chip is not ..read more
Visit website
Debugging the Hard Stuff
The ZipCPU by Gisselquist Technology
by
1y ago
There are a couple of really hard problems in digital design. These include debugging FFTs, cryptographic algorithms, and Error Correction Coding (ECC). Debugging a good compression algorithm is also a solid runner up, but it’s not quite as difficult as the others. What makes these problems hard is the debugging challenge: put simply, given a failing design, pinpoint the line (or lines) of failing logic. This debugging challenge is hard because these particular problems don’t break down easily into visually reducible sub-problems. That is, it can be a real challenge when working with prob ..read more
Visit website
Quiz #23: Can this assertion fail?
The ZipCPU by Gisselquist Technology
by
1y ago
At one time I thought that swapping the assumptions regarding the inputs of a design with the assertions over the outputs was a good approach to handling complexity. Then I came across this example. What do you think ..read more
Visit website

Follow The ZipCPU by Gisselquist Technology on FeedSpot

Continue with Google
Continue with Apple
OR