A Tale of Two Languages: SystemVerilog & SystemC by David C Black Senior MTS Doulos.

Slides:



Advertisements
Similar presentations
SOC Design: From System to Transistor
Advertisements

Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Combinational Logic.
Using emulation for RTL performance verification
Verilog Intro: Part 1.
ECE Synthesis & Verification - Lecture 2 1 ECE 667 Spring 2011 ECE 667 Spring 2011 Synthesis and Verification of Digital Circuits High-Level (Architectural)
Using Virtual Platforms for Firmware Verification James Pangburn Jason Andrews.
 HDLs – Verilog and Very High Speed Integrated Circuit (VHSIC) HDL  „ Widely used in logic design  „ Describe hardware  „ Document logic functions.
EELE 367 – Logic Design Module 2 – Modern Digital Design Flow Agenda 1.History of Digital Design Approach 2.HDLs 3.Design Abstraction 4.Modern Design Steps.
An Introduction to SystemVerilog.
MS-SoC Best Practices – Advanced Modeling & Verification Techniques for first-pass success By Neyaz Khan Greg Glennon Dan Romaine.
1 Speed, Drunkenness, and the Wall Does High Level Design/ESL Make Sense? Kris Konigsfeld Sr. Principal Engineer Oregon CPU Architecture Intel Corporation.
Easy Steps Towards Virtual Prototyping using the SystemVerilog DPI
Silicon Programming--Intro. to HDLs1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities.
Digital System Design Verilog ® HDL Maziar Goudarzi.
ELEN468 Lecture 11 ELEN468 Advanced Logic Design Lecture 1Introduction.
University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Embedded Systems Design at Mentor. Platform Express Drag and Drop Design in Minutes IP Described In XML Databook s Simple System Diagrams represent complex.
Overview Logistics Last lecture Today HW5 due today
Gaurav Gupta Freescale Semiconductors Adiel Khan, Parag Goel, Amit Sharma, Varun S, Abhisek Verma Synopsys
1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
1 3-General Purpose Processors: Altera Nios II 2 Altera Nios II processor A 32-bit soft core processor from Altera Comes in three cores: Fast, Standard,
COMPUTER SCIENCE &ENGINEERING Compiled code acceleration on FPGAs W. Najjar, B.Buyukkurt, Z.Guo, J. Villareal, J. Cortes, A. Mitra Computer Science & Engineering.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.

System Arch 2008 (Fire Tom Wada) /10/9 Field Programmable Gate Array.
Using Formal Verification to Exhaustively Verify SoC Assemblies by Mark Handover Kenny Ranerup Applications Engineer ASIC Consultant Mentor Graphics Corp.
System Verilog Testbench Language David W. Smith Synopsys Scientist
1 Freeha Azmat Saba Zia Dec 02, Agenda Installation Introduction From Verilog to SystemC Counter as an Example Complete SystemC Modeling 2.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
SystemVerilog. History Enhancement of Verilog Enhancement of Verilog 2002 – accellera publishes SystemVerilog – accellera publishes SystemVerilog.
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
Logic Synthesis assign z=a&b a b z What is Synthesis synthesis /sinth siss/ noun ( pl. syntheses /sinth seez/) 1 the combination of components to form.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Embedded Network Interface (ENI). What is ENI? Embedded Network Interface Originally called DPO (Digital Product Option) card Printer without network.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
SVA Encapsulation in UVM enabling phase and configuration aware assertions by Mark Litterick Verification Consultant Verilab GmbH, Munich, Germany.
February 6, 2009http://csg.csail.mit.edu/6.375/L02-1 Verilog 1 - Fundamentals Complex Digital Systems Arvind February 6, 2009 FA module adder( input.
M.Mohajjel. Objectives Learn How to write synthesizable Verilog code Common mistakes and how to avoid them What is synthesized for what we code Digital.
Chapter 11: System Design Methodology Digital System Designs and Practices Using Verilog HDL and 2008, John Wiley11-1 Chapter 11: System Design.
1 University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
April 15, 2013 Atul Kwatra Principal Engineer Intel Corporation Hardware/Software Co-design using SystemC/TLM – Challenges & Opportunities ISCUG ’13.
1 A hardware description language is a computer language that is used to describe hardware. Two HDLs are widely used Verilog HDL VHDL (Very High Speed.
Overview Logistics Last lecture Today HW5 due today
Hardware Description Languages: Verilog
System on Chip Design and Test ECE 715
Easier SystemVerilog with UVM: Taming the Beast
Last Lecture Talked about combinational logic always statements. e.g.,
Discussion 2: More to discuss
Introduction to Programmable Logic
Digital System Verification
UVM-Multi-Language Hands-On
Hardware Description Languages: Verilog
Design Flow System Level
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
University of Washington EE400/590 Dean Wen Chen
FSM MODELING MOORE FSM MELAY FSM. Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-2]
ESE 437: Sensors and Instrumentation
SystemVerilog Implementation of GCD
SystemVerilog for Verification
Win with HDL Slide 4 System Level Design
The Verilog Hardware Description Language
CS 153 Logic Design Lab Professor Ian G. Harris
SystemVerilog and Verification
Design Methodology & HDL
Lecture 7: Verilog Part II
Presentation transcript:

