A Flexible Approach to High Level Simulation of Complex System-on-Chip Muhammad Usman Ilyas (LUMS, Pak) Syed Ali Khayam (MSU, USA) Muhammad Omer Suleman (Oxford, UK) Shahid Masud (LUMS, Pak) 1 Presentation Outline Problem Definition Traditional Simulation Techniques Alternative Approach Outline of Model Implementation & Results Conclusions 2 Problem Definition Designs change very rapidly during the initial design phase. The number of test vectors is very large. Quick results are required. 3 Traditional Simulation Techniques HDL-based simulations Advantage: Parallelism inherent to HDLs Disadvantage: Slow execution Expense of software tools (Vendors: Synopsys, Cadence, Mentor Grpahics etc.) Expense of hardware platforms (Sun) 4 Partial Workaround HDL simulators allow independent modification of system and simulation clock resolutions. Assumptions -> Developers are not interested in timing issues at this stage Max speedup is achieved by setting, resolution(simulation clock) = resolution(system clock) 5 Alternative Approach Use sequential language for simulation Advantages Lower hardware cost (commodity intel machines, etc.) Lower software cost (Linux flavors, MS OSs etc.) Faster execution Disadvantages Sequential code execution (!) Customized for each design (?) 6 Outline of Model The model we propose has the following features Implemented in a sequential language Virtual parallel code execution Cycle accurate Mapping of system components to Bus Functional Models (BFM) 7 Model Characteristics The state of the model changes only from one clock cycle to the next. Time is saved by not evaluating intermediate states. 8 Restrictions Data exchanged between BFMs on clock transitions only. A BFM may not consist entirely of combinational circuits 9 Module-to-BFM Mapping (1) The process of mapping the modules of the design to BFMs depends on the level of abstraction. BFMs mimicking modules at a high level of abstraction are best modeled as Finite State Machines (FSM) of variable complexity. Glue Logic is modeled as simple logical equations. 10 Module-to-BFM Mapping (2) Registers and memories are modeled as pairs of variables nth cycle Copy value in to (n+1)th cycle 11 Incorrect Module-to-BFM Mapping Inputs Inputs Output 12 Corrected Module-to-BFM Mapping Inputs Inputs Output 13 Implementation (1) This technique was applied during the initial design phase of the AVAZ VZM-1000 Media Processor targeted for use in VoIP gateways. 14 Implementation (2) System Simulation C++ intel P III, 733MHz, 256MB Verification Application Engine C++ intel P III, 733MHz, 256MB Hrdwired Simulators C++ intel P III, 733MHz, 256MB PLI RTL Sun UltraSPARC Server, 2GB RAM PCI Fast Ethernet LAN Xilinx Virtex FPGA, Custome PCB 15 Results (1) Language: C++ model Compiler: MS Visual C++ 6 OS: MS Windows 2000 Professional Platform: intel P III, 733MHz, 256MB RAM Vs. Language: Verilog Compiler: VerilogXL OS: Sun Solaris Platform: Sun UltraSPARC Server, 2GB RAM 16 Results (2) Code Complexity Lower Execution Time Code complexity was measured by the number of code lines. At equal levels of abstraction the code complexity of both Verilog and C++ codes was approximately the same. The C++ model performed approximately two orders of magnitudes faster. Shorter Time-to-Market Time-to-Market for this ASIC was reduced from approximately 18 months down to 10 months. 17 Verification App Screenshot 18 Verification App Screenshot 19 Conclusions Performance wise, this simulation method has proven to be more time efficient. The approach is more efficient in terms of tool & equipment cost. The approach required a custom made simulation. 20 Acknowledgements We were greatly facilitated in the work presented by, Dr. Shoab Ahmed Khan CEO, AVAZ Networks M. Mohsin Rahmatullah Manager (SoC), AVAZ Networks 21 References (1) [1] Keith Westgate and Don McInnis, “Cycle-based simulation”, http://www.quickturn.com/tech/cbs.htm on December 19th, 2002. [2] Patrick A. McCabe, “VHDL-based system simulation and performance measurement”, VHDL International Users’ Forum Meeting, May, 1994, Oakland, CA USA. [3] Namseung Kim, Hoon Choi, Seungjong Lee, Seungwang Lee, In-Cheol Park and Chong-Min Kyung , “Virtual chip: Making functional models work on real target systems”, 35th ACM DAC98 , June, 1998, San Francisco, CA USA. [4] Luc Semeria, Andrew Seawright, Renu Mehra, Daniel Ng, Arjuna Ekanayake and Barry Pangrle, “RTL C-based methodology for designing and verifying a multi-threaded processor”, DAC 2002, June 10-14, 2002, New Orleans, Louisiana, USA. 22 References (2) [5] Moon Gyung Kim, Byung In Moon, Sang Jun An, Dong Ryul Ryu, and Yong Surk Lee, “Implementation of a cycle-based simulator for the design of a processor core”, IEEE AsiaPacific ASIC conference (AP-ASIC), 1999. [6] Namseung Kim, Hoon Choi, Seungjong Lee, Seungwang Lee, In-Cheol Park and Chong-Min Kyung, “Virtual Chip: Making Functional Models Work On Real Target Systems”, 35th ACM DAC98, June, 1998, San Francisco, CA USA. [7] H. Al-Asaad, D. Van Campenhout, J. P. Hayes, T. Mudge and R. B. Brown, “High-level design verification of microprocessors via error modeling”, Proceecdings IEEE International Workshop on High Level Design Validation and Test, Nov. 1997, pp. 194-201. [8] Yufeng Luo, Tjahjadi Wongsonegoro and Adnan Aziz, “Hybrid Techniques for Fast Functional Simulation”, 35th ACM DAC98, June, 1998, San Francisco, CA USA. 23 Thank You Q&A 24