| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|\
| |
| | |
Update CHANGELOG to mention my improvements
|
| | |
|
|\ \
| | |
| | | |
read_ilang: allow slicing all sigspecs, not just wires
|
| |/ |
|
|\ \
| | |
| | | |
write_verilog: handle the $shift cell
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The implementation corresponds to the following Verilog, which is
lifted straight from simlib.v:
module \\$shift (A, B, Y);
parameter A_SIGNED = 0;
parameter B_SIGNED = 0;
parameter A_WIDTH = 0;
parameter B_WIDTH = 0;
parameter Y_WIDTH = 0;
input [A_WIDTH-1:0] A;
input [B_WIDTH-1:0] B;
output [Y_WIDTH-1:0] Y;
generate
if (B_SIGNED) begin:BLOCK1
assign Y = $signed(B) < 0 ? A << -B : A >> B;
end else begin:BLOCK2
assign Y = A >> B;
end
endgenerate
endmodule
|
|\ \
| |/
|/| |
Revert "Proof-of-concept: preserve naming through ABC using dress"
|
|/ |
|
|\
| |
| | |
select: print selection if a -assert-* flag causes an error
|
| | |
|
| | |
|
| |
| |
| |
| | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|\ \
| | |
| | | |
Using awk rather than gawk
|
| | | |
|
|\ \ \
| | | |
| | | | |
verilog_parser: Properly handle recursion when processing attributes
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fixes #737
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|\ \ \ \
| | | | |
| | | | | |
deminout fixes
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: David Shah <dave@ds0.me>
|
| |/ / /
| | | |
| | | |
| | | | |
Signed-off-by: David Shah <dave@ds0.me>
|
|\ \ \ \
| | | | |
| | | | | |
Add .editorconfig file
|
| | | | |
| | | | |
| | | | | |
See https://editorconfig.org/ for details.
|
|/ / / /
| | | |
| | | |
| | | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|\ \ \ \
| | | | |
| | | | | |
equiv_opt: new command, for verifying optimization passes
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This allows avoiding techmap crashes e.g. because of large memories
in white-box cell models.
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
memory_bram: Fix initdata bit order after shuffling
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
In some cases the memory_bram pass shuffles the order of the bits in a
memory's RD_DATA port. Although the order of the bits in the WR_DATA and
WR_EN ports is changed to match the RD_DATA port, the order of the bits
in the initialization data is not.
This causes reads of initialized memories to return invalid data (until
the initialization data is overwritten).
This commit fixes the bug by shuffling the initdata bits in exactly the
same order as the RD_DATA/WR_DATA/WR_EN bits.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
ice40: Honor the "dont_touch" attribute in FFSSR pass
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This is useful if you want to place FF manually ... can't merge SR in those
because it might make the manual placement invalid
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
write_verilog: correctly map RTLIL `sync init`
|
| | |_|_|_|/
| |/| | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Only use non-blocking assignments of SB_RAM40_4K for yosys
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
In an initial statement, blocking assignments are normally used
and e.g. verilator throws a warning if non-blocking ones are used.
Yosys cannot however properly resolve the interdependencies if
blocking assignments are used in the initialization of SB_RAM_40_4K
and thus this has been used.
This patch will change to use non-blocking assignments only for yosys
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Proof-of-concept: preserve naming through ABC using dress
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | | |
Signed-off-by: David Shah <dave@ds0.me>
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
synth_ice40: split `map_gates` off `fine`
|
| | |_|_|/ / /
| |/| | | | | |
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
rename: add -src, for inferring names from source locations
|
| |/ / / / / / |
|
|\ \ \ \ \ \ \
| |_|_|_|_|/ /
|/| | | | | | |
lut2mux: handle 1-bit INIT constant in $lut cells
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This pass already handles INIT constants shorter than 2^width, but
that was not done for the recursion base case.
|
| |/ / / / / |
|
| |_|_|/ /
|/| | | |
| | | | |
| | | | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
| |_|/ /
|/| | |
| | | |
| | | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|\ \ \ \
| |_|/ /
|/| | | |
opt_lut: leave intact LUTs with cascade feeding module outputs
|
| | | | |
|