Skip to content

Commit ccf182a

Browse files
Initial structure for cosmo hotplug fpga
1 parent 7ccd402 commit ccf182a

File tree

4 files changed

+350
-0
lines changed

4 files changed

+350
-0
lines changed

hdl/projects/cosmo_hp/BUCK

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
load("//tools:hdl.bzl", "vhdl_unit")
2+
load("//tools:yosys.bzl", "ice40_bitstream")
3+
4+
vhdl_unit(
5+
name = "cosmo_hp_top",
6+
srcs = glob(["*.vhd"]),
7+
standard = "2008",
8+
)
9+
10+
ice40_bitstream(
11+
name="cosmo_hp_bitstream",
12+
top_entity_name="cosmo_hp_top",
13+
top= ":cosmo_hp_top",
14+
family="hx8k",
15+
package="ct256",
16+
pinmap="cosmo_hp.pcf"
17+
)

hdl/projects/cosmo_hp/cosmo_hp.pcf

+151
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
set_io --warn-no-port cema_to_fpga2_alert_l F13
2+
set_io --warn-no-port cema_to_fpga2_ifdet_l F12
3+
set_io --warn-no-port cema_to_fpga2_pg_l C16
4+
set_io --warn-no-port cema_to_fpga2_prsnt_l G12
5+
set_io --warn-no-port cema_to_fpga2_pwrflt_l D16
6+
set_io --warn-no-port cema_to_fpga2_sharkfin_present F11
7+
set_io --warn-no-port cemb_to_fpga2_alert_l H16
8+
set_io --warn-no-port cemb_to_fpga2_ifdet_l J12
9+
set_io --warn-no-port cemb_to_fpga2_pg_l H11
10+
set_io --warn-no-port cemb_to_fpga2_prsnt_l K16
11+
set_io --warn-no-port cemb_to_fpga2_pwrflt_l K15
12+
set_io --warn-no-port cemb_to_fpga2_sharkfin_present J16
13+
set_io --warn-no-port cemc_to_fpga2_alert_l N16
14+
set_io --warn-no-port cemc_to_fpga2_ifdet_l P14
15+
set_io --warn-no-port cemc_to_fpga2_pg_l L12
16+
set_io --warn-no-port cemc_to_fpga2_prsnt_l R14
17+
set_io --warn-no-port cemc_to_fpga2_pwrflt_l P15
18+
set_io --warn-no-port cemc_to_fpga2_sharkfin_present M13
19+
set_io --warn-no-port cemd_to_fpga2_alert_l B4
20+
set_io --warn-no-port cemd_to_fpga2_ifdet_l A6
21+
set_io --warn-no-port cemd_to_fpga2_pg_l E6
22+
set_io --warn-no-port cemd_to_fpga2_prsnt_l D7
23+
set_io --warn-no-port cemd_to_fpga2_pwrflt_l B6
24+
set_io --warn-no-port cemd_to_fpga2_sharkfin_present A5
25+
set_io --warn-no-port ceme_to_fpga2_alert_l A11
26+
set_io --warn-no-port ceme_to_fpga2_ifdet_l B12
27+
set_io --warn-no-port ceme_to_fpga2_pg_l A10
28+
set_io --warn-no-port ceme_to_fpga2_prsnt_l D11
29+
set_io --warn-no-port ceme_to_fpga2_pwrflt_l E10
30+
set_io --warn-no-port ceme_to_fpga2_sharkfin_present B11
31+
set_io --warn-no-port cemf_to_fpga2_alert_l E16
32+
set_io --warn-no-port cemf_to_fpga2_ifdet_l G10
33+
set_io --warn-no-port cemf_to_fpga2_pg_l G14
34+
set_io --warn-no-port cemf_to_fpga2_prsnt_l H12
35+
set_io --warn-no-port cemf_to_fpga2_pwrflt_l G16
36+
set_io --warn-no-port cemf_to_fpga2_sharkfin_present G11
37+
set_io --warn-no-port cemg_to_fpga2_alert_l K14
38+
set_io --warn-no-port cemg_to_fpga2_ifdet_l J10
39+
set_io --warn-no-port cemg_to_fpga2_pg_l K13
40+
set_io --warn-no-port cemg_to_fpga2_prsnt_l K12
41+
set_io --warn-no-port cemg_to_fpga2_pwrflt_l L14
42+
set_io --warn-no-port cemg_to_fpga2_sharkfin_present J11
43+
set_io --warn-no-port cemh_to_fpga2_alert_l C3
44+
set_io --warn-no-port cemh_to_fpga2_ifdet_l C4
45+
set_io --warn-no-port cemh_to_fpga2_pg_l D3
46+
set_io --warn-no-port cemh_to_fpga2_prsnt_l C5
47+
set_io --warn-no-port cemh_to_fpga2_pwrflt_l D5
48+
set_io --warn-no-port cemh_to_fpga2_sharkfin_present D4
49+
set_io --warn-no-port cemi_to_fpga2_alert_l C7
50+
set_io --warn-no-port cemi_to_fpga2_ifdet_l A9
51+
set_io --warn-no-port cemi_to_fpga2_pg_l A7
52+
set_io --warn-no-port cemi_to_fpga2_prsnt_l D9
53+
set_io --warn-no-port cemi_to_fpga2_pwrflt_l C9
54+
set_io --warn-no-port cemi_to_fpga2_sharkfin_present D8
55+
set_io --warn-no-port cemj_to_fpga2_alert_l A15
56+
set_io --warn-no-port cemj_to_fpga2_ifdet_l B14
57+
set_io --warn-no-port cemj_to_fpga2_pg_l A16
58+
set_io --warn-no-port cemj_to_fpga2_prsnt_l D13
59+
set_io --warn-no-port cemj_to_fpga2_pwrflt_l C14
60+
set_io --warn-no-port cemj_to_fpga2_sharkfin_present E11
61+
set_io --warn-no-port clk_50mhz_fpga2 F7
62+
set_io --warn-no-port clk_buff_cemabcd_to_fpga2_los_l K9
63+
set_io --warn-no-port clk_buff_cemefg_to_fpga2_los_l N12
64+
set_io --warn-no-port clk_buff_cemhij_to_fpga2_los_l T10
65+
set_io --warn-no-port fpga1_to_fpga2_io[0] D1
66+
set_io --warn-no-port fpga1_to_fpga2_io[1] G4
67+
set_io --warn-no-port fpga1_to_fpga2_io[2] E3
68+
set_io --warn-no-port fpga1_to_fpga2_io[3] H5
69+
set_io --warn-no-port fpga1_to_fpga2_io[4] E2
70+
set_io --warn-no-port fpga1_to_fpga2_io[5] G3
71+
set_io --warn-no-port fpga2_spare_v3p3[0] E4
72+
set_io --warn-no-port fpga2_spare_v3p3[1] B2
73+
set_io --warn-no-port fpga2_spare_v3p3[2] F5
74+
set_io --warn-no-port fpga2_spare_v3p3[3] B1
75+
set_io --warn-no-port fpga2_spare_v3p3[4] C1
76+
set_io --warn-no-port fpga2_spare_v3p3[5] C2
77+
set_io --warn-no-port fpga2_spare_v3p3[6] F4
78+
set_io --warn-no-port fpga2_spare_v3p3[7] D2
79+
set_io --warn-no-port fpga2_status_led B9
80+
set_io --warn-no-port fpga2_to_cema_attnled R4
81+
set_io --warn-no-port fpga2_to_cema_perst_l F14
82+
set_io --warn-no-port fpga2_to_cema_pwren E14
83+
set_io --warn-no-port fpga2_to_cemb_attnled T3
84+
set_io --warn-no-port fpga2_to_cemb_perst_l J14
85+
set_io --warn-no-port fpga2_to_cemb_pwren H13
86+
set_io --warn-no-port fpga2_to_cemc_attnled R3
87+
set_io --warn-no-port fpga2_to_cemc_perst_l R15
88+
set_io --warn-no-port fpga2_to_cemc_pwren M14
89+
set_io --warn-no-port fpga2_to_cemd_attnled T2
90+
set_io --warn-no-port fpga2_to_cemd_perst_l C6
91+
set_io --warn-no-port fpga2_to_cemd_pwren B5
92+
set_io --warn-no-port fpga2_to_ceme_attnled R2
93+
set_io --warn-no-port fpga2_to_ceme_perst_l C11
94+
set_io --warn-no-port fpga2_to_ceme_pwren C10
95+
set_io --warn-no-port fpga2_to_cemf_attnled R5
96+
set_io --warn-no-port fpga2_to_cemf_perst_l G15
97+
set_io --warn-no-port fpga2_to_cemf_pwren F15
98+
set_io --warn-no-port fpga2_to_cemg_attnled P4
99+
set_io --warn-no-port fpga2_to_cemg_perst_l M16
100+
set_io --warn-no-port fpga2_to_cemg_pwren L16
101+
set_io --warn-no-port fpga2_to_cemh_attnled P5
102+
set_io --warn-no-port fpga2_to_cemh_perst_l A1
103+
set_io --warn-no-port fpga2_to_cemh_pwren E5
104+
set_io --warn-no-port fpga2_to_cemi_attnled N5
105+
set_io --warn-no-port fpga2_to_cemi_perst_l E9
106+
set_io --warn-no-port fpga2_to_cemi_pwren B8
107+
set_io --warn-no-port fpga2_to_cemj_attnled M7
108+
set_io --warn-no-port fpga2_to_cemj_perst_l B15
109+
set_io --warn-no-port fpga2_to_cemj_pwren C13
110+
set_io --warn-no-port fpga2_to_clk_buff_cema_oe_l N9
111+
set_io --warn-no-port fpga2_to_clk_buff_cemb_oe_l T9
112+
set_io --warn-no-port fpga2_to_clk_buff_cemc_oe_l M9
113+
set_io --warn-no-port fpga2_to_clk_buff_cemd_oe_l R9
114+
set_io --warn-no-port fpga2_to_clk_buff_ceme_oe_l T15
115+
set_io --warn-no-port fpga2_to_clk_buff_cemf_oe_l T14
116+
set_io --warn-no-port fpga2_to_clk_buff_cemg_oe_l M11
117+
set_io --warn-no-port fpga2_to_clk_buff_cemh_oe_l R10
118+
set_io --warn-no-port fpga2_to_clk_buff_cemi_oe_l L10
119+
set_io --warn-no-port fpga2_to_clk_buff_cemj_oe_l P10
120+
set_io --warn-no-port fpga2_to_clk_buff_mcio_oe_l T13
121+
set_io --warn-no-port fpga2_to_clk_buff_ufl_oe_l N10
122+
set_io --warn-no-port fpga2_to_i2c_mux4_sel[0] K1
123+
set_io --warn-no-port fpga2_to_i2c_mux4_sel[1] J1
124+
set_io --warn-no-port fpga2_to_i2c_mux5_sel[0] L1
125+
set_io --warn-no-port fpga2_to_i2c_mux5_sel[1] M1
126+
set_io --warn-no-port fpga2_to_i2c_mux6_sel[0] M3
127+
set_io --warn-no-port fpga2_to_i2c_mux6_sel[1] L5
128+
set_io --warn-no-port fpga2_to_i2c_mux7_sel[0] H2
129+
set_io --warn-no-port fpga2_to_i2c_mux7_sel[1] G2
130+
set_io --warn-no-port fpga2_to_i2c_mux8_sel[0] F1
131+
set_io --warn-no-port fpga2_to_i2c_mux8_sel[1] G1
132+
set_io --warn-no-port fpga2_to_mcio_perst_l J3
133+
set_io --warn-no-port fpga2_to_mcio_prpe H1
134+
set_io --warn-no-port fpga2_to_sp_int_l[0] M4
135+
set_io --warn-no-port fpga2_to_sp_int_l[1] P2
136+
set_io --warn-no-port fpga2_to_sp_int_l[2] M5
137+
set_io --warn-no-port fpga2_to_v12_mcio_a0hp_hsc_en F2
138+
set_io --warn-no-port i2c_sp5_to_fpga2_scl M2
139+
set_io --warn-no-port i2c_sp5_to_fpga2_sda L7
140+
set_io --warn-no-port i2c_sp5_to_fpga2_xltr_en N2
141+
set_io --warn-no-port smbus_sp_to_fpga2_smclk T7
142+
set_io --warn-no-port smbus_sp_to_fpga2_smdat T8
143+
set_io --warn-no-port sp5_to_fpga_genint_3v3_l K5
144+
set_io --warn-no-port sp_to_fpga2_system_reset_l N6
145+
set_io --warn-no-port spi_fpga2_to_sp_mux_dat P12
146+
set_io --warn-no-port spi_sp_mux_to_fpga2_cs_l R12
147+
set_io --warn-no-port spi_sp_mux_to_fpga2_dat P11
148+
set_io --warn-no-port spi_sp_mux_to_fpga2_sck R11
149+
set_io --warn-no-port uart_fpga2_to_sp_dat N4
150+
set_io --warn-no-port uart_sp_to_fpga2_dat R1
151+
set_io --warn-no-port v12_mcio_a0hp_pg H6
+176
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
-- This Source Code Form is subject to the terms of the Mozilla Public
2+
-- License, v. 2.0. If a copy of the MPL was not distributed with this
3+
-- file, You can obtain one at https://mozilla.org/MPL/2.0/.
4+
--
5+
-- Copyright 2024 Oxide Computer Company
6+
7+
-- Cosmo Front Hot-plug FPGA targeting an ice40 HX8k
8+
-- Pin names snapshot from 20Nov2024
9+
10+
11+
library ieee;
12+
use ieee.std_logic_1164.all;
13+
use ieee.numeric_std.all;
14+
use ieee.numeric_std_unsigned.all;
15+
16+
entity cosmo_hp_top is
17+
port (
18+
clk_50mhz_fpga2: in std_logic;
19+
sp_to_fpga2_system_reset_l: in std_logic;
20+
21+
-- CEM A
22+
cema_to_fpga2_alert_l : in std_logic;
23+
cema_to_fpga2_ifdet_l : in std_logic;
24+
cema_to_fpga2_pg_l : in std_logic;
25+
cema_to_fpga2_prsnt_l : in std_logic;
26+
cema_to_fpga2_pwrflt_l : in std_logic;
27+
cema_to_fpga2_sharkfin_present : in std_logic;
28+
fpga2_to_cema_attnled: out std_logic;
29+
fpga2_to_cema_perst_l : out std_logic;
30+
fpga2_to_cema_pwren : out std_logic;
31+
-- CEM B
32+
cemb_to_fpga2_alert_l : in std_logic;
33+
cemb_to_fpga2_ifdet_l : in std_logic;
34+
cemb_to_fpga2_pg_l : in std_logic;
35+
cemb_to_fpga2_prsnt_l : in std_logic;
36+
cemb_to_fpga2_pwrflt_l : in std_logic;
37+
cemb_to_fpga2_sharkfin_present : in std_logic;
38+
fpga2_to_cemb_attnled: out std_logic;
39+
fpga2_to_cemb_perst_l : out std_logic;
40+
fpga2_to_cemb_pwren : out std_logic;
41+
-- CEM C
42+
cemc_to_fpga2_alert_l : in std_logic;
43+
cemc_to_fpga2_ifdet_l : in std_logic;
44+
cemc_to_fpga2_pg_l : in std_logic;
45+
cemc_to_fpga2_prsnt_l : in std_logic;
46+
cemc_to_fpga2_pwrflt_l : in std_logic;
47+
cemc_to_fpga2_sharkfin_present : in std_logic;
48+
fpga2_to_cemc_attnled: out std_logic;
49+
fpga2_to_cemc_perst_l : out std_logic;
50+
fpga2_to_cemc_pwren : out std_logic;
51+
-- CEM D
52+
cemd_to_fpga2_alert_l: in std_logic;
53+
cemd_to_fpga2_ifdet_l: in std_logic;
54+
cemd_to_fpga2_pg_l: in std_logic;
55+
cemd_to_fpga2_prsnt_l: in std_logic;
56+
cemd_to_fpga2_pwrflt_l: in std_logic;
57+
cemd_to_fpga2_sharkfin_present: in std_logic;
58+
fpga2_to_cemd_attnled: out std_logic;
59+
fpga2_to_cemd_perst_l: out std_logic;
60+
fpga2_to_cemd_pwren: out std_logic;
61+
-- CEM E
62+
ceme_to_fpga2_alert_l : in std_logic;
63+
ceme_to_fpga2_ifdet_l : in std_logic;
64+
ceme_to_fpga2_pg_l : in std_logic;
65+
ceme_to_fpga2_prsnt_l : in std_logic;
66+
ceme_to_fpga2_pwrflt_l : in std_logic;
67+
ceme_to_fpga2_sharkfin_present : in std_logic;
68+
fpga2_to_ceme_attnled: out std_logic;
69+
fpga2_to_ceme_perst_l : out std_logic;
70+
fpga2_to_ceme_pwren : out std_logic;
71+
-- CEM F
72+
cemf_to_fpga2_alert_l : in std_logic;
73+
cemf_to_fpga2_ifdet_l : in std_logic;
74+
cemf_to_fpga2_pg_l : in std_logic;
75+
cemf_to_fpga2_prsnt_l : in std_logic;
76+
cemf_to_fpga2_pwrflt_l : in std_logic;
77+
cemf_to_fpga2_sharkfin_present : in std_logic;
78+
fpga2_to_cemf_attnled: out std_logic;
79+
fpga2_to_cemf_perst_l : out std_logic;
80+
fpga2_to_cemf_pwren : out std_logic;
81+
-- CEM G
82+
cemg_to_fpga2_alert_l : in std_logic;
83+
cemg_to_fpga2_ifdet_l : in std_logic;
84+
cemg_to_fpga2_pg_l : in std_logic;
85+
cemg_to_fpga2_prsnt_l : in std_logic;
86+
cemg_to_fpga2_pwrflt_l : in std_logic;
87+
cemg_to_fpga2_sharkfin_present : in std_logic;
88+
fpga2_to_cemg_attnled: out std_logic;
89+
fpga2_to_cemg_perst_l : out std_logic;
90+
fpga2_to_cemg_pwren : out std_logic;
91+
-- CEM H
92+
cemh_to_fpga2_alert_l: in std_logic;
93+
cemh_to_fpga2_ifdet_l: in std_logic;
94+
cemh_to_fpga2_pg_l: in std_logic;
95+
cemh_to_fpga2_prsnt_l: in std_logic;
96+
cemh_to_fpga2_pwrflt_l: in std_logic;
97+
cemh_to_fpga2_sharkfin_present: in std_logic;
98+
fpga2_to_cemh_attnled: out std_logic;
99+
fpga2_to_cemh_perst_l: out std_logic;
100+
fpga2_to_cemh_pwren: out std_logic;
101+
-- CEM I
102+
cemi_to_fpga2_alert_l: in std_logic;
103+
cemi_to_fpga2_ifdet_l: in std_logic;
104+
cemi_to_fpga2_pg_l: in std_logic;
105+
cemi_to_fpga2_prsnt_l: in std_logic;
106+
cemi_to_fpga2_pwrflt_l: in std_logic;
107+
cemi_to_fpga2_sharkfin_present: in std_logic;
108+
fpga2_to_cemi_attnled: out std_logic;
109+
fpga2_to_cemi_perst_l: out std_logic;
110+
fpga2_to_cemi_pwren: out std_logic;
111+
-- CEM J
112+
cemj_to_fpga2_alert_l : in std_logic;
113+
cemj_to_fpga2_ifdet_l : in std_logic;
114+
cemj_to_fpga2_pg_l : in std_logic;
115+
cemj_to_fpga2_prsnt_l : in std_logic;
116+
cemj_to_fpga2_pwrflt_l : in std_logic;
117+
cemj_to_fpga2_sharkfin_present : in std_logic;
118+
fpga2_to_cemj_attnled: out std_logic;
119+
fpga2_to_cemj_perst_l : out std_logic;
120+
fpga2_to_cemj_pwren : out std_logic;
121+
-- CLK Buffer I/F
122+
clk_buff_cemabcd_to_fpga2_los_l: in std_logic;
123+
clk_buff_cemefg_to_fpga2_los_l : in std_logic;
124+
clk_buff_cemhij_to_fpga2_los_l : in std_logic;
125+
fpga2_to_clk_buff_cema_oe_l: out std_logic;
126+
fpga2_to_clk_buff_cemb_oe_l: out std_logic;
127+
fpga2_to_clk_buff_cemc_oe_l: out std_logic;
128+
fpga2_to_clk_buff_cemd_oe_l: out std_logic;
129+
fpga2_to_clk_buff_ceme_oe_l : out std_logic;
130+
fpga2_to_clk_buff_cemf_oe_l : out std_logic;
131+
fpga2_to_clk_buff_cemg_oe_l : out std_logic;
132+
fpga2_to_clk_buff_cemh_oe_l : out std_logic;
133+
fpga2_to_clk_buff_cemi_oe_l : out std_logic;
134+
fpga2_to_clk_buff_cemj_oe_l : out std_logic;
135+
fpga2_to_clk_buff_mcio_oe_l : out std_logic;
136+
fpga2_to_clk_buff_ufl_oe_l : out std_logic;
137+
-- MCIO I/F
138+
v12_mcio_a0hp_pg: in std_logic;
139+
fpga2_to_mcio_perst_l: out std_logic;
140+
fpga2_to_mcio_prpe: out std_logic;
141+
fpga2_to_v12_mcio_a0hp_hsc_en: out std_logic;
142+
-- FPGA1 I/F
143+
fpga1_to_fpga2_io: in std_logic_vector(5 downto 0);
144+
-- FPGA misc I/O
145+
fpga2_spare_v3p3: in std_logic_vector(7 downto 0);
146+
fpga2_status_led: out std_logic;
147+
-- SP I/F
148+
fpga2_to_sp_int_l: in std_logic_vector(2 downto 0); -- 3..1 in sch
149+
smbus_sp_to_fpga2_smclk: inout std_logic;
150+
smbus_sp_to_fpga2_smdat: inout std_logic;
151+
spi_fpga2_to_sp_mux_dat: in std_logic;
152+
spi_sp_mux_to_fpga2_cs_l : in std_logic;
153+
spi_sp_mux_to_fpga2_dat : in std_logic;
154+
spi_sp_mux_to_fpga2_sck : in std_logic;
155+
uart_fpga2_to_sp_dat: in std_logic;
156+
uart_sp_to_fpga2_dat: in std_logic;
157+
-- I2C Muxes
158+
fpga2_to_i2c_mux4_sel: in std_logic_vector(1 downto 0);
159+
fpga2_to_i2c_mux5_sel: in std_logic_vector(1 downto 0);
160+
fpga2_to_i2c_mux6_sel: in std_logic_vector(1 downto 0);
161+
fpga2_to_i2c_mux7_sel: in std_logic_vector(1 downto 0);
162+
fpga2_to_i2c_mux8_sel: in std_logic_vector(1 downto 0);
163+
-- SP5 I/F
164+
i2c_sp5_to_fpga2_scl: inout std_logic;
165+
i2c_sp5_to_fpga2_sda: inout std_logic;
166+
i2c_sp5_to_fpga2_xltr_en: in std_logic;
167+
sp5_to_fpga_genint_3v3_l: in std_logic
168+
169+
);
170+
end entity;
171+
172+
architecture rtl of cosmo_hp_top is
173+
174+
begin
175+
176+
end rtl;

