Skip to content

Commit 15ddb8b

Browse files
pcba: add KiCad schematic, project file, and BOM for breakout board
1 parent 4fa2429 commit 15ddb8b

3 files changed

Lines changed: 184 additions & 0 deletions

File tree

pcba/BOM.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Bill of Materials - FIR Accelerator Breakout Board
2+
3+
| Ref | Value | Description | Footprint | Qty |
4+
|---|---|---|---|---|
5+
| U1 | Caravel SoC | SKY130A Caravel QFN-64 | QFN-64 | 1 |
6+
| R1 | 10k | RC filter resistor, GPIO[9] PWM output | R_0402 | 1 |
7+
| C1 | 100nF | RC filter capacitor, f_c=159Hz | C_0402 | 1 |
8+
| C2 | 100nF | Decoupling cap, VCCD | C_0402 | 1 |
9+
| C3 | 100nF | Decoupling cap, VDDA | C_0402 | 1 |
10+
| J1 | GPIO8_IN | Bitstream input header 2-pin | PinHeader_1x02_2.54mm | 1 |
11+
| J2 | ANALOG_OUT | RC-filtered analog output header | PinHeader_1x02_2.54mm | 1 |
12+
| J3 | UART_DEBUG | UART debug header 4-pin (VCC/TX/RX/GND) | PinHeader_1x04_2.54mm | 1 |
13+
| J4 | PWR_3V3 | Power input header (3.3V/GND) | PinHeader_1x02_2.54mm | 1 |
14+
15+
## Notes
16+
17+
- RC lowpass filter on GPIO[9]: R1=10kΩ, C1=100nF → f_c = 1/(2π×10k×100n) = 159 Hz
18+
- In LFSR test mode (CTRL[4]=1), no external input needed on GPIO[8]
19+
- UART header connects to Caravel management core for firmware debug
20+
- All decoupling caps should be placed as close to chip power pins as possible

pcba/fir_accel_breakout.kicad_pro

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"board": {},
3+
"meta": {
4+
"filename": "fir_accel_breakout.kicad_pro",
5+
"version": 1
6+
},
7+
"schematic": {
8+
"legacy_lib_dir": "",
9+
"legacy_lib_list": []
10+
}
11+
}

