How do they make Verilog code for unknown ICs?

Eric Christopherson echristopherson at gmail.com
Mon Jun 20 16:07:01 CDT 2016


On Mon, Jun 20, 2016, Ian Finder wrote:
> The hardest part of the process is distilling the functional specification
> of the part you are trying to replace. This is the heart of the topic. Some
> ways this can be done:
> > If adequate documentation exists, use it.
> > Observe the part's behavior in-system
> > Build a test bench to observe behavior of part outside of system
> > General leetness
> 
> There is no one approach, it is more art than science.
> 
> For going from a functional specification to a synthesizable model, this is
> simply writing HDL.
> I suggest this book, which covers the basics of this process.
> https://www.amazon.com/Verilog-Digital-System-Design-Verification/dp/0071445641
> 
> If you have no 100-level understanding of digital logic, start here:
> https://www.amazon.com/Contemporary-Logic-Design-Randy-Katz/dp/0201308576
> 
> Thanks,
> 
> - Ian

For learning, I really recommend this Coursera MOOC:
https://www.coursera.org/learn/build-a-computer/home/welcome

It has a part 2, which covers writing programs from machine language up;
I haven't taken that one yet. Part 1 talks about logic gates, boolean
logic, etc. (like in the web book Swift posted the URL of), but it also
lets you dip your toes in an HDL/Verilog-like toy language, and has
simulators (note: they require Java) to run the circuits you design.

> On Mon, Jun 20, 2016 at 1:02 PM, Toby Thain <toby at telegraphics.com.au>
> wrote:
> 
> > On 2016-06-20 3:35 PM, Swift Griggs wrote:
> >
> >>
> >> In my recent studies of electronics (I'm a noob for all practical
> >> purposes) I keep seeing folks refer to Verilog almost as a verb. I read
> >> about it in Wikipedia and it sounds pretty interesting. It's basically
> >> described as a coding scheme for electronics, similar to programming but
> >> with extras like signal strength and propagation included. Hey, cool!
> >>
> >> Why are folks referring to "Verilogging" and "doing a verilog" on older
> >> chips. Is there some way you can stuff an IC into a socket or alligator
> >> clip a bunch of tiny leads onto it and then "map" it somehow into Verilog?
> >> Is that what folks who write emulators do?
> >>
> >
> > They firstly go by documentation, and if that fails, reverse engineer,
> > painfully. This is why preserving, archiving, publishing documentation is
> > so incredibly important!
> >
> > > Ie.. they exhaustively dump
> >
> >> Verilog code for all the chips then figure out how to implement that in
> >>
> >
> > You can't in general get Verilog *out* of a chip. It goes the other way.
> > You can compile Verilog into gates and netlists etc.
> >
> > some computer programming language like C ? What do folks do for ROM chips
> >> and PLCs? I'd think they must dump the code and disassemble it. No?
> >>
> >
> > Yes, they do that where possible.
> >
> >
> >> I'm just curious and this is a tough question to answer with Google since
> >> I'm pretty clueless and don't know the right words to search for. I notice
> >>
> >
> > You can google "EDA tools". You can also grab toolchains from major
> > vendors like Altera and play with Verilog/VHDL and simulate the results,
> > too.
> >
> > people talk about correcting their Verilog code, so it must be somewhat of
> >> a manual process. I'm just wondering how someone even gets started with a
> >> process like that.
> >>
> >
> > I'd suggest hitting some textbooks, not Google.
> >
> > Niklaus Wirth's book is fantastic, for people more comfortable in
> > software, if you take it step by step:
> >
> >
> > https://www.amazon.ca/Digital-Circuit-Computer-Science-Students/dp/354058577X

-- 
        Eric Christopherson


More information about the cctalk mailing list