Tool for automatically generating Microblaze peripheral regi

G

Guy Eschemann

Guest
During my last consulting project I had to implement quite a few
Microblaze PLB peripherals, each with lots of software-accessible
registers (up to 60). I found the process of implementing those
registers quite tedious and also error-prone because information is
duplicated in different files (e.g. register addresses in the VHDL
module and in the C driver).

That's why I decided to automate the whole thing by creating a (free)
tool called IPICRegs.

The idea is that you describe the software-accessible registers
corresponding to your peripheral in a XML-file, and the tool generates
a VHDL registers module for you containing all the register read/write
logic. You just need to instantiate the generated module into your
user-logic, and the bitfields of all the registers become available
through ports of that module.

And while I was at it, I thought I could as well generate a few other
goodies from the same XML input file:

- an instantiation template for the generated VHDL module
- a VHDL testbench, which checks that every single register field can
be accessed
- a VHDL package, containing the register address offsets as well as a
bitmask for every bitfield
- ISim simulation scripts
- a C header containing all the register address offsets, bitmasks and
read/write functions
- C self-test which checks that every single bitfield is accessible
from the processor
- an HTML documentation containing all the information about the
registers and bitfields

IPICRegs has saved me and my client a lot of time. I hope you'll find
it useful too. You can download the current (beta) version from:

http://www.ingenieurbuero-eschemann.de/ipicregs.html

I'm also very open to suggestions for improving the tool. Feel free to
contact me if you experience any issues.

Cheers,
--
Guy Eschemann
Ingenieurbüro ESCHEMANN
Gartenstr. 30-32
76133 Karlsruhe, Germany
Guy.Eschemann@gmail.com
http://www.ingenieurbuero-eschemann.de
http://www.fpga-news.de
 

Welcome to EDABoard.com

Sponsor

Back
Top