Code Monkey home page Code Monkey logo

bust's People

Contributors

maersdal avatar olagrottvik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

tonnjo

bust's Issues

bug

tb fails for pulse registers with stall longer than the pulse length

bug

v0.9.1 generates the line:
signal ipb_pulse_regs : t_<mod_name>pulse_regs := c<mod_name>_pulse_regs;
in the tb even though no pulse regs exist. this fails the compilation as the type and constant does not exist.

pulse-mode

add registers with pulse-mode. asserted for one clock cycle then returning to reset value

Field reset

Add possibility for field reset and description value.
A register with fields should obtain reset value from the fields' reset values

write module file without overwriting user logic

Check for possibility of creating the module.vhd file without overwriting logic created by user. I guess the previous version must also be provided in this case, so that the files can be compared somehow.

generation of c header files

generate header files that defines register offsets for C. May also be applicable for Python, but not strictly critical. C is prioritized in this case.

Additional base offset generic

Add the possibility for an additional base offset generic that increments the base address based on the original value. The increment value must also be a variable field.

This will be helpful when instantiating identical modules but don't want to increase source code, documentation, etc

JSON manipulation

Simple way to add, edit or remove registers, and update the JSON file

Interconnects

To avoid using interconnects IPs (e.g. Xilinx Interconnect IP), generate pure-VHDL interconnects with clock-domain crossing support, etc, for all bus types.

error in gen of rw constants in pif_pkg

not checking whether rw or ro registers are actually used, and therefore when no RO or RW regs are implemented, will still generate structures that are not needed

bus support: Wishbone

Wishbone support can be added by editing the Bus class function returnBusPkgVHDL() and Module class function returnRegisterPIFVHDL()

Vivado block design integration

Make it optional to combine the axi interface signals in a record. Avoiding to use a record will enable Vivado to detect the port as an axi interface, and simplifies connecting in block design GUI.

Unittests and Python versions

The software flow has at this moment no automated testing - this must be improved. Also, only one python version is used for manual testing - this must be improved!

pulse length

add the possibility of adding a length (in clock cycles) for the pulse registers

Improve editor

  • Replace cursesmenu with something thats faster

  • Base address editor menu part

  • Move registers

  • Edit registers

  • Move fields

  • Edit fields

Testbench

The application should automatically provide a testbench to ensure that the register communication works as intended

Remove unused axi-lite signals

wstrb, awprot and other signals that are not used should be removed from axi package record type. This will resolve warnings in vivado like the following:

[Synth 8-3331] design example_module has unconnected port axi_in[wstrb][3]

update addresses

add choice for auto-assigning new addresses, e.g. after a register removal

null assignment

If module register data width is the same as the axi interface, an null assignment is created when masking the "remaining" data bits as zero

simulation fails

simulation fails because of missing signal type definition when the module does include all types
Error: ../tb/global_regs_ipb_pif_tb.vhd(36): (vcom-1136) Unknown identifier "t_global_regs_pulse_regs".

stall bus

add a feature to stall the bus for a specific amount of clock cycles for access to certain register or certain module

add pif to pkg name

to differentiate between generic module packages, add pif to the bus pkg. this way it will be easier to update a module with logic already generated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.