u sing a c ustom b uilt hdl for p rinted c ircuit b oard
play

U SING A C USTOM -B UILT HDL FOR P RINTED C IRCUIT B OARD D ESIGN C - PowerPoint PPT Presentation

2.1 2.1 U SING A C USTOM -B UILT HDL FOR P RINTED C IRCUIT B OARD D ESIGN C APTURE Brent Nelson Brad Riching Josh Mangelson Dept. of Electrical and Computer Engineering Brigham Young University PCB West Presentation September 2012


  1. 2.1 2.1 U SING A C USTOM -B UILT HDL FOR P RINTED C IRCUIT B OARD D ESIGN C APTURE Brent Nelson Brad Riching Josh Mangelson Dept. of Electrical and Computer Engineering Brigham Young University PCB West Presentation September 2012

  2. Sponsorship Sandia National Laboratories is a multi- program laboratory managed and operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin Corporation, for the U.S. Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000. SAND Number : 2012-6638 C 2

  3. Who Are We? • Dr. Brent Nelson (Professor) • Brad Riching (MS student) • Richard Black (BS student) • Joshua Mangelson (BS student) – Dept. of Electrical and Computer Engineering – Brigham Young University 3

  4. Overview • Why HDL’s for PCB design capture? • PHDL – An HDL for PCB design capture – The language – The tool flow • Examples of PHDL board designs • Examples of 3 rd party support tools and utilities • Links to PHDL open source community • Future Work 4

  5. 2.1 Part 1 MOTIVATION: HDL’S FOR PCB DESIGN CAPTURE 5

  6. Graphical Schematic Entry • Imitates manual drawing – Intuitive – Spatial information + human visual system è understanding – Current industrial practice • Would seem to be the best method ! QED … 6

  7. HDL’s for PCB Design netlist • Design capture • Physical design – Capture designer’s intent – Physical design rules – Define design – Electrical considerations components and (voltage, current, connectivity capacitance, inductance) – Currently done with – Best done using current schematic tools layout tools & methods 7

  8. Schematic Scalability Note: this entire page is mainly the symbol for a single 784 pin FPGA It is one of 20-30 `pages in the overall design. 8

  9. Drawing a Schematic Net • subroutine drawSchematicNet() { foreach pin in net { 1. pan to page and area of pin 2. zoom in on pin 3. attach wire stub to pin 4. add textual name to wire stub 5. zoom back out 6. repeat } • How many mouse clicks per pin? – 5? 10? 20? 30? (many) • How many nets in a design? • How do you do a design review? – From printed schematics … – From a schematic design tools … So, just how again is this graphical approach helping me? 9

  10. Design Change Tracking • Design changes between two versions? % diff a.sch b.sch 
 Binary files a.sch and b.sch differ 
 % � Need a mechanism for comparing design versions and documenting individual design changes That’s not very helpful … Source code control systems (SCCS’s) have done this for years for software 10

  11. Design Sharing • Sharing a design amongst a team – Divide and conquer • Design reuse – How do you reuse portions of a schematic between designs? 11

  12. Schematic Tools: Proprietary Source • Schematic design files: – Protected, binary formats – Specialized tools just to view source … • Edit, manipulate, analyze? • If you have the wrong version of proprietary CAD tool … – Cannot even open the schematic to view • Discourages/prevents 3 rd party tools 12

  13. 2.1 Part 2 INTRO TO PHDL 13

  14. What is PHDL? PCB Layout Schematic Capture interprets netlist produces netlist netlist Bill of Material, other ancillary data 14

  15. What is PHDL? PCB Layout Schematic Capture interprets netlist produces netlist netlist Bill of PHDL PHDL Material, compiler Source other Code ancillary data 15

  16. PHDL: A First Example • Our example circuit: R1 ¡ 120 ¡ S1 ¡ LD1 ¡ R2 ¡ 120 ¡ S2 ¡ R3 ¡ 120 ¡ S3 ¡ 2 ¡ 15 ¡ R4 ¡ 120 ¡ S4 ¡ 13 ¡ 11 ¡ R5 ¡ 120 ¡ S5 ¡ 5 ¡ 3 ¡ 4 ¡ R6 ¡ 120 ¡ S6 ¡ 14 ¡ 12 ¡ 17 ¡ 10 ¡ R7 ¡ 120 ¡ S7 ¡ SA08-­‑21 ¡ R8 ¡ 120 ¡ S8 ¡ + ¡ G1 ¡ -­‑ ¡ 16

  17. PHDL: A First Example • Four types of devices R1 ¡ 120 ¡ S1 ¡ LD1 ¡ R2 ¡ 120 ¡ S2 ¡ R3 ¡ 120 ¡ S3 ¡ 2 ¡ 15 ¡ R4 ¡ 120 ¡ S4 ¡ 13 ¡ 11 ¡ R5 ¡ 120 ¡ S5 ¡ 5 ¡ 3 ¡ 4 ¡ R6 ¡ 120 ¡ S6 ¡ 14 ¡ 12 ¡ 10 ¡ 17 ¡ R7 ¡ 120 ¡ S7 ¡ SA08-­‑21 ¡ R8 ¡ 120 ¡ S8 ¡ + ¡ G1 ¡ -­‑ ¡ • Plus some wires 17

  18. Defining Devices device Resistor { attr REPREFIX= “R”; attr FOOTPRINT = “M0805”; 1 attr LIBRARY = “complib”; attr VALUE= “120”; R? pin a = {1}; M0805 pin b = {2}; } value=120 // Comments are allowed like this. 2 // Compiler will auto-assign full // refDes’s 18

  19. Defining Devices: Multi-Bit Pins device SevenSeg { LD? attr REFPREFIX = “LD”; attr FOOTPRINT = “SA08-21”; attr LIBRARY = "myLib"; 2 ¡ 15 ¡ // Multi-bit pins are allowed 13 ¡ pin [1:8] segments = 11 ¡ {2,15,13,11, 5 ¡ 5,3,14,10}; 3 ¡ 4 ¡ pin [2:0] anode = {4,12,17}; 12 ¡ 14 ¡ } 10 ¡ 17 ¡ SA08-21 19

  20. Creating The Design // Define the design and // give it a name design sevenSeg { R1 ¡ 120 ¡ S1 ¡ LD1 ¡ R2 ¡ 120 ¡ S2 ¡ // Define the wires net gnd, vcc; R3 ¡ 120 ¡ S3 ¡ 2 ¡ 15 ¡ R4 ¡ 120 ¡ S4 ¡ 13 ¡ 11 ¡ // Define a multi-bit wire R5 ¡ 120 ¡ S5 ¡ 5 ¡ net [1:8] segs, r2sw; 3 ¡ 4 ¡ R6 ¡ 120 ¡ S6 ¡ 14 ¡ 12 ¡ 10 ¡ 17 ¡ R7 ¡ 120 ¡ S7 ¡ SA08-­‑21 ¡ R8 ¡ 120 ¡ S8 ¡ + ¡ G1 ¡ -­‑ ¡ 20

  21. Creating The Design: Nets // Define the design and // give it a name design sevenSeg { R1 ¡ 120 ¡ S1 ¡ LD1 ¡ R2 ¡ 120 ¡ S2 ¡ // Define the wires R3 ¡ 120 ¡ S3 ¡ net gnd, vcc; 2 ¡ 15 ¡ R4 ¡ 120 ¡ S4 ¡ 13 ¡ 11 ¡ // Define a multi-bit wire R5 ¡ 120 ¡ S5 ¡ 5 ¡ net [1:8] segs, r2sw; 3 ¡ 4 ¡ R6 ¡ 120 ¡ S6 ¡ 14 ¡ 12 ¡ 17 ¡ 10 ¡ R7 ¡ 120 ¡ S7 ¡ SA08-­‑21 ¡ R8 ¡ 120 ¡ S8 ¡ + ¡ G1 ¡ -­‑ ¡ 21

  22. Creating The Design: Nets // Define the design and // give it a name design sevenSeg { R1 ¡ 120 ¡ S1 ¡ LD1 ¡ R2 ¡ 120 ¡ S2 ¡ // Define the wires R3 ¡ 120 ¡ S3 ¡ net gnd, vcc; 2 ¡ 15 ¡ R4 ¡ 120 ¡ S4 ¡ 13 ¡ 11 ¡ // Define a multi-bit wire R5 ¡ 120 ¡ S5 ¡ 5 ¡ net [1:8] segs, r2sw; 3 ¡ 4 ¡ R6 ¡ 120 ¡ S6 ¡ 14 ¡ 12 ¡ 10 ¡ 17 ¡ R7 ¡ 120 ¡ S7 ¡ SA08-­‑21 ¡ R8 ¡ 120 ¡ S8 ¡ + ¡ G1 ¡ -­‑ ¡ 22

  23. Creating The Design: Multi-Bit Nets // Define the design and // give it a name design sevenSeg { R1 ¡ 120 ¡ S1 ¡ LD1 ¡ R2 ¡ 120 ¡ S2 ¡ // Define the wires R3 ¡ 120 ¡ S3 ¡ net gnd, vcc; 2 ¡ 15 ¡ R4 ¡ 120 ¡ S4 ¡ 13 ¡ 11 ¡ // Define a multi-bit wire R5 ¡ 120 ¡ S5 ¡ 5 ¡ net [1:8] segs, r2sw; 3 ¡ 4 ¡ R6 ¡ 120 ¡ S6 ¡ 14 ¡ 12 ¡ 10 ¡ 17 ¡ R7 ¡ 120 ¡ S7 ¡ SA08-­‑21 ¡ R8 ¡ 120 ¡ S8 ¡ + ¡ G1 ¡ -­‑ ¡ 23

  24. Creating The Design: Multi-Bit Nets // Define the design and // give it a name design sevenSeg { R1 ¡ 120 ¡ S1 ¡ LD1 ¡ R2 ¡ 120 ¡ S2 ¡ // Define the wires R3 ¡ 120 ¡ S3 ¡ net gnd, vcc; 2 ¡ 15 ¡ R4 ¡ 120 ¡ S4 ¡ 13 ¡ 11 ¡ // Define a multi-bit wire R5 ¡ 120 ¡ S5 ¡ 5 ¡ net [1:8] segs, r2sw; 3 ¡ 4 ¡ R6 ¡ 120 ¡ S6 ¡ 14 ¡ 12 ¡ 10 ¡ 17 ¡ R7 ¡ 120 ¡ S7 ¡ SA08-­‑21 ¡ R8 ¡ 120 ¡ S8 ¡ + ¡ G1 ¡ -­‑ ¡ 24

  25. Creating The Design: Instancing Devices inst source of Battery { pos = vcc; R1 ¡ 120 ¡ S1 ¡ neg = gnd; LD1 ¡ R2 ¡ 120 ¡ S2 ¡ } R3 ¡ 120 ¡ S3 ¡ 2 ¡ 15 ¡ // Create an instance of the R4 ¡ 120 ¡ S4 ¡ 13 ¡ 11 ¡ // “Battery” device R5 ¡ 120 ¡ S5 ¡ 5 ¡ // Wire it up: 3 ¡ 4 ¡ R6 ¡ 120 ¡ S6 ¡ 14 ¡ 12 ¡ // Port “pos” -> net “vcc” 17 ¡ 10 ¡ R7 ¡ 120 ¡ S7 ¡ // Port “neg” -> net “gnd” SA08-­‑21 ¡ R8 ¡ 120 ¡ S8 ¡ + ¡ G1 ¡ -­‑ ¡ 25

  26. Creating The Design: Instancing Devices inst segment of SevenSeg { segments = segs; R1 ¡ 120 ¡ S1 ¡ anode = <vcc>; LD1 ¡ R2 ¡ 120 ¡ S2 ¡ } R3 ¡ 120 ¡ S3 ¡ 2 ¡ 15 ¡ R4 ¡ 120 ¡ S4 ¡ 13 ¡ 11 ¡ // Instance the seven R5 ¡ 120 ¡ S5 ¡ 5 ¡ // segment chip 3 ¡ 4 ¡ R6 ¡ 120 ¡ S6 ¡ 14 ¡ 12 ¡ 17 ¡ 10 ¡ // Tie pins segments[1:8] -> R7 ¡ 120 ¡ S7 ¡ SA08-­‑21 ¡ // net segs[1:8] R8 ¡ 120 ¡ S8 ¡ + ¡ G1 ¡ -­‑ ¡ // Tie all the “anode” pins // to “vcc”. 26

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend