| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|\
| |
| | |
add -noalu and -json option for apicula
|
|/ |
|
| |
|
|\
| |
| | |
rtlil: remove dotted identifiers
|
| |
| |
| |
| | |
No one knows where they came from and they never did anything useful.
|
|\ \
| | |
| | | |
Generate only simple assignments in verilog backend
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
Adding latch tests for shift&mask AST dynamic part-select enhancements
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Makefile: Add disabled-by-default ENABLE_SCCACHE config option.
|
| | | | |
|
| | |/
| |/| |
|
|\ \ \
| | | |
| | | | |
Add rewrite_filename for sim -vcd argument.
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
check: add support for processes
|
| | | | | |
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Tcl script documentation fixes
|
| | |/ / /
| |/| | | |
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Add firrtl backend support for generic parameters in blackbox components
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This commit adds support for real-valued parameters in blackboxes. Additionally,
parameters now retain their types are no longer all encoded as strings.
There is a caveat with this implementation due to my limited knowledge of yosys,
more specifically to how yosys encodes bitwidths of parameter values. The example
below can motivate the implementation choice I took. Suppose a verilog component
is declared with the following parameters:
parameter signed [26:0] test_signed;
parameter [26:0] test_unsigned;
parameter signed [40:0] test_signed_large;
If you instantiate it as follows:
defparam <inst_name> .test_signed = 49;
defparam <inst_name> .test_unsigned = 40'd35;
defparam <inst_name> .test_signed_large = 40'd12;
If you peek in the RTLIL::Const structure corresponding to these params, you
realize that parameter "test_signed" is being considered as a 32-bit value
since it's declared as "49" without a width specifier, even though the parameter
is defined to have a maximum width of 27 bits.
A similar issue occurs for parameter "test_unsigned" where it is supposed to take
a maximum bit width of 27 bits, but if the user supplies a 40-bit value as above,
then yosys considers the value to be 40 bits.
I suppose this is due to the type being defined by the RHS rather than the definition.
Regardless of this, I emit the same widths as what the user specifies on the RHS when
generating firrtl IR.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previous blackbox components were just emitted with their interface ports,
but their generic parameters were never emitted and it was therefore
impossible to customize them.
This commit adds support for blackbox generic parameters, though support
is only provided for INTEGER and STRING parameters. Other types of
parameters such as DOUBLEs, ..., would result in undefined behavior here.
This allows the emission of custom extmodule instances such as the following:
extmodule fourteennm_lcell_comb_<instName>:
input cin: UInt<1>
output combout: UInt<1>
output cout: UInt<1>
input dataa: UInt<1>
input datab: UInt<1>
input datac: UInt<1>
input datad: UInt<1>
input datae: UInt<1>
input dataf: UInt<1>
input datag: UInt<1>
input datah: UInt<1>
input sharein: UInt<1>
output shareout: UInt<1>
output sumout: UInt<1>
defname = fourteennm_lcell_comb
parameter extended_lut = "off"
parameter lut_mask = "b0001001000010010000100100001001000010010000100100001001000010010"
parameter shared_arith = "off"
|
| | | | | |
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
nexus: Multiplier inference support
|
|/ / / /
| | | |
| | | |
| | | | |
Signed-off-by: David Shah <dave@ds0.me>
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
nexus: Add DSP simulation model
|
| | |/ /
| |/| |
| | | |
| | | | |
Signed-off-by: David Shah <dave@ds0.me>
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* backends/blif: Remove unused vector of strings
For reasons that are unclear to me, this was being used to store every
result of `cstr` before returning them. The vector was never accessed otherwise,
resulting in a huge unnecessary memory sink when emitting to BLIF.
* backends/blif: Remove CSTR macro
* backends/blif: Actually call str()
|
|\ \ \ \
| | | | |
| | | | | |
synth_gowin: Add rPLL blackbox
|
|/ / / / |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Expose abc and data paths as globals for pyosys
|
| |/ / / |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Prevent CXXFLAGS from leaking to abc Makefile
|
| | | | |
| | | | |
| | | | |
| | | | | |
This fixes an issue with abc/depends.sh when the compiler is clang.
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
Update nexus arch tests to new harness
|
| |/ / / |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
cxxrtl: run `hierarchy -auto-top` if no top module is present
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In most cases, a CXXRTL simulation would use a top module, either
because this module serves as an entry point to the CXXRTL C API,
or because the outputs of a top module are unbuffered, improving
performance. Taking this into account, the CXXRTL backend now runs
`hierarchy -auto-top` if there is no top module. For the few cases
where this behavior is unwanted, it now accepts a `-nohierarchy`
option.
Fixes #2373.
|
| | | | |
|