ice40: Add examples folder including floorplan example
Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
parent
0118ac00c4
commit
1780f42b9a
4
ice40/examples/floorplan/.gitignore
vendored
Normal file
4
ice40/examples/floorplan/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
*.json
|
||||||
|
*.asc
|
||||||
|
*.bin
|
||||||
|
__pycache__
|
5
ice40/examples/floorplan/floorplan.py
Normal file
5
ice40/examples/floorplan/floorplan.py
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
ctx.createRectangularRegion("osc", 1, 1, 1, 4)
|
||||||
|
for cell, cellinfo in ctx.cells:
|
||||||
|
if "ringosc" in cellinfo.attrs:
|
||||||
|
print("Floorplanned cell %s" % cell)
|
||||||
|
ctx.constrainCellToRegion(cell, "osc")
|
6
ice40/examples/floorplan/floorplan.sh
Executable file
6
ice40/examples/floorplan/floorplan.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -ex
|
||||||
|
yosys -p "synth_ice40 -top top -json floorplan.json" floorplan.v
|
||||||
|
../../../nextpnr-ice40 --up5k --json floorplan.json --pcf icebreaker.pcf --asc floorplan.asc --ignore-loops --pre-place floorplan.py
|
||||||
|
icepack floorplan.asc floorplan.bin
|
||||||
|
iceprog floorplan.bin
|
22
ice40/examples/floorplan/floorplan.v
Normal file
22
ice40/examples/floorplan/floorplan.v
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
module top(output LED1, LED2, LED3, LED4, LED5);
|
||||||
|
localparam N = 31;
|
||||||
|
wire [N:0] x;
|
||||||
|
assign x[0] = x[N];
|
||||||
|
|
||||||
|
genvar ii;
|
||||||
|
generate
|
||||||
|
|
||||||
|
for (ii = 0; ii < N; ii = ii + 1) begin
|
||||||
|
(* ringosc *)
|
||||||
|
SB_LUT4 #(.LUT_INIT(1)) lut_i(.I0(x[ii]), .I1(), .I2(), .I3(), .O(x[ii+1]));
|
||||||
|
end
|
||||||
|
endgenerate
|
||||||
|
|
||||||
|
assign clk = x[N];
|
||||||
|
|
||||||
|
|
||||||
|
reg [19:0] ctr;
|
||||||
|
always @(posedge clk)
|
||||||
|
ctr <= ctr + 1'b1;
|
||||||
|
assign {LED5, LED4, LED3, LED2, LED1} = ctr[19:15];
|
||||||
|
endmodule
|
5
ice40/examples/floorplan/icebreaker.pcf
Normal file
5
ice40/examples/floorplan/icebreaker.pcf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
set_io -nowarn LED1 26
|
||||||
|
set_io -nowarn LED2 27
|
||||||
|
set_io -nowarn LED3 25
|
||||||
|
set_io -nowarn LED4 23
|
||||||
|
set_io -nowarn LED5 21
|
Loading…
Reference in New Issue
Block a user