tools/yosys.bzl

+6
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ def ice40_nextpnr(ctx, yoys_providers):
7373
asc = ctx.actions.declare_output("{}.asc".format(ctx.attrs.name))
7474
cmd = cmd_args()
7575
cmd.add(ctx.attrs._nextpnr_ice40[RunInfo])
76+
cmd.add(next_pnr_family_flags(ctx.attrs.family))
7677
cmd.add("--package", ctx.attrs.package)
7778
cmd.add("--pcf", ctx.attrs.pinmap)
7879
cmd.add("--json", yosys_json)
@@ -83,6 +84,10 @@ def ice40_nextpnr(ctx, yoys_providers):
8384
providers.append(DefaultInfo(default_output=asc))
8485
return providers
8586

87+
# naive implemenation of turning family into nextpnr flags
88+
def next_pnr_family_flags(family):
89+
return "--{}".format(family)
90+
8691

8792
def icepack(ctx, next_pnr_providers):
8893
providers = []
@@ -104,6 +109,7 @@ ice40_bitstream = rule(
104109
attrs={
105110
"top_entity_name": attrs.string(),
106111
"top": attrs.dep(doc="Expected top HDL unit"),
112+
"family": attrs.string(doc="FPGA family"),
107113
"package": attrs.string(doc="Supported FPGA package"),
108114
"pinmap": attrs.source(doc="Pin constraints file *.pcf"),
109115
"_yosys_gen": attrs.exec_dep(

0 commit comments

Comments
 (0)