On 5/21/20 9:51 AM, Paul Koning via cctalk wrote: > >> On May 20, 2020, at 10:22 PM, Jay Jaeger via cctalk <cctalk@classiccmp.org> >> wrote: >> >> As I wrote in my last post, but write here for use as a separate thread: >> >> I'd be interesting in hearing from folks what toolsets they have used >> for HDL (VHDL in particular). I started with Xilinx ISE and then >> graduated to Vivado for later chipsets - unfortunately, Vivado seems to >> be something of a dog, in terms of time to compile HDL and synthesize logic. >> >> JRJ > I have been working, very slowly, on a project analogous to yours: a gate > level model of the CDC 6600 supercomputer. > > The source material for this is the wiring lists, which show the module > connections and also the module logic diagrams. I used the diagrams to > create gate-level models for each module, and ran the wire lists through OCR > to get the connections. Those are then run through a simple Python program > to generate the equivalent structural model. > > I wanted to start with simulation, and treat synthesis as a later step. So > rather than use any particular vendor tools I used GHDL. That works quite > nicely. Among other benefits, since it generates executable code (it's a GCC > front end) it can call C functions. In my case, the memory and I/O devices > are C models, which the VHDL code talks to. GHDL supports output to GTKwave > to let you see what it is doing. And, at least to some extent, you can use > GDB on it. I haven't done much of that. > > The whole process of going from wiring to VHDL is quite straightforward. > Getting the wire lists exactly correct takes some work partly because of OCR > errors and partly because there may be typos in the wire lists. Also in the > 6600 case, the wire lists are per chassis and they aren't all the same > revision of the product. :-( > > If the timing in your machine is reasonably sane and has enough margin, the > simulation should be painless and synthesis should produce few issues. If > you have bits that are sensitive to wire or circuit delays, that's different. > Unfortunately, the 6600 is utterly infested with such issues, to the point > that it's hard to see how it ever worked at all -- the timing documented in > the manuals and implied by the wiring can't actually work. A 1410 is > probably better, especially considering that IBM had some senior designers > who had experienced timing pain first-hand and had learned to avoid it. I'm > thinking of people like Gerrit Blaauw (not sure if he was on that project, > though). > > If you have delay-sensitive elements, that will probably require adding extra > stages to the logic, such as additional latches, to produce the required > sequencing with modern logic, which in turn may require extra clock phases. > Here too the 6600 is amazingly painful: I found myself with a 20-phase clock > to get even close to sane operation, in what is typically described as a four > phase clock design. > > Others have mentioned Verilog. I have no experience with that. I landed on > VHDL mostly by accident, because I wanted an open source simulator and GHDL > showed up. There may be open source Verilog simulators at this point, I'm > not sure. Avoiding Windows was also a requirement. > > paul > Paul, your project is super interesting. Is there a website where I can track it?
--tom