Zip CPU

7.5K posts

Zip CPU

Zip CPU

@zipcpu

FPGA design engineer and blogger, placing particular emphasis on test and formal verification

Gisselquist Technology, LLC, Se unió Ocak 2017
201 Siguiendo8.2K Seguidores
Tweet fijado
Zip CPU
Zip CPU@zipcpu·
Wow, lots of new twitter followers just joined. Welcome! Just to give you an opportunity to get to know me and the ZipCPU blog, here's a bit about me and what you can expect here: zipcpu.com/blog/2018/10/0… Again, welcome!
English
6
4
62
0
Zip CPU
Zip CPU@zipcpu·
@waskitaadijarto Confusing? Yes. However, this tends to be par for the course when working with soft CPUs on FPGAs. Most of my soft CPU implementations have block RAM (and cache, if space allows), SDRAM, and flash. Not all devices have SDRAM. Not all devices have cache. You have to adjust.
English
0
0
2
25
waskita adijarto
waskita adijarto@waskitaadijarto·
@zipcpu I am curious. what microcontroller/DSP has SDRAM and block ram? Different types of memories in a microcontroller is important for price & performance, but it's really confusing for the students.
English
1
0
0
134
Zip CPU
Zip CPU@zipcpu·
Knowing how to get a linker map file, and what it tells you is a valuable skill when working with any embedded H/W.
Zip CPU tweet media
English
7
3
142
7.5K
Hans Dorn
Hans Dorn@Hans_J_Dorn·
@zipcpu block RAM is sooo much faster though...
English
1
0
1
97
Zip CPU
Zip CPU@zipcpu·
@rhenescu This hit me last week, when the Jr guy trying to prove an asynchronous FIFO implementation of mine worked, couldn't get the proof right b/c ... the FIFO didn't work. As a Jr guy, are you willing to tell Mr. Sr that his stuff is broken?
English
0
0
0
22
Zip CPU
Zip CPU@zipcpu·
@rhenescu Ah, yes, another problem I deal with: the senior guy (me) said it worked, so ... Jr just need to prove that his "perfect" code works. If the proof doesn't work, it must be Jr's fault, not the senior guy's fault
English
1
0
0
19
Zip CPU
Zip CPU@zipcpu·
Is there ever a behavior that's just too simple to test? I had a signal that simply crossed clock domains (Async -> AXI), and was then available to be read from a register. How simply can it get? Yes. It was broken. If nothing else, the docs didn't match the behavior.
Zip CPU tweet media
English
1
0
13
1.1K
Zip CPU
Zip CPU@zipcpu·
Yes, I use Icarus first -- before any commercial tools. The benefit of having a simulator on my desk is just ... awesome. (SV Interfaces would be nice, though ...)
English
1
0
0
300
Zip CPU
Zip CPU@zipcpu·
Frankly, we could've gone even faster in our own testing, save that the voltage translation chip we required was limited to 60MHz. The IP itself should go up to 100MHz easily. Indeed, it's designed to hit the 400MB/s eMMC limit--I just don't (yet) have the hardware to test that
English
0
0
0
372
Zip CPU
Zip CPU@zipcpu·
Let me congratulate @lowRISC on an open source SDIO controller! Why they left the ASIC bar at 11.1MB/s, though, when you can get close to 47MB/s in an FPGA is a bit beyond me. arxiv.org/pdf/2603.11849
Zip CPU tweet media
English
1
3
58
2.7K
Zip CPU
Zip CPU@zipcpu·
@isoosqa Static timing is either a pass or fail. Yes, I suppose we could add metastability, X, and Z into the mix. A good digital logic designer will still quickly turn these back into 1s and 0s, though.
English
0
0
1
39
Zip CPU
Zip CPU@zipcpu·
When working with digital logic, there are only two possibilities: True and False. There are no truths "identifying" as falsehood or vice versa. It either works, or it doesn't.
CidCampeador@CidCampeador777

@1llegalEngineer @chiguy892 @zipcpu They fly so close to the silicon, they end up based and redpilled

English
3
1
19
1.2K
Zip CPU
Zip CPU@zipcpu·
Here's a bug from this weekend: In this case, two bugs canceled each other out, leaving me believing the design worked in a configuration that I'd never hardware tested it in. Also, a good question, how good should a "self-checking" test bench be? You can read more about this bug here: github.com/ZipCPU/sdspi/i…
Zip CPU tweet media
English
1
1
17
1K
Zip CPU
Zip CPU@zipcpu·
@pwm2vape I've generated multiple broken AXI-Lite interfaces using AI, followed by one that copied my own AXI-Lite interface.
English
1
0
7
239
Zip CPU
Zip CPU@zipcpu·
Sometimes I think there should be an SMH charge to maintaining Verilog written by others.
Zip CPU tweet media
English
6
0
44
4.2K
Zip CPU
Zip CPU@zipcpu·
3Clk/transfer throughput is *HORRIBLE* throughput performance. That's one of the reasons why I don't use Classic Wishbone, but rather use Pipeline. A cache, DMA, or whatever else, should be able to get 1Clk/transfer throughput between the cache and external memory.
Marcelo Samsoniuk@samsoniuk

@vadakkodaan @splinedrive of course, the core buses can be really fast: the I-bus can be pipelined for 1 clk/transfer on BRAM but the D-bus not (can do 1 clk/transfer on LUTRAM)… the easy way is use the bridge, that merges them and slow down a little (3 clk/transfer) 🔥

English
1
0
31
2.8K
Zip CPU
Zip CPU@zipcpu·
One might also ask, why isn't AxLOCK supported? Shouldn't it at least be an option? Block RAM might be the easiest place to support AxLOCK, given that the MIG doesn't support it at all.
English
0
0
6
767
Zip CPU
Zip CPU@zipcpu·
This performance is pitiful for two reasons. 1. 3 bursts of 4 beats each should only suffer the latency once. This should've been 15 clocks total, not 21. 2. A 3ck latency is a bit much for block RAM. Why not 2ck? (1ck might be a challenge, if we assume it takes a full clock from addr to memory output ...)
English
1
1
8
928
Zip CPU
Zip CPU@zipcpu·
Here, for example, is a less than ideal memory controller. This trace was drawn from Xilinx's Block RAM controller. Here you can see that each 4-beat burst requires 7 clocks to complete. This performance is pitiful.
Zip CPU tweet media
English
1
2
52
3K