From 72f5e640af8bdccb641bb561757021c0a3d83edb Mon Sep 17 00:00:00 2001 From: David Shah Date: Sat, 9 Jun 2018 19:38:37 +0200 Subject: 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 --- ice40/blinky.v | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 3 deletions(-) (limited to 'ice40') 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), -- cgit v1.2.3