pcba/fir_accel_breakout.kicad_sch

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
(kicad_sch (version 20230121) (generator eeschema)
2+
(paper "A4")
3+
(title_block
4+
(title "FIR Accelerator Caravel SoC - Breakout Board")
5+
(date "2026-03-20")
6+
(rev "v1.0")
7+
(company "Mummana Jagadeesh")
8+
(comment 1 "SKY130A Caravel User Project")
9+
(comment 2 "GPIO[8]=Bitstream Input, GPIO[9]=PWM DAC Output")
10+
)
11+
12+
(lib_symbols
13+
(symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes)
14+
(property "Reference" "R" (at 1.524 0 0) (effects (font (size 1.27 1.27)) (justify left)))
15+
(property "Value" "R" (at -1.524 0 0) (effects (font (size 1.27 1.27)) (justify right)))
16+
(property "Footprint" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
17+
(property "Datasheet" "~" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
18+
(symbol "R_0_1"
19+
(rectangle (start -1.016 -2.032) (end 1.016 2.032) (stroke (width 0.2032)) (fill (type none)))
20+
)
21+
(pin passive line (at 0 3.81 270) (length 1.778) (name "~" (effects (font (size 1.27 1.27)))) (number "1" (effects (font (size 1.27 1.27)))))
22+
(pin passive line (at 0 -3.81 90) (length 1.778) (name "~" (effects (font (size 1.27 1.27)))) (number "2" (effects (font (size 1.27 1.27)))))
23+
)
24+
(symbol "Device:C" (pin_numbers hide) (pin_names (offset 0.254)) (in_bom yes) (on_board yes)
25+
(property "Reference" "C" (at 1.524 0 0) (effects (font (size 1.27 1.27)) (justify left)))
26+
(property "Value" "C" (at -1.524 0 0) (effects (font (size 1.27 1.27)) (justify right)))
27+
(property "Footprint" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
28+
(property "Datasheet" "~" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
29+
(symbol "C_0_1"
30+
(polyline (pts (xy -2.032 -0.762) (xy 2.032 -0.762)) (stroke (width 0.508)) (fill (type none)))
31+
(polyline (pts (xy -2.032 0.762) (xy 2.032 0.762)) (stroke (width 0.508)) (fill (type none)))
32+
)
33+
(pin passive line (at 0 3.81 270) (length 3.048) (name "~" (effects (font (size 1.27 1.27)))) (number "1" (effects (font (size 1.27 1.27)))))
34+
(pin passive line (at 0 -3.81 90) (length 3.048) (name "~" (effects (font (size 1.27 1.27)))) (number "2" (effects (font (size 1.27 1.27)))))
35+
)
36+
(symbol "power:VCC" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes)
37+
(property "Reference" "#PWR" (at 0 -1.27 0) (effects (font (size 1.27 1.27)) hide))
38+
(property "Value" "VCC" (at 0 3.81 0) (effects (font (size 1.27 1.27))))
39+
(symbol "VCC_0_1"
40+
(pin power_in line (at 0 0 270) (length 0) (name "~" (effects (font (size 1.27 1.27)))) (number "1" (effects (font (size 1.27 1.27)))))
41+
)
42+
(symbol "VCC_1_1"
43+
(polyline (pts (xy -1.27 -0.762) (xy 0 1.27) (xy 1.27 -0.762)) (stroke (width 0)) (fill (type none)))
44+
(wire (pts (xy 0 0) (xy 0 -1.27)))
45+
)
46+
)
47+
(symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes)
48+
(property "Reference" "#PWR" (at 0 -1.27 0) (effects (font (size 1.27 1.27)) hide))
49+
(property "Value" "GND" (at 0 -3.81 0) (effects (font (size 1.27 1.27))))
50+
(symbol "GND_0_1"
51+
(pin power_in line (at 0 0 90) (length 0) (name "~" (effects (font (size 1.27 1.27)))) (number "1" (effects (font (size 1.27 1.27)))))
52+
)
53+
(symbol "GND_1_1"
54+
(polyline (pts (xy -1.27 0) (xy 1.27 0)) (stroke (width 0)) (fill (type none)))
55+
(polyline (pts (xy -0.762 -1.27) (xy 0.762 -1.27)) (stroke (width 0)) (fill (type none)))
56+
(polyline (pts (xy -0.254 -2.286) (xy 0.254 -2.286)) (stroke (width 0)) (fill (type none)))
57+
(wire (pts (xy 0 0) (xy 0 1.27)))
58+
)
59+
)
60+
(symbol "Connector:Conn_01x02_Pin" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
61+
(property "Reference" "J" (at 0 3.81 0) (effects (font (size 1.27 1.27))))
62+
(property "Value" "Conn_01x02_Pin" (at 0 -3.81 0) (effects (font (size 1.27 1.27))))
63+
(symbol "Conn_01x02_Pin_1_1"
64+
(rectangle (start -1.27 -3.175) (end 0 3.175) (stroke (width 0.254)) (fill (type none)))
65+
(pin passive line (at 2.54 2.54 180) (length 2.54) (name "Pin_1" (effects (font (size 1.27 1.27)))) (number "1" (effects (font (size 1.27 1.27)))))
66+
(pin passive line (at 2.54 -2.54 180) (length 2.54) (name "Pin_2" (effects (font (size 1.27 1.27)))) (number "2" (effects (font (size 1.27 1.27)))))
67+
)
68+
)
69+
(symbol "Connector:Conn_01x04_Pin" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
70+
(property "Reference" "J" (at 0 6.35 0) (effects (font (size 1.27 1.27))))
71+
(property "Value" "Conn_01x04_Pin" (at 0 -6.35 0) (effects (font (size 1.27 1.27))))
72+
(symbol "Conn_01x04_Pin_1_1"
73+
(rectangle (start -1.27 -5.715) (end 0 5.715) (stroke (width 0.254)) (fill (type none)))
74+
(pin passive line (at 2.54 5.08 180) (length 2.54) (name "Pin_1" (effects (font (size 1.27 1.27)))) (number "1" (effects (font (size 1.27 1.27)))))
75+
(pin passive line (at 2.54 2.54 180) (length 2.54) (name "Pin_2" (effects (font (size 1.27 1.27)))) (number "3" (effects (font (size 1.27 1.27)))))
76+
(pin passive line (at 2.54 0 180) (length 2.54) (name "Pin_3" (effects (font (size 1.27 1.27)))) (number "2" (effects (font (size 1.27 1.27)))))
77+
(pin passive line (at 2.54 -2.54 180) (length 2.54) (name "Pin_4" (effects (font (size 1.27 1.27)))) (number "4" (effects (font (size 1.27 1.27)))))
78+
)
79+
)
80+
)
81+
82+
(junction (at 100 50) (diameter 0) (color 0 0 0 0))
83+
(junction (at 100 80) (diameter 0) (color 0 0 0 0))
84+
85+
(wire (pts (xy 80 50) (xy 100 50)))
86+
(wire (pts (xy 100 50) (xy 120 50)))
87+
(wire (pts (xy 80 80) (xy 100 80)))
88+
(wire (pts (xy 100 80) (xy 100 90)))
89+
(wire (pts (xy 120 80) (xy 140 80)))
90+
(wire (pts (xy 140 80) (xy 140 90)))
91+
(wire (pts (xy 60 110) (xy 60 120)))
92+
(wire (pts (xy 80 110) (xy 80 120)))
93+
94+
(text "Caravel SoC (SKY130A)" (at 100 30 0) (effects (font (size 2.54 2.54) bold)))
95+
(text "FIR Accelerator Breakout v1.0" (at 100 25 0) (effects (font (size 1.8 1.8))))
96+
97+
(text "RC Lowpass Filter\nf_c = 1/(2*pi*R*C) = 159Hz\nR=10k, C=100nF" (at 155 75 0)
98+
(effects (font (size 1.27 1.27)) (justify left)))
99+
100+
(text "PWM DAC Output\nGPIO[9] -> RC -> Analog Out\nConnect to oscilloscope/ADC" (at 155 95 0)
101+
(effects (font (size 1.27 1.27)) (justify left)))
102+
103+
(text "Bitstream Input\nGPIO[8] <- External sigma-delta\nor use internal LFSR (CTRL[4]=1)" (at 30 95 0)
104+
(effects (font (size 1.27 1.27)) (justify left)))
105+
106+
(symbol (lib_id "Device:R") (at 130 80 0) (unit 1)
107+
(property "Reference" "R1" (at 133 80 0) (effects (font (size 1.27 1.27)) (justify left)))
108+
(property "Value" "10k" (at 133 82 0) (effects (font (size 1.27 1.27)) (justify left)))
109+
(property "Footprint" "Resistor_SMD:R_0402_1005Metric" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
110+
)
111+
112+
(symbol (lib_id "Device:C") (at 140 95 0) (unit 1)
113+
(property "Reference" "C1" (at 143 95 0) (effects (font (size 1.27 1.27)) (justify left)))
114+
(property "Value" "100nF" (at 143 97 0) (effects (font (size 1.27 1.27)) (justify left)))
115+
(property "Footprint" "Capacitor_SMD:C_0402_1005Metric" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
116+
)
117+
118+
(symbol (lib_id "Device:C") (at 60 115 0) (unit 1)
119+
(property "Reference" "C2" (at 63 115 0) (effects (font (size 1.27 1.27)) (justify left)))
120+
(property "Value" "100nF" (at 63 117 0) (effects (font (size 1.27 1.27)) (justify left)))
121+
(property "Footprint" "Capacitor_SMD:C_0402_1005Metric" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
122+
)
123+
124+
(symbol (lib_id "Device:C") (at 80 115 0) (unit 1)
125+
(property "Reference" "C3" (at 83 115 0) (effects (font (size 1.27 1.27)) (justify left)))
126+
(property "Value" "100nF" (at 83 117 0) (effects (font (size 1.27 1.27)) (justify left)))
127+
(property "Footprint" "Capacitor_SMD:C_0402_1005Metric" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
128+
)
129+
130+
(symbol (lib_id "Connector:Conn_01x02_Pin") (at 50 80 0) (unit 1)
131+
(property "Reference" "J1" (at 50 75 0) (effects (font (size 1.27 1.27))))
132+
(property "Value" "GPIO8_IN" (at 50 73 0) (effects (font (size 1.27 1.27))))
133+
(property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
134+
)
135+
136+
(symbol (lib_id "Connector:Conn_01x02_Pin") (at 160 80 0) (unit 1)
137+
(property "Reference" "J2" (at 160 75 0) (effects (font (size 1.27 1.27))))
138+
(property "Value" "ANALOG_OUT" (at 160 73 0) (effects (font (size 1.27 1.27))))
139+
(property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
140+
)
141+
142+
(symbol (lib_id "Connector:Conn_01x04_Pin") (at 100 130 0) (unit 1)
143+
(property "Reference" "J3" (at 100 123 0) (effects (font (size 1.27 1.27))))
144+
(property "Value" "UART_DEBUG" (at 100 121 0) (effects (font (size 1.27 1.27))))
145+
(property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
146+
)
147+
148+
(symbol (lib_id "Connector:Conn_01x02_Pin") (at 100 150 0) (unit 1)
149+
(property "Reference" "J4" (at 100 145 0) (effects (font (size 1.27 1.27))))
150+
(property "Value" "PWR_3V3" (at 100 143 0) (effects (font (size 1.27 1.27))))
151+
(property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
152+
)
153+
)

0 commit comments

Comments
 (0)