diff options
author | David Shah <davey1576@gmail.com> | 2018-06-09 19:38:37 +0200 |
---|---|---|
committer | David Shah <davey1576@gmail.com> | 2018-06-09 19:38:37 +0200 |
commit | 72f5e640af8bdccb641bb561757021c0a3d83edb (patch) | |
tree | 9456f4d6f0ea2e6303200320129d3f2fe57535fd /ice40 | |
parent | e15620ccd4e5062a999f51bc5f3ee53739586561 (diff) | |
download | nextpnr-72f5e640af8bdccb641bb561757021c0a3d83edb.tar.gz nextpnr-72f5e640af8bdccb641bb561757021c0a3d83edb.tar.bz2 nextpnr-72f5e640af8bdccb641bb561757021c0a3d83edb.zip |
Adding basic placement constraints
Specify the attribute (* LOC="bel_name" *) on any cell to constrain its
placement to that bel.
Signed-off-by: David Shah <davey1576@gmail.com>
Diffstat (limited to 'ice40')
-rw-r--r-- | ice40/blinky.v | 80 |
1 files changed, 77 insertions, 3 deletions
diff --git a/ice40/blinky.v b/ice40/blinky.v index 6b97c5a9..80f92b06 100644 --- a/ice40/blinky.v +++ b/ice40/blinky.v @@ -7,24 +7,98 @@ module blinky ( output led5_pin ); wire clk, led1, led2, led3, led4, led5; + + (* LOC="0_3_lc0" *) + SB_IO #( + .PIN_TYPE(6'b 0110_01), + .PULLUP(1'b0), + .NEG_TRIGGER(1'b0) + ) led1_iob ( + .PACKAGE_PIN(led1_pin), + .LATCH_INPUT_VALUE(), + .CLOCK_ENABLE(), + .INPUT_CLK(), + .OUTPUT_CLK(), + .OUTPUT_ENABLE(), + .D_OUT_0(led1), + .D_OUT_1(), + .D_IN_0(), + .D_IN_1() + ); + + (* LOC="0_3_lc1" *) + SB_IO #( + .PIN_TYPE(6'b 0110_01), + .PULLUP(1'b0), + .NEG_TRIGGER(1'b0) + ) led2_iob ( + .PACKAGE_PIN(led2_pin), + .LATCH_INPUT_VALUE(), + .CLOCK_ENABLE(), + .INPUT_CLK(), + .OUTPUT_CLK(), + .OUTPUT_ENABLE(), + .D_OUT_0(led2), + .D_OUT_1(), + .D_IN_0(), + .D_IN_1() + ); + + (* LOC="5_17_lc1" *) + SB_IO #( + .PIN_TYPE(6'b 0110_01), + .PULLUP(1'b0), + .NEG_TRIGGER(1'b0) + ) led3_iob ( + .PACKAGE_PIN(led3_pin), + .LATCH_INPUT_VALUE(), + .CLOCK_ENABLE(), + .INPUT_CLK(), + .OUTPUT_CLK(), + .OUTPUT_ENABLE(), + .D_OUT_0(led3), + .D_OUT_1(), + .D_IN_0(), + .D_IN_1() + ); + + (* LOC="10_0_lc1" *) + SB_IO #( + .PIN_TYPE(6'b 0110_01), + .PULLUP(1'b0), + .NEG_TRIGGER(1'b0) + ) led4_iob ( + .PACKAGE_PIN(led4_pin), + .LATCH_INPUT_VALUE(), + .CLOCK_ENABLE(), + .INPUT_CLK(), + .OUTPUT_CLK(), + .OUTPUT_ENABLE(), + .D_OUT_0(led4), + .D_OUT_1(), + .D_IN_0(), + .D_IN_1() + ); + (* LOC="12_17_lc0" *) SB_IO #( .PIN_TYPE(6'b 0110_01), .PULLUP(1'b0), .NEG_TRIGGER(1'b0) - ) led_iob [4:0] ( - .PACKAGE_PIN({led1_pin, led2_pin, led3_pin, led4_pin, led5_pin}), + ) led5_iob ( + .PACKAGE_PIN(led5_pin), .LATCH_INPUT_VALUE(), .CLOCK_ENABLE(), .INPUT_CLK(), .OUTPUT_CLK(), .OUTPUT_ENABLE(), - .D_OUT_0({led1, led2, led3, led4, led5}), + .D_OUT_0(led5), .D_OUT_1(), .D_IN_0(), .D_IN_1() ); + (* LOC="0_6_lc0" *) SB_IO #( .PIN_TYPE(6'b 0000_01), .PULLUP(1'b0), |