Documente Academic
Documente Profesional
Documente Cultură
Lecture 1: Introduction
Course Overview
Digital system design
o With an emphasis on system-level design o Only hardware
Main References
Acknowledgement
Prof. Peng Li for suggesting SystemC and Verilog AMS Dr. Welson Sun of Xilinx for extensive discussions and suggestions Feedback from faculties at Computer Engineering and Systems Group Mr. Jae-Yeon Won for tremendous effort on designing the lab
Circuit netlist
#Lines of Code
1M
Behavioral
Architect
10K
100
Yesterday
Today
ECEN 468 Lecture 1
Tomorrow
7
Gates
RTL
Examples
A company spent weeks of time to design and verify a function on a chip. Later, it was found this function was not used by the software. Poor architecture level decisions made a company to overdesign a chip. The chip satisfied customers needs, but its design and verification unnecessarily wasted resources and time.
Overview of SystemC
User Libraries SystemC Verification Library Other IP
SystemC
Simulation Kernel
C++
ECEN 468 Lecture 1
STL
10
C++ Class
Concept abstraction Information encapsulation
o Member data o Member function
11
An Example of C++
class iMeter{ double value; string iName; public: iMeter(const string& nm); void setV(double val); double getVal(); }; iMeter::iMeter(const string& nm):value(0.0){ iName = nm; } void iMeter::setV(double v){ value = v; } double iMeter::getVal(){ return value: } int main(){ iMeter m1(tommy); m1.setV(6.7); cout << m1.getVal(); }
12
SystemC Example
#include <systemc> SC_MODULE(Hello) { SC_CTOR(Hello) { SC_THREAD(main_thread); } void main_thread(void) { SC_REPORT_INFO(Hi!); } }; int sc_main(int sc_argc, char* sc_argv[]){ Hello iHello(iHello); sc_start(); return 0; }
13
Systemc STL
g++
ld
.exe
Compiler
Linker
Executable
14
Beyond C++
Time model Hardware data types Hierarchy and structure Communications management Concurrency
15
SystemC Simulation
sc_main()
Elaborate
sc_start()
Initialize
Cleanup
Update
16