airhdl Feature Requests
44 results found
-
Revent conflicting C header definitions
I use several self created IP (Xilinx). They are have their individual AirHDL register maps. Some register names are very popular. For example most of the IP have a "Config" or "Status" register.
If I import now the drivers of these IP into one C project, the corresponding #define start creating conflicts.
This prevents me from using the defines (like array length) in the header files.
It would be nice to have a possibility to prepend the defines with maybe the register_map name. (I could also rename all registers, but that seems quite hacky)
Or are there other/better solutions to…
1 vote -
CLI: Allow to generate defined file type only
When calling the CLI version of AirHDL, it generates all files at once. I would like to include the creation of the needed files into a GNU Make script. For this purpose it would be nice to be able to define which files shall be generated.
1 vote -
Searching feature
I would suggest to add some sort of search feature to the tool.
Sometimes it is very useful to search for a register by some keywork associated with a field or register description.
AI is coming along the way, but a normal seach is a first step.
1 vote -
Optional "accept" for write/read
Currently, user logic can not stall the register file, as soon as a read/write happens, the strobe will go high and one cycle later go low. If the user logic is not ready to take in/provide a value, the value might be lost. I think it would be nice to have an optional flag to have a handshake like AXI:
During a read, the strobe would go high, the statemachine would go into a READWAITREADY state, where the strobe is held high until ready is asserted from user logic. Only once that happens, the statemachine goes into READ_RESPONSE…3 votesThanks for suggesting this feature. For further analysis, it would be very helpful if you could provide a concrete application example for this. Thanks, Guy.
-
Make interrupt register outputs available to user logic
Please consider making interrupt register outputs available to user logic. Currently, there is no easy way for the user logic to know when an interrupt status bit is cleared by the ISR. This is critical to our application, and we cannot use mask bits or other signals to achieve the same result.
1 voteHi Scott, thanks for your suggestion. Would a one-bit output port computed as the logical OR of the interrupt register's bits do the job?
-
Add a download button for projects
It would be very useful for us to be able to generate the output files for a whole project, so having a “Download” button also for projects would be ideal.
2 votes -
Add register input/output pipeline option using generic
Hello,
In order to help timing closure, it would be extremely helpful to add an option to insert extra register for input/outputs.
I suggest that each register (or array) would have a generic associated with the number of extra register pipeline we want to insert :GREG1OUTEXTRAPIPE := 0; -- no extra pipeline
GREG1INEXTRAPIPE := 0; -- no extra pipeline
GREG2OUTEXTRAPIPE := 1; -- 1 register per REG1 out field added
GREG2INEXTRAPIPE := 2; -- 4 register per REG2 in field addedThis will…
4 votesHi Guillaume, thanks for suggesting this. We'll be looking into it.
-
Allow adding shared register map(s) to a project
Currently only register maps that you have created yourself can be added to a project. This is a suggestion to allow adding register maps that have been shared with you by another user to a project.
1 vote -
Add a global download button
Add a download button to the Register Maps view to allow downloading several register maps (e.g. JSONs) at once.
5 votes -
Option to auto update offset addresses
I am preparing a new register map and I'm worried that if I create 200 registers and tomorrow I want/need to add a new register in the possition 100, I have to manually increase the offset addresses from the 100 to 200 registers.
2 votesExcellent suggestion, thank you very much. I’m logging this as a development ticket.
-
Unique Register Address when duplicating
When duplicating a register, it would be nice to have the new available address offset filled in the new register instead of the offset of the original one.
1 vote -
Option for an external register implementation
I'd like to be able to set an option that the register will be implemented outside of the airhdl model.
My use case is that I want to be able to reset a single register in a different way with respect to all the others: all registers must be reset from a software reset instead of one that need not to be reset by software, but only at power up.
0 votes -
Landing page
It would be nice if one could choose its landing page (Dashboard, projects, or maps) in the user configuration
1 vote -
Would it be possible to merge a set of register maps in a single one?
Maybe this is already possible with JSON upload. But in simple cases one would like to merge exixting maps in a single one by simply specifying the offset of one map respect to the other.
1 vote -
Self-clearing fields should be banned on read-only registers
Self-clearing fields should be banned on read-only registers, since they don't make sense. In fact those fields are not cleared after read.
The web interface could simply generate a DRC error.1 vote -
add version management
The versions are tracked, however occasionally there is need to generate files from an earlier version, or roll back a set of register changes, possibly with the inclusion of labels.
< the logical extension is branching and merging that is less typical in register maps than mainline code >2 votes -
add Software set, hardware clear register type
Currently there is an hardware set, software clear type (interrupt)
Adding a software set, hardware clear type would allow the 'arming' of hardware state machines by software, the bit can then be automatically cleared by hardware, ready to re-arm the state machine in future.1 vote -
Hierarchical register structure
Allow registers to be put in a directory type structure.
8 votes -
Support longer text in register overview graphic
The visualization of the register fields arrays the text in a manner that renders it less than helpful unless all bit fields are shorter than 4 characters (except in the case of wider bit fields).
One solution might be to rotate field names 90 degrees and situate them vertically.
2 votesThanks for your suggestion. We’ll try to improve this aspect of the register overview in the future.
-
Support bit-level RW access types
As is, access granularity is defined at the register level. However certain bits may require accessibility in ways that others may not. This is a recurring theme on many designs I have worked on.
I think it would be useful to specify for example, that Reg[7] is Read-only, while Reg[6] is Write-only, and Reg[5:0] is R/W.
6 votes
- Don't see your idea?