1 / 29

PKUnity: A SoC Design and Verification Platform

PKUnity: A SoC Design and Verification Platform. Lu Junlin MicroProcessor R&D Center (MPRC) Peking University. Outline. PKUnity SoC Platform Features Multi-Layers Verification Framework CDC Verification Tool Future Works. Outline. PKUnity SoC Platform Features

axel
Download Presentation

PKUnity: A SoC Design and Verification Platform

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PKUnity: A SoC Design and Verification Platform Lu Junlin MicroProcessor R&D Center (MPRC) Peking University

  2. Outline • PKUnity SoC Platform Features • Multi-Layers Verification Framework • CDC Verification Tool • Future Works

  3. Outline • PKUnity SoC Platform Features • Multi-Layers Verification Framework • CDC Verification Tool • Future Works

  4. What for • Providing a PLATFORMfor implementing and verifying NEW IDEALS in Nanotechnologies Low Power Softwares Behavioral Level Simulation (SystemC) Compiler Synthesis RTL Simulation/Emulation (Verilog/VHDL) New Ideas CPU FPGA Prototyping Silicon Proving Network On-chip communication PKUnity Platform Multi-Media Processing

  5. What is • PKUnity Platform includes: • a scalable and configurable SoC architecture • a series of UniCore CPU • plenty of communication IPs • a verification framework • some verification tools • compilation tool chain and OS based on UniCore

  6. PKUnity Architecture Low Speed I/O and System Modules UniCore CPU Memory and High Speed I/O

  7. Design Features

  8. Design Features • CPU • 600MHz UniCore • 8-Stage Pipeline • 64-bit Floating Point Co-Processor • 16KB I/D Cache • 2-Port Bus Interface • Main Memory • DDR (Double Data Rate) SDRAM • 166MHz Clock and 64-bit Width • 2 Memory Access Channels

  9. Design Features • High Speed I/O Devices • 10M/100M/1G Ethernet MAC • 66MHz PCI Bridge • IDE SATA Controller • USB OTG Controller • Low Speed I/O Devices • UART • I2C • SPI • AC’97 • PS/2

  10. Design Flow Design and Implementation RTL Simulation and Emulation SystemC-based HW/SW Co-verification FPGA Prototyping RTL Sign Off

  11. Challenges • Gap between CPU and Main Memory • Different Bus Bandwidth Requirements • Power Supply Design & Verification • Complex Communication Protocol • Lots of Asynchronous Clock Domains

  12. Design Solutions • Two-Layer bus • CPU-MEM bus • IO-MEM bus Fast Clock Best Performance CPU-MEM Bus Minimize CPU-MEM bandwidth gap Reduce the power supply Slow Clock Enough Performance IO-MEM Bus

  13. Verification Solutions • Multi-Layer Verification Framework • For Complex Communication Protocol • CDC Verification Tool • For Lots of Asynchronous Clock Domains

  14. Outline • PKUnity SoC Platform Features • Multi-Layers Verification Framework • CDC Verification Tool • Future Works

  15. Verification Challenges • Complex Communication Protocol • AHB vs. DDR SDRAM • AHB vs. PCI • AHB vs. MAC • AHB vs. USB OTG • AHB vs. IDE • APB vs. AC’97 • … It’s hard to cover all the transaction types!

  16. Verification Methodology • Multi-Layer • Signal Layer • Bus Layer • Transaction Layer • Scenario Layer

  17. Self Checking • Self Checking by two channels

  18. Verification Framework

  19. Example • Ethernet MAC Verification Coverage

  20. Outline • PKUnity SoC Platform Features • Multi-Layers Verification Framework • CDC Verification Tool • Future Works

  21. What’s CDC • CDC: Clock Domain Crossing

  22. Challenges • Lots of Asynchronous Clock Domains • The relationship of clocks is static in the normal simulation • It’s difficult to find setup time and hold time violation (metastable state)

  23. Method (Step 1) 1. Find all the CDC paths • Handshake Logic • Gray code counter • ...

  24. Method (Step 2) 2. Insert a module which can provide random delays on each CDC paths CDC_delay U_RdDMA_D (.in(RdDMAH), .out(RdDMAH_d)); CDC_delay U_WrDMA_D (.in(WrDMAH), .out(WrDMAH_d)); Clk_jitter U_ICLK(.in(ICLK), .out(ICLK_j)); CDC_monitor U_RdDMA_M (.in(RdDMAH_d)); CDC_monitor U_WrDMA_M (.in(WrDMAH_d)); always @ (posedge HCLK) begin RdDMAH <= (RWCON & !RdDMAH); WrDMAH <= (!RWCON & !WrDMAH); end assign XCS <= !WrDMAH_d & !RdDMAH_d & CS0; always @ (posedge ICLK_j) NCS <= (WrReqI | RdReqI) & XCS;

  25. Method (Step 3) It’s hard to reach 100% coverage, but it does find some severe bugs missed in the normal simulation! 3. Add reasonable delays on the CDC paths in simulation repeatedly

  26. Example • A commercial ATA-5 IDE controller IP • The table shows coverage comparability after 30 transactions finished • The right diagram show the full coverage growth

  27. Outline • PKUnity SoC Platform Features • Multi-Layers Verification Framework • CDC Verification Tool • Future Works

  28. Future Works • Communication Architecture • Bandwidth Allocation Algorithm • CDC Coverage Improvement • …

  29. Thank You!

More Related