From Python to silicon
 

To do for MyHDL 0.6

Status

0.6dev7 has been released. Outstanding bugs addressed, and bit inversion issue solved. — Jan Decaluwe 2008/03/18 21:17

0.6dev6 has been released. Should be very usable - I did a real project with it. — Jan Decaluwe 2008/02/26 16:08

What works already

As always, the features that work are defined by succesful unit tests. The following unit tests are related to VHDL conversion:

  • the unit tests in the myhdl/test/toVHDL directory.
  • all but one of the cookbook examples in examples/cookbook generate VHDL that analyzes correctly. (The remaining problem is related to the use of an output that is read internally, something not allowed in VHDL.)

To do

  • RAM support using array types
  • operators with signed operands
  • augmented operators
  • enhanced print statement support
  • user-defined VHDL support
  • inout handling
  • enhance toVerilog so that it can work with the new verification method also. In particular, print statements should be handled properly.
  • write conversion verification test benches for some cookbook examples
  • include date/tool info in conversion output
  • review if __debug__ functionality with new verification capabilities
  • encoding attributes to enumeration types
  • use a package in a separate file for general VHDL output code

Open issues

Name clashes

  • Find a good solution to avoid name clashes. In the Verilog output, I relied on using _ as a prefix, but because VHDL doesn't allow this, and I want a general solution, this needs to change.
  • Find a good solution to avoid name clashes with Verilog and VHDL keywords.

Rom inference support

Currently, ROMs are inferred from case statements, as in Verilog. Users and synthesis tools may prefer arrays of integers. Feedback welcome.

User-defined VHDL code

It is straightforward to support the __toVHDL__ attribute for user-defined VHDL, similar to the Verilog solution. This may not be sufficient however, because VHDL requires instantiated components to be declared in the code. We may have to add a way to add such user-defined declarations.

 
dev/todo/0.6.txt · Last modified: 2008/03/18 16:20 by jandecaluwe
 
All content is available under the terms of the GNU Free Documentation License
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki