| /* |
| * nextpnr -- Next Generation Place and Route |
| * |
| * Copyright (C) 2018 David Shah <david@symbioticeda.com> |
| * |
| * Permission to use, copy, modify, and/or distribute this software for any |
| * purpose with or without fee is hereby granted, provided that the above |
| * copyright notice and this permission notice appear in all copies. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
| * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
| * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
| * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
| * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
| * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
| * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| * |
| */ |
| |
| #ifndef ECP5_GFX_H |
| #define ECP5_GFX_H |
| |
| #include "nextpnr.h" |
| |
| NEXTPNR_NAMESPACE_BEGIN |
| |
| const float switchbox_x1 = 0.51; |
| const float switchbox_x2 = 0.90; |
| const float switchbox_y1 = 0.51; |
| const float switchbox_y2 = 0.90; |
| |
| const float slice_x1 = 0.92; |
| const float slice_x2 = 0.94; |
| const float slice_y1 = 0.71; |
| const float slice_y2 = 0.745 + 0.0068; |
| const float slice_pitch = 0.0374 +0.0068; |
| |
| const float io_cell_v_x1 = 0.76; |
| const float io_cell_v_x2 = 0.95; |
| const float io_cell_v_y1 = 0.05; |
| const float io_cell_v_y2 = 0.15; |
| const float io_cell_v_pitch = 0.125; |
| |
| const float io_cell_h_x1 = 0.05; |
| const float io_cell_h_x2 = 0.14; |
| const float io_cell_h_y1 = 0.05; |
| const float io_cell_h_y2 = 0.24; |
| const float io_cell_h_pitch = 0.125; |
| |
| enum GfxTileWireId |
| { |
| TILE_WIRE_NONE, |
| |
| TILE_WIRE_FCO_SLICE, |
| TILE_WIRE_D7_SLICE, |
| TILE_WIRE_C7_SLICE, |
| TILE_WIRE_B7_SLICE, |
| TILE_WIRE_A7_SLICE, |
| TILE_WIRE_D6_SLICE, |
| TILE_WIRE_C6_SLICE, |
| TILE_WIRE_B6_SLICE, |
| TILE_WIRE_A6_SLICE, |
| TILE_WIRE_DI7_SLICE, |
| TILE_WIRE_DI6_SLICE, |
| TILE_WIRE_M7_SLICE, |
| TILE_WIRE_M6_SLICE, |
| TILE_WIRE_FXBD_SLICE, |
| TILE_WIRE_FXAD_SLICE, |
| TILE_WIRE_DUMMY_D1, |
| TILE_WIRE_FXD_SLICE, |
| TILE_WIRE_F7_SLICE, |
| TILE_WIRE_Q7_SLICE, |
| TILE_WIRE_Q6_SLICE, |
| TILE_WIRE_F6_SLICE, |
| TILE_WIRE_F5D_SLICE, |
| TILE_WIRE_CE3_SLICE, |
| TILE_WIRE_FCID_SLICE, |
| |
| |
| TILE_WIRE_FCOC_SLICE, |
| TILE_WIRE_D5_SLICE, |
| TILE_WIRE_C5_SLICE, |
| TILE_WIRE_B5_SLICE, |
| TILE_WIRE_A5_SLICE, |
| TILE_WIRE_D4_SLICE, |
| TILE_WIRE_C4_SLICE, |
| TILE_WIRE_B4_SLICE, |
| TILE_WIRE_A4_SLICE, |
| TILE_WIRE_DI5_SLICE, |
| TILE_WIRE_DI4_SLICE, |
| TILE_WIRE_M5_SLICE, |
| TILE_WIRE_M4_SLICE, |
| TILE_WIRE_FXBC_SLICE, |
| TILE_WIRE_FXAC_SLICE, |
| TILE_WIRE_DUMMY_C1, |
| TILE_WIRE_FXC_SLICE, |
| TILE_WIRE_F5_SLICE, |
| TILE_WIRE_Q5_SLICE, |
| TILE_WIRE_Q4_SLICE, |
| TILE_WIRE_F4_SLICE, |
| TILE_WIRE_F5C_SLICE, |
| TILE_WIRE_CE2_SLICE, |
| TILE_WIRE_FCIC_SLICE, |
| |
| TILE_WIRE_FCOB_SLICE, |
| TILE_WIRE_D3_SLICE, |
| TILE_WIRE_C3_SLICE, |
| TILE_WIRE_B3_SLICE, |
| TILE_WIRE_A3_SLICE, |
| TILE_WIRE_D2_SLICE, |
| TILE_WIRE_C2_SLICE, |
| TILE_WIRE_B2_SLICE, |
| TILE_WIRE_A2_SLICE, |
| TILE_WIRE_DI3_SLICE, |
| TILE_WIRE_DI2_SLICE, |
| TILE_WIRE_M3_SLICE, |
| TILE_WIRE_M2_SLICE, |
| TILE_WIRE_FXBB_SLICE, |
| TILE_WIRE_FXAB_SLICE, |
| TILE_WIRE_DUMMY_B1, |
| TILE_WIRE_FXB_SLICE, |
| TILE_WIRE_F3_SLICE, |
| TILE_WIRE_Q3_SLICE, |
| TILE_WIRE_Q2_SLICE, |
| TILE_WIRE_F2_SLICE, |
| TILE_WIRE_F5B_SLICE, |
| TILE_WIRE_CE1_SLICE, |
| TILE_WIRE_FCIB_SLICE, |
| |
| TILE_WIRE_FCOA_SLICE, |
| TILE_WIRE_D1_SLICE, |
| TILE_WIRE_C1_SLICE, |
| TILE_WIRE_B1_SLICE, |
| TILE_WIRE_A1_SLICE, |
| TILE_WIRE_D0_SLICE, |
| TILE_WIRE_C0_SLICE, |
| TILE_WIRE_B0_SLICE, |
| TILE_WIRE_A0_SLICE, |
| TILE_WIRE_DI1_SLICE, |
| TILE_WIRE_DI0_SLICE, |
| TILE_WIRE_M1_SLICE, |
| TILE_WIRE_M0_SLICE, |
| TILE_WIRE_FXBA_SLICE, |
| TILE_WIRE_FXAA_SLICE, |
| TILE_WIRE_DUMMY_A1, |
| TILE_WIRE_FXA_SLICE, |
| TILE_WIRE_F1_SLICE, |
| TILE_WIRE_Q1_SLICE, |
| TILE_WIRE_Q0_SLICE, |
| TILE_WIRE_F0_SLICE, |
| TILE_WIRE_F5A_SLICE, |
| TILE_WIRE_CE0_SLICE, |
| TILE_WIRE_FCI_SLICE, |
| |
| |
| TILE_WIRE_CLK0, |
| TILE_WIRE_CLK1, |
| TILE_WIRE_LSR0, |
| TILE_WIRE_LSR1, |
| |
| TILE_WIRE_FCO, |
| TILE_WIRE_D7, |
| TILE_WIRE_C7, |
| TILE_WIRE_B7, |
| TILE_WIRE_A7, |
| TILE_WIRE_D6, |
| TILE_WIRE_C6, |
| TILE_WIRE_B6, |
| TILE_WIRE_A6, |
| TILE_WIRE_DI7, |
| TILE_WIRE_DI6, |
| TILE_WIRE_M7, |
| TILE_WIRE_M6, |
| TILE_WIRE_FXBD, |
| TILE_WIRE_FXAD, |
| TILE_WIRE_DUMMY_SWB1, |
| TILE_WIRE_DUMMY_SWB2, |
| TILE_WIRE_F7, |
| TILE_WIRE_Q7, |
| TILE_WIRE_Q6, |
| TILE_WIRE_F6, |
| TILE_WIRE_DUMMY_SWB3, |
| TILE_WIRE_CE3, |
| TILE_WIRE_DUMMY_SWB4, |
| |
| TILE_WIRE_DUMMY_SWB5, |
| TILE_WIRE_D5, |
| TILE_WIRE_C5, |
| TILE_WIRE_B5, |
| TILE_WIRE_A5, |
| TILE_WIRE_D4, |
| TILE_WIRE_C4, |
| TILE_WIRE_B4, |
| TILE_WIRE_A4, |
| TILE_WIRE_DI5, |
| TILE_WIRE_DI4, |
| TILE_WIRE_M5, |
| TILE_WIRE_M4, |
| TILE_WIRE_FXBC, |
| TILE_WIRE_FXAC, |
| TILE_WIRE_DUMMY_SWB6, |
| TILE_WIRE_DUMMY_SWB7, |
| TILE_WIRE_F5, |
| TILE_WIRE_Q5, |
| TILE_WIRE_Q4, |
| TILE_WIRE_F4, |
| TILE_WIRE_DUMMY_SWB8, |
| TILE_WIRE_CE2, |
| TILE_WIRE_DUMMY_SWB9, |
| |
| |
| TILE_WIRE_DUMMY_SWB10, |
| TILE_WIRE_D3, |
| TILE_WIRE_C3, |
| TILE_WIRE_B3, |
| TILE_WIRE_A3, |
| TILE_WIRE_D2, |
| TILE_WIRE_C2, |
| TILE_WIRE_B2, |
| TILE_WIRE_A2, |
| TILE_WIRE_DI3, |
| TILE_WIRE_DI2, |
| TILE_WIRE_M3, |
| TILE_WIRE_M2, |
| TILE_WIRE_FXBB, |
| TILE_WIRE_FXAB, |
| TILE_WIRE_DUMMY_SWB11, |
| TILE_WIRE_DUMMY_SWB12, |
| TILE_WIRE_F3, |
| TILE_WIRE_Q3, |
| TILE_WIRE_Q2, |
| TILE_WIRE_F2, |
| TILE_WIRE_DUMMY_SWB13, |
| TILE_WIRE_CE1, |
| TILE_WIRE_DUMMY_SWB14, |
| |
| |
| TILE_WIRE_DUMMY_SWB15, |
| TILE_WIRE_D1, |
| TILE_WIRE_C1, |
| TILE_WIRE_B1, |
| TILE_WIRE_A1, |
| TILE_WIRE_D0, |
| TILE_WIRE_C0, |
| TILE_WIRE_B0, |
| TILE_WIRE_A0, |
| TILE_WIRE_DI1, |
| TILE_WIRE_DI0, |
| TILE_WIRE_M1, |
| TILE_WIRE_M0, |
| TILE_WIRE_FXBA, |
| TILE_WIRE_FXAA, |
| TILE_WIRE_DUMMY_SWB16, |
| TILE_WIRE_DUMMY_SWB17, |
| TILE_WIRE_F1, |
| TILE_WIRE_Q1, |
| TILE_WIRE_Q0, |
| TILE_WIRE_F0, |
| TILE_WIRE_DUMMY_SWB18, |
| TILE_WIRE_CE0, |
| TILE_WIRE_FCI, |
| |
| |
| TILE_WIRE_MUXCLK3, |
| TILE_WIRE_MUXLSR3, |
| TILE_WIRE_MUXCLK2, |
| TILE_WIRE_MUXLSR2, |
| TILE_WIRE_MUXCLK1, |
| TILE_WIRE_MUXLSR1, |
| TILE_WIRE_MUXCLK0, |
| TILE_WIRE_MUXLSR0, |
| |
| TILE_WIRE_WD3, |
| TILE_WIRE_WD2, |
| TILE_WIRE_WD1, |
| TILE_WIRE_WD0, |
| |
| TILE_WIRE_WAD3, |
| TILE_WIRE_WAD2, |
| TILE_WIRE_WAD1, |
| TILE_WIRE_WAD0, |
| |
| TILE_WIRE_DUMMY_D2, |
| TILE_WIRE_DUMMY_D3, |
| TILE_WIRE_CLK3_SLICE, |
| TILE_WIRE_LSR3_SLICE, |
| TILE_WIRE_DUMMY_D4, |
| TILE_WIRE_DUMMY_D5, |
| TILE_WIRE_DUMMY_D6, |
| TILE_WIRE_DUMMY_D7, |
| TILE_WIRE_DUMMY_D8, |
| TILE_WIRE_DUMMY_D9, |
| TILE_WIRE_DUMMY_D10, |
| TILE_WIRE_DUMMY_D11, |
| |
| |
| TILE_WIRE_DUMMY_C2, |
| TILE_WIRE_DUMMY_C3, |
| TILE_WIRE_CLK2_SLICE, |
| TILE_WIRE_LSR2_SLICE, |
| TILE_WIRE_WDO3C_SLICE, |
| TILE_WIRE_WDO2C_SLICE, |
| TILE_WIRE_WDO1C_SLICE, |
| TILE_WIRE_WDO0C_SLICE, |
| TILE_WIRE_WADO3C_SLICE, |
| TILE_WIRE_WADO2C_SLICE, |
| TILE_WIRE_WADO1C_SLICE, |
| TILE_WIRE_WADO0C_SLICE, |
| |
| |
| TILE_WIRE_WCK1_SLICE, |
| TILE_WIRE_WRE1_SLICE, |
| TILE_WIRE_CLK1_SLICE, |
| TILE_WIRE_LSR1_SLICE, |
| TILE_WIRE_DUMMY_B2, |
| TILE_WIRE_DUMMY_B3, |
| TILE_WIRE_WD1B_SLICE, |
| TILE_WIRE_WD0B_SLICE, |
| TILE_WIRE_WAD3B_SLICE, |
| TILE_WIRE_WAD2B_SLICE, |
| TILE_WIRE_WAD1B_SLICE, |
| TILE_WIRE_WAD0B_SLICE, |
| |
| |
| TILE_WIRE_WCK0_SLICE, |
| TILE_WIRE_WRE0_SLICE, |
| TILE_WIRE_CLK0_SLICE, |
| TILE_WIRE_LSR0_SLICE, |
| TILE_WIRE_DUMMY_A2, |
| TILE_WIRE_DUMMY_A3, |
| TILE_WIRE_WD1A_SLICE, |
| TILE_WIRE_WD0A_SLICE, |
| TILE_WIRE_WAD3A_SLICE, |
| TILE_WIRE_WAD2A_SLICE, |
| TILE_WIRE_WAD1A_SLICE, |
| TILE_WIRE_WAD0A_SLICE, |
| |
| |
| TILE_WIRE_V01N0001, |
| TILE_WIRE_V01N0101, |
| TILE_WIRE_V01S0000, |
| TILE_WIRE_V01S0100, |
| |
| TILE_WIRE_H01E0001, |
| TILE_WIRE_H01E0101, |
| TILE_WIRE_H01W0000, |
| TILE_WIRE_H01W0100, |
| TILE_WIRE_HFIE0000, |
| TILE_WIRE_HL7W0001, |
| |
| TILE_WIRE_V00T0000, |
| TILE_WIRE_V00T0100, |
| |
| TILE_WIRE_V00B0000, |
| TILE_WIRE_V00B0100, |
| |
| TILE_WIRE_H00L0000, |
| TILE_WIRE_H00L0100, |
| |
| TILE_WIRE_H00R0000, |
| TILE_WIRE_H00R0100, |
| |
| TILE_WIRE_NBOUNCE, |
| TILE_WIRE_SBOUNCE, |
| TILE_WIRE_WBOUNCE, |
| TILE_WIRE_EBOUNCE, |
| |
| TILE_WIRE_V02N0701, |
| TILE_WIRE_V02S0701, |
| TILE_WIRE_V02N0601, |
| TILE_WIRE_V02S0601, |
| TILE_WIRE_V02N0501, |
| TILE_WIRE_V02S0501, |
| TILE_WIRE_V02N0401, |
| TILE_WIRE_V02S0401, |
| TILE_WIRE_V02N0301, |
| TILE_WIRE_V02S0301, |
| TILE_WIRE_V02N0201, |
| TILE_WIRE_V02S0201, |
| TILE_WIRE_V02N0101, |
| TILE_WIRE_V02S0101, |
| TILE_WIRE_V02N0001, |
| TILE_WIRE_V02S0001, |
| |
| TILE_WIRE_V06N0303, |
| TILE_WIRE_V06S0303, |
| TILE_WIRE_V06N0203, |
| TILE_WIRE_V06S0203, |
| TILE_WIRE_V06N0103, |
| TILE_WIRE_V06S0103, |
| TILE_WIRE_V06N0003, |
| TILE_WIRE_V06S0003, |
| |
| TILE_WIRE_H02W0701, |
| TILE_WIRE_H02E0701, |
| TILE_WIRE_H02W0601, |
| TILE_WIRE_H02E0601, |
| TILE_WIRE_H02W0501, |
| TILE_WIRE_H02E0501, |
| TILE_WIRE_H02W0401, |
| TILE_WIRE_H02E0401, |
| TILE_WIRE_H02W0301, |
| TILE_WIRE_H02E0301, |
| TILE_WIRE_H02W0201, |
| TILE_WIRE_H02E0201, |
| TILE_WIRE_H02W0101, |
| TILE_WIRE_H02E0101, |
| TILE_WIRE_H02W0001, |
| TILE_WIRE_H02E0001, |
| |
| TILE_WIRE_H06W0303, |
| TILE_WIRE_H06E0303, |
| TILE_WIRE_H06W0203, |
| TILE_WIRE_H06E0203, |
| TILE_WIRE_H06W0103, |
| TILE_WIRE_H06E0103, |
| TILE_WIRE_H06W0003, |
| TILE_WIRE_H06E0003, |
| |
| TILE_WIRE_G_HPBX0000, |
| TILE_WIRE_G_HPBX0100, |
| TILE_WIRE_G_HPBX0200, |
| TILE_WIRE_G_HPBX0300, |
| TILE_WIRE_G_HPBX0400, |
| TILE_WIRE_G_HPBX0500, |
| TILE_WIRE_G_HPBX0600, |
| TILE_WIRE_G_HPBX0700, |
| TILE_WIRE_G_HPBX0800, |
| TILE_WIRE_G_HPBX0900, |
| TILE_WIRE_G_HPBX1000, |
| TILE_WIRE_G_HPBX1100, |
| TILE_WIRE_G_HPBX1200, |
| TILE_WIRE_G_HPBX1300, |
| TILE_WIRE_G_HPBX1400, |
| TILE_WIRE_G_HPBX1500, |
| }; |
| |
| void gfxTileWire(std::vector<GraphicElement> &g, int x, int y, int w, int h, IdString wire_type, GfxTileWireId tilewire, GraphicElement::style_t style); |
| void gfxTilePip(std::vector<GraphicElement> &g, int x, int y, int w, int h, WireId src, IdString src_type, GfxTileWireId src_id, WireId dst, IdString dst_type, GfxTileWireId dst_id, GraphicElement::style_t style); |
| |
| NEXTPNR_NAMESPACE_END |
| |
| #endif |