gowin: Add GUI.

* Items such as LUT, DFF, MUX, ALU, IOB are displayed;
* Local wires, 1-2-4-8 wires are displayed;
* The clock spines, taps and branches are displayed with some caveats.

For now, you can not create a project in the GUI because of possible
conflict with another PR (about GW1NR-9C support), but you can specify
the board in the command line and load .JSON and .CST in the GUI.

Although ALUs are displayed, but the CIN and COUT wires are not. This is
still an unsolved problem.

Signed-off-by: YRabbit <[email protected]>
This commit is contained in:
YRabbit
2022-01-29 14:45:17 +10:00
parent e069b3bc6a
commit 22e4081c73
16 changed files with 6655 additions and 56 deletions
+342
View File
@@ -313,6 +313,312 @@ X(COUT2)
X(COUT3)
X(COUT4)
X(COUT5)
// wires
// SN
X(S10)
X(S10_loop0)
X(S13)
X(S13_loop0)
X(N10)
X(N10_loop0)
X(N13)
X(N13_loop0)
X(SN10_loop_n)
X(SN10_loop_s)
X(SN20_loop_n)
X(SN20_loop_s)
X(S20)
X(S20_loop0)
X(S20_loop1)
X(S21)
X(S21_loop0)
X(S21_loop1)
X(S22)
X(S22_loop0)
X(S22_loop1)
X(S23)
X(S23_loop0)
X(S23_loop1)
X(S24)
X(S24_loop0)
X(S24_loop1)
X(S25)
X(S25_loop0)
X(S25_loop1)
X(S26)
X(S26_loop0)
X(S26_loop1)
X(S27)
X(S27_loop0)
X(S27_loop1)
X(N20)
X(N20_loop0)
X(N20_loop1)
X(N21)
X(N21_loop0)
X(N21_loop1)
X(N22)
X(N22_loop0)
X(N22_loop1)
X(N23)
X(N23_loop0)
X(N23_loop1)
X(N24)
X(N24_loop0)
X(N24_loop1)
X(N25)
X(N25_loop0)
X(N25_loop1)
X(N26)
X(N26_loop0)
X(N26_loop1)
X(N27)
X(N27_loop0)
X(N27_loop1)
X(S80)
X(S80_loop0)
X(S80_loop1)
X(S80_loop2)
X(S80_loop3)
X(S80_loop4)
X(S80_loop5)
X(S80_loop6)
X(S80_loop7)
X(N80)
X(N80_loop0)
X(N80_loop1)
X(N80_loop2)
X(N80_loop3)
X(N80_loop4)
X(N80_loop5)
X(N80_loop6)
X(N80_loop7)
X(S81)
X(S81_loop0)
X(S81_loop1)
X(S81_loop2)
X(S81_loop3)
X(S81_loop4)
X(S81_loop5)
X(S81_loop6)
X(S81_loop7)
X(N81)
X(N81_loop0)
X(N81_loop1)
X(N81_loop2)
X(N81_loop3)
X(N81_loop4)
X(N81_loop5)
X(N81_loop6)
X(N81_loop7)
X(S82)
X(S82_loop0)
X(S82_loop1)
X(S82_loop2)
X(S82_loop3)
X(S82_loop4)
X(S82_loop5)
X(S82_loop6)
X(S82_loop7)
X(N82)
X(N82_loop0)
X(N82_loop1)
X(N82_loop2)
X(N82_loop3)
X(N82_loop4)
X(N82_loop5)
X(N82_loop6)
X(N82_loop7)
X(S83)
X(S83_loop0)
X(S83_loop1)
X(S83_loop2)
X(S83_loop3)
X(S83_loop4)
X(S83_loop5)
X(S83_loop6)
X(S83_loop7)
X(N83)
X(N83_loop0)
X(N83_loop1)
X(N83_loop2)
X(N83_loop3)
X(N83_loop4)
X(N83_loop5)
X(N83_loop6)
X(N83_loop7)
// WE
X(E10)
X(E10_loop0)
X(E13)
X(E13_loop0)
X(W10)
X(W10_loop0)
X(W13)
X(W13_loop0)
X(EW10_loop_w)
X(EW10_loop_e)
X(EW20_loop_w)
X(EW20_loop_e)
//
X(E20)
X(E20_loop0)
X(E20_loop1)
X(E21)
X(E21_loop0)
X(E21_loop1)
X(E22)
X(E22_loop0)
X(E22_loop1)
X(E23)
X(E23_loop0)
X(E23_loop1)
X(E24)
X(E24_loop0)
X(E24_loop1)
X(E25)
X(E25_loop0)
X(E25_loop1)
X(E26)
X(E26_loop0)
X(E26_loop1)
X(E27)
X(E27_loop0)
X(E27_loop1)
X(W20)
X(W20_loop0)
X(W20_loop1)
X(W21)
X(W21_loop0)
X(W21_loop1)
X(W22)
X(W22_loop0)
X(W22_loop1)
X(W23)
X(W23_loop0)
X(W23_loop1)
X(W24)
X(W24_loop0)
X(W24_loop1)
X(W25)
X(W25_loop0)
X(W25_loop1)
X(W26)
X(W26_loop0)
X(W26_loop1)
X(W27)
X(W27_loop0)
X(W27_loop1)
//
X(E80)
X(E80_loop0)
X(E80_loop1)
X(E80_loop2)
X(E80_loop3)
X(E80_loop4)
X(E80_loop5)
X(E80_loop6)
X(E80_loop7)
X(W80)
X(W80_loop0)
X(W80_loop1)
X(W80_loop2)
X(W80_loop3)
X(W80_loop4)
X(W80_loop5)
X(W80_loop6)
X(W80_loop7)
X(E81)
X(E81_loop0)
X(E81_loop1)
X(E81_loop2)
X(E81_loop3)
X(E81_loop4)
X(E81_loop5)
X(E81_loop6)
X(E81_loop7)
X(W81)
X(W81_loop0)
X(W81_loop1)
X(W81_loop2)
X(W81_loop3)
X(W81_loop4)
X(W81_loop5)
X(W81_loop6)
X(W81_loop7)
X(E82)
X(E82_loop0)
X(E82_loop1)
X(E82_loop2)
X(E82_loop3)
X(E82_loop4)
X(E82_loop5)
X(E82_loop6)
X(E82_loop7)
X(W82)
X(W82_loop0)
X(W82_loop1)
X(W82_loop2)
X(W82_loop3)
X(W82_loop4)
X(W82_loop5)
X(W82_loop6)
X(W82_loop7)
X(E83)
X(E83_loop0)
X(E83_loop1)
X(E83_loop2)
X(E83_loop3)
X(E83_loop4)
X(E83_loop5)
X(E83_loop6)
X(E83_loop7)
X(W83)
X(W83_loop0)
X(W83_loop1)
X(W83_loop2)
X(W83_loop3)
X(W83_loop4)
X(W83_loop5)
X(W83_loop6)
X(W83_loop7)
// spines
X(SPINE0)
X(SPINE1)
X(SPINE2)
X(SPINE3)
X(SPINE4)
X(SPINE5)
X(SPINE6)
X(SPINE7)
X(SPINE8)
X(SPINE9)
X(SPINE10)
X(SPINE11)
X(SPINE12)
X(SPINE13)
X(SPINE14)
X(SPINE15)
X(SPINE16)
X(SPINE17)
X(SPINE18)
X(SPINE19)
X(SPINE20)
X(SPINE21)
X(SPINE22)
X(SPINE23)
X(SPINE24)
X(SPINE25)
X(SPINE26)
X(SPINE27)
X(SPINE28)
X(SPINE29)
X(SPINE30)
X(SPINE31)
// slice items
X(SLICE)
X(CLK)
@@ -380,6 +686,22 @@ X(GW_MUX2_LUT5)
X(GW_MUX2_LUT6)
X(GW_MUX2_LUT7)
X(GW_MUX2_LUT8)
X(I0MUX0)
X(I1MUX0)
X(I0MUX1)
X(I1MUX1)
X(I0MUX2)
X(I1MUX2)
X(I0MUX3)
X(I1MUX3)
X(I0MUX4)
X(I1MUX4)
X(I0MUX5)
X(I1MUX5)
X(I0MUX6)
X(I1MUX6)
X(I0MUX7)
X(I1MUX7)
// ALU
X(ALU)
@@ -464,3 +786,23 @@ X(d_f)
X(fx_ofx1)
X(I01)
// GUI
X(DECAL_LUT_ACTIVE)
X(DECAL_LUT_INACTIVE)
X(DECAL_LUTDFF_ACTIVE)
X(DECAL_LUTDFF_INACTIVE)
X(DECAL_LUT_UNUSED_DFF_ACTIVE)
X(DECAL_GRP_LUT)
X(DECAL_CRU)
X(DECAL_MUXUPPER_INACTIVE)
X(DECAL_MUXUPPER_ACTIVE)
X(DECAL_MUXLOWER_INACTIVE)
X(DECAL_MUXLOWER_ACTIVE)
X(DECAL_IOB_INACTIVE)
X(DECAL_IOB_ACTIVE)
X(DECAL_IOBS_INACTIVE)
X(DECAL_IOBS_ACTIVE)
X(DECAL_ALU_ACTIVE)