So, I just stumbled upon this. It may turn out to be useful in the months ahead. Still a long way from implementig HDMI support, but this seems to me like a good place to start more generally to understand other fast serial and packet protocols from the ground up.

@vertigo Yes, it's the same one, I just wasn't sure if it was freely *and* legally available.

@vertigo There's probably little that you don't already know in there, but I'm still a beginner in FPGA matters.

@haitch Always good to have resources available though.

@vertigo By the way, most of the decent resources I've found available for free online are based on VHDL, and I haven't looked enough, but not a lot of above average Verilog stuff seems to be available without strings attached. But you use Verilog for Kestrel, right? So I'm feeling a bit torn because personally I'm feeling more inclined to use VHDL but it would be a mess to have a lot of duplication of efforts, and potential pitfalls eventually when linking up multi-FPGA modules.

@haitch Most commercial tools allow you to freely mix Verilog and VHDL sources in a single project, since they both compile to a common netlist (analogous to LLVM or Java bytecode) representation.

You'll also find that most designs in the US are Verilog, while most in Europe are VHDL.

The issue is with the lack of VHDL support from FOSS tools. :( I don't have a problem with someone using VHDL in principle; it's just I don't know how to integrate VHDL and Verilog modules using FOSS tooling.

@vertigo Is there a published list of software dependencies you are currently using to build Kestrel?

I'll take a look at MyHDL too.

I'm taking a look at these other tools as well:

@haitch Since I'm using the formal verification features of Yosys, my dependency list is pretty steep. (Which reminds me, I need to update my website to account for that.)

Before I adopted formal verification, it's just a matter of building Verilator and Yosys, and that was everything you needed. With formal, you also need a collection of provers, which is relatively simple to build, but then *they* have dependencies, etc.

@haitch It basically took me all day to get everything compiled, since my Linux distro doesn't have packages for everything.

@vertigo I'm not going to do all that yet, but one day it will be useful in order to have reproducible and verifiable Kestrels 🙂
If I was to wear a paranoid hat, that's pretty much the last line of defence.

@haitch It was quite a bit of work to get the dependencies built. Once the deps were in place, though, Yosys compiled trivially.

That said, there has been some pay-off already. The properties I've defined for my modules have already caught subtle bugs that unit testing alone wouldn't have caught.

Though, I often ask myself if it was all worth it. I mean, unit testing gets me 80% to 90% to where I need to be. FV finds some slick edge cases, but in practice, how often will they occur?

@vertigo @haitch in my experience
, it’s not how often, but when they occur they are super painful to debug.


@nonlinear @haitch Well, that'll be the test, won't it? If FV lets me build the Kestrel-3 computer without once resorting to me having to use an oscilloscope to debug[1] what's going on inside the chip, then it'll be a success. ;)

1. I already had to use an o'scope to debug what was happening with the flash ROM chip. To be fair, this was prior to my adoption of FV; however, I don't think FV would have helped in this case anyway, so I'm willing to discard this incident as an out-lier.

· · Web · 0 · 0 · 1
Sign in to participate in the conversation

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!