FPGARelated.com
Forums

Re: Got UART Working!!! need syntax help with using ascii/buffer scheduling.

Started by Brian Drummond January 27, 2009
On Tue, 27 Jan 2009 20:22:35 +0000, Jonathan Bromley
<jonathan.bromley@MYCOMPANY.com> wrote:

>On Tue, 27 Jan 2009 08:26:44 -0800, Mike Treseler wrote: > >>The reference design here: >>http://mysite.verizon.net/miketreseler/ >>is a single process >>(aka: sequential, linear, single threaded) >>vhdl design that just happens to be a uart. > >Mike, > >you know I'm a strong supporter of the design >style you advocate, although I'm less persuaded >than you are by the benefits of parameterless >procedures. However, that doesn't affect the >key point I made in an earlier post: > > once you have encapsulated some functionality > in an HDL process, your ability to do any form > of sequential/procedural composition is gone. > >This, I believe, is a fundamental problem with >HDLs that will not go away until something with >the expressive power of CSP/occam surfaces in >the HDL world. Maybe that's already happened >with MyHDL and it's escaped me. Maybe not.
I think you're right, and I hadn't quite thought of it in that way. In one sense, signals are already very similar to occam's channels, in that their events communicate synchronisation. And that works well in simulation. The trouble of course is synthesis; almost all of that gets lost, because those damn flip-flops only understand one clock; and Xilinx STILL won't put Reed-Muller gates (choose another self-timed primitive if you prefer) on their chips! (Achronix, anyone? Though it could take synth tools a while to catch up...) So we have to re-invent our composition mechanisms again in excruciatingly low level detail. But at least it allows us parallel composition as well as serial...
>Of course, everyone who knows what they're doing >has perfectly good ways to deal with this problem.
As you presented with your "ready/valid" handshaking example. Which could be wrapped up in a record type, with ports and signals of that type, if only you could mix "in" and "out" directions on different components of the record... - Brian