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