A Tale of Two Languages: SystemVerilog & SystemC by David C Black Senior MTS Doulos

Sponsored By: 2 of 20 Two languages… New corporate policy HR memos must be written in Borg. Programmers will henceforth use Romulan. Hardware designs shall be written in Klingon. New corporate policy HR memos must be written in Borg. Programmers will henceforth use Romulan. Hardware designs shall be written in Klingon. This looks normal… When's the first class?

Sponsored By: 3 of 20 System*? Unfortunate "System" prefix confuses many –SystemVerilog A system for hardware design & verification Significantly improved Verilog combining HDL with HVL –SystemC A system for using C++ for abstract modeling Used to model large electronic system-level designs (ESL) Intended for very different applications Best practice: use both cooperatively

Sponsored By: 4 of 20 What is SystemVerilog? Great RTL description language –Features to align gate-level simulation to RTL –C-style data and operators module mux ( input byte a, b, c, input [1:0] sel, output integer f); // combinational always_comb //parallel case unique if ( sel == 2'b10 ) f += a; else if ( sel == 2'b01 ) f = b; else f = c; endmodule

Sponsored By: 5 of 20 What is SystemVerilog? Fantastic language for constrained random & coverage driven verification Solid OOP language for UVM & other reusable hardware verification methodologies class instruction; rand bit [2:0] m_opcode; rand bit [1:0] m_mode; rand shortint unsigned m_data; constraint assert_mode { m_opcode[2]==0 -> m_mode==2'b11; } covergroup clk); coverpoint m_opcode; coverpoint m_mode; coverpoint m_data { bins tiny [8] = {[0:7] }; bins moderate[8] = {[8:255]}; bins huge [8] = {[256:$]}; } endgroup endclass: instruction

Sponsored By: 6 of 20 What is "System" C? Approach using a C++ library to create abstract hardware/software models with less detail than RTL to enable early analysis & software development Less detail means –Fast creation (earlier) More experiments Early performance analysis –Fast simulation Allows software development Verification reference model C++ enables –Draw on vast libraries –Common language with software team Open-source enables –Wide distribution for very large teams –Share with customers

Sponsored By: 7 of 20 What is SystemC? Systems at RTL level simulate too slowly… CPU ROM DMA RAM Interrupt Timer Bridge DSP ROM RAM A/D Interrupt Timer I/O Memory interface I/O DMA RAM Custom peripheral Software D/A Software Multiple software stacks Digital and analog hardware IP blocks Multiple buses and bridges

Sponsored By: 8 of 20 Co-existence Mixed abstraction levels play well SystemC Wrapper VHDL Verilog SystemC Wrapper C/C++ other… Native SystemC H/W IP Native SystemC H/W IP Object code Native SystemC Bus model Native SystemC Bus model SystemC Wrapper ISS

Sponsored By: 9 of 20 Co-existence with UVM top test1 DUT if1 if3 env1 vsqr1 vseq1 seq1 seq2 seq3 scbd1 cvg1 agent3 sqr3 drv3 mon3 config3 agent1 sqr1 drv1 mon1 config1 ESL reference agent2 sqr2 drv2 mon2 config2 if2

Sponsored By: 10 of 20 Side by Side: Modules SystemVerilog module Design ( input logic [7:0] d, output logic [7:0] q ); … endmodule: Design SystemC SC_MODULE(Design) { sc_in > d; sc_out > q; … }; (Containers for blocks of code)

Sponsored By: 11 of 20 Side by Side: Data SystemVerilog logic [3:0] l; int i; bit b; string txt; typdef struct { int a, b; } S; S s = ‘{1,2}; time t; SystemC sc_lv l; int i; bool b; string txt; struct S { int a, b; }; S s{1,2};//C++11 sc_time t;

Sponsored By: 12 of 20 Side by Side: Containers SystemVerilog T1 fixedArray[N]; T1 dynamicArray[]; T1 associativeAry[T2]; T1 queue[$]; SystemC std::array fixedArray; std::vector dynamicArray; std::map associativeAry; std::deque queue;

Sponsored By: 13 of 20 Side by Side: Conditionals SystemVerilog if (EXPR) STMT1 else STMT2 case (EXPR) EXPR: STATEMENT default: STATEMENT endcase SystemC if (EXPR) STMT1 else STMT2 switch (EXPR) { case CONST: STATEMENT; break; default: STATEMENT; }

Sponsored By: 14 of 20 Side by Side: Loops SystemVerilog while(EXPR) STATEMENT do STATEMENT while (EXPR); for (int i=0;i!=max;++i) STMT forever STATEMENT foreach (CONTAINER[i]) STMT SystemC while(EXPR) STATEMENT do STATEMENT while (EXPR); for (int i=0; i!=max; ++i) STMT for(;;) STATEMENT for (auto i:CONTAINER)STATEMENT

Sponsored By: 15 of 20 Side by Side: Processes SystemVerilog input clock; input int d; output int q; clock) begin :REGS q <= d; end SystemC sc_in clock; sc_in d; sc_out q; SC_METHOD(REGS); sensitive << clock.pos(); … void REGS(void) { q->write(d); }

Sponsored By: 16 of 20 Side by Side: Fork/Join SystemVerilog fork begin STATEMENTS… end join SystemC FORK sc_spawn([&](){STATEMENTS…}), sc_spawn([&](){STATEMENTS…}) JOIN

Sponsored By: 17 of 20 Side by Side: Dynamic Processes SystemVerilog process h; fork begin h = process::self(); STATEMENTS… end join_none wait(h.status != process::FINISHED); SystemC auto h = sc_spawn([&](){ STATEMENTS… }); wait(h.terminated_event());

Sponsored By: 18 of 20 A Project Schedule Rationales for selecting language Architect ESL Model Software Development Verification Environmen t Verification Tests Hardware logic Development Hardware Realization Fabrication Integrate

Sponsored By: 19 of 20 Open issues Interoperability between SystemVerilog & SystemC –Need TLM 2.0 standard interface –Need configuration controls (for tools & models) Common register abstraction Native C++ DPI

Sponsored By: 20 of 20 Concluding Remarks Different needs – different languages –Architecture –Software –Verification –Hardware Co-existence and interoperability required –Enable the entire team –No surprises Education key –Understand the goal –Learn to appropriately use the language

Sponsored By: 21 of 20