| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Otherwise, some LUTs will be missed during elimination.
|
| |
|
| |
|
|\
| |
| | |
opt_lut: eliminate LUTs evaluating to constants or inputs
|
|/ |
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|\
| |
| | |
anlogic: add latch cells
|
| |
| |
| |
| |
| |
| |
| | |
Add latch cells to Anlogic cells replacement library by copying other
FPGAs' latch code to it.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
| |
| |
| |
| | |
in techlibs/ecp5/Makefile.inc to permit out-of-tree builds
|
| | |
|
|\ \
| | |
| | | |
proc_clean: remove any empty cases, if possible to do safely
|
| | | |
|
| | |
| | |
| | |
| | | |
Previously, only completely empty switches were removed.
|
| | |
| | |
| | |
| | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|\ \ \ |
|
| |\ \ \
| | |/ /
| |/| | |
manual: document $meminit cell and memory_* passes
|
| | | | |
|
| | | | |
|
| | | | |
|
| |\ \ \
| | | | |
| | | | | |
tcl: add support for passing arguments to scripts
|
| | | |/
| | |/| |
|
| |\ \ \
| | |/ /
| |/| | |
memory_collect: do not truncate 'x from \INIT
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
The semantics of an RTLIL constant that has less bits than its
declared bit width is zero padding. Therefore, if the output of
memory_collect will be used for simulation, truncating 'x from
the end of \INIT will produce incorrect simulation results.
|
| |\ \
| | | |
| | | | |
Anlogic: let LUT5/6 have more cost than LUT4-
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
According to the datasheet of Anlogic Eagle FPGAs, The LUTs natively
in an Anlogic FPGA is LUT4 (in MSLICEs) and "Enhanced LUT5" (in
LSLICEs). An "Enhanced LUT5" can be divided into two LUT4s.
So a LUT5 will cost around 2x resource of a LUT4, and a LUT6 will cost
2x resource of a LUT5.
Change the -lut parameter passed to the abc command to pass this cost
info to the ABC process.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
| |\ \ \
| | | | |
| | | | | |
anlogic: fix Makefile.inc
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
During the addition of DRAM inferring support, the installation of
eagle_bb.v is accidentally removed.
Fix this issue.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
| |\ \ \
| | | | |
| | | | | |
anlogic: fix dbits of Anlogic Eagle DRAM16X4
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The dbits of DRAM16X4 is wrong set to 2, which leads to waste of DRAM
bits.
Fix the dbits number in the RAM configuration.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
|/ / /
| | |
| | |
| | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|\ \ \
| | | |
| | | | |
Add btor ops for $mul, $div, $mod and $concat
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
memory_dff: Fix typo when checking init value
|
|/ / /
| | |
| | |
| | | |
Signed-off-by: David Shah <davey1576@gmail.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
(as proposed by Dan Gisselquist)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|/ /
| |
| |
| |
| |
| | |
front-end
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|\ \
| |/
|/| |
Support for DRAM inferring on Anlogic FPGAs
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The MSLICEs on the Eagle series of FPGA can be configured as Distributed
RAM.
Enable to synthesis to DRAM.
As the Anlogic software suite doesn't support any 'bx to exist in the
initializtion data of DRAM, do not enable the initialization support of
the inferred DRAM.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 43030db5fff285de85096aaf5578b0548659f6b7.
For a synthesis tool, generating EG_LOGIC cells are a good choice, as
they can be furtherly optimized when PnR, although sometimes EG_LOGIC is
not as blackbox as EG_PHY cells (because the latter is more close to the
hardware implementation).
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
|\ \
| | |
| | | |
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
|
| | |
|
| | |
|