1st european systemc™ users group · pdf filearcadia, arc, aristo, arm, bops, cae+plus,...
TRANSCRIPT
1st European SystemC™Users Group Meeting
Munich, January 31, 2000
Wolfgang Rosenstiel,Joachim Gerlach,Tübingen University & FZI Karlsruhe
�
Agenda
4:HOFRPH �����
± :ROIJDQJ�5RVHQVWLHO4:KDW�LV�6\VWHP&�"4*RDOV�RI�WKH�(XURSHDQ�6\VWHP&��8VHUV�*URXS
4,QYLWHG�6SHDNHUV �����
± 'DQLHO�6FKPLGEHUJHU��6XQ�0LFURV\VWHPV�� �����± $OEUHFKW�0D\HU��,QILQHRQ�7HFKQRORJLHV� ��� �����
4/XQFK �����
�
Agenda
48VHUV�*URXS�$FWLYLWLHV �����
± $OO�RI�WKH�SDUWLFLSDQWV4)RUPDWLRQ�RI�:RUNLQJ�*URXSV ��������
4:RUNLQJ�*URXS�'LVFXVVLRQV ��������4&RIIHH�%UHDN �� ��������
4:RUNLQJ�*URXS�'LVFXVVLRQV ��������
4:RUNLQJ�*URXS�5HSRUWV ��������
4&ORVLQJ�5HPDUNV �����
± :ROIJDQJ�5RVHQVWLHO
4(QG�RI�0HHWLQJ �����
�
System-on-Chip (SoC) Design Flow
Co-Design
Implement
Co-Verify
Verify
Implement
Verify
SW Code HW Design
Implement
Verify
DesignReuse
IPCodeReuse
IP
Software
Product
Hardware
Environment
Specify
Systemto
RTL
RTLto
GDSIIReusable
IPIntegration
�
What’s the Problem?
45HTXLUHPHQW± )DVW�V\VWHP�PRGHOLQJ�FRQWDLQLQJ�PXOWLSOH�VRXUFH�FRPSRQHQWV
± 0RGHO�RQFH�IRU�PXOWLSOH�DEVWUDFWLRQ�OHYHOV��PXOWLSOH�XVHUV�PXOWLSOH�SXUSRVHV
43UREOHP± 1R�FRPPRQ�IRUPDW�IRU�GHVFULELQJ�FRPSRQHQWV
46ROXWLRQ± 3URPRWH�D�VWDQGDUG�PRGHOLQJ�SODWIRUP
4WR�PRGHO�DQG�H[FKDQJH�V\VWHP�OHYHO�FRPSRQHQWV�DQG�,3
4WR�EXLOG�LQWHURSHUDEOH�WRROV�LQIUDVWUXFWXUH
�
What‘s the Solution?
4;[[[ GHILQHV�D�&���FODVV�OLEUDU\��������������DQG�VLPXODWLRQ�NHUQHO�IRU
4+DUGZDUH�PRGHOLQJ± &RQFXUUHQF\��WLPLQJ��UHDFWLYLW\��VLJQDOV���GDWD�W\SHV�����
46RIWZDUH�PRGHOLQJ± ,QWHUUXSWV
46\VWHP�PRGHOLQJ± $EVWUDFW�FRPPXQLFDWLRQV
��
Why C/C++ Based Design?
SoCDesign
SystemArchitect
C/C++
SoftwareDesigner
C/C++
HardwareDesigner
HDL
Marketing& Sales
��
Why C/C++ Based Design?
46SHFLILFDWLRQ�EHWZHHQ�DUFKLWHFW�DQG�LPSOHPHQWHU�LVH[HFXWDEOH
4+LJK�VLPXODWLRQ�VSHHG�DW�WKH�KLJKHU�OHYHO�RI�DEVWUDFWLRQ
45HILQHPHQW��QR�WUDQVODWLRQ�LQWR�+'/��QR�ÅVHPDQWLF�JDS´�
47HVWEHQFK�UH�XVH
��
SystemC™ Modeling Platform
4��������������������������������LV
4����D�PHWKRGRORJ\�IRU�PRGHOLQJ�6R&�GHVLJQV�FRQVLVWLQJ�RI�����'63V��$6,&V��,3�&RUHV��,QWHUIDFHV�����
4����D�&���FODVV�OLEUDU\�H[WHQGLQJ�&�&���E\�FRQFXUUHQF\������WLPLQJ��UHDFWLYLW\��FRPPXQLFDWLRQ��VLJQDO���GDWD�W\SHV�����
4����D�F\FOH�DFFXUDWH�KLJK�VSHHG�VLPXODWLRQ
��
SystemC™ Design Methodology
class libraryand
simulation kernel source files for systemand testbenches
your standardC/C++ development
environment
compiler
linker
debugger
libraries
header files
„e xecutable
specif icatio n“
......
.
....
executable = simulation
a.out
„make“
ASIC
IP-Core
Interface
DSP
��
SystemC™ Key Features
4&RQFXUUHQF\ 3URFHVVHV��V\QF��DQG�DV\QF��4&RPPXQLFDWLRQ� 6LJQDOV��FKDQQHOV
�Y�����DGYDQFHG�FRPPXQLFDWLRQ�SURWRFROV�
41RWLRQ�RI�WLPH 0XOWLSOH�FORFNV�ZLWK�DUELWUDU\�SKDVH�UHODWLRQV45HDFWLYLW\ :DWFKLQJ�IRU�HYHQWV4+:�GDWD�W\SHV %LW�YHFWRUV��DUELWUDU\�SUHFLVLRQ�LQWHJHUV����
�Y�����DUELWUDU\�SUHFLVLRQ�IL[HG�SRLQW�GDWD�W\SHV�
46LPXODWLRQ�VXSSRUW4'HEXJ�VXSSRUW :DYHIRUP�WUDFLQJ4����
��
Open Community Licensing
SystemC™ Modeling Platformincluding:
• Modeling specification • Source code (Reference implementation)• Reference manual
click-through web-basedlicense agreement
download
www.SystemC.org
user
Steering Group
��
Open Community Licensing
40HFKDQLVP�IRU�(YROXWLRQ± &RPPXQLW\�PHPEHUV�KDYH�ULJKW�DQG�UHVSRQVLELOLW\�WR�FRQWULEXWHHQKDQFHPHQWV
± 6WHHULQJ�*URXS�ZLOO�GULYH�FRQYHUJHQFH�DQG�LQWHURSHUDELOLW\
42SHQ�&RPPXQLW\�/LFHQVLQJ± 2SHQ�HYROXWLRQ�LQ�LQWHUQHW�WLPH
± (QVXUHV�LQWHURSHUDELOLW\�DQG�VWUXFWXUHG�LQQRYDWLRQ
��
Charter Members
Actel, Alcatel, Altera, American Applied Research, Aptix,Arcadia, ARC, Aristo, ARM, BOPS, CAE+Plus, Chameleon,Co-Design Automation, CoWare, CSELT, Cygnus, Denali,Ericsson, Frequency, Frontier Design, FujitsuMicroelectronics, Genedax, IKOS, ILogix, InfineonTechnologies, ISS, I2P, Internet CAD, LogicVision, Lucent,Magma, MIPS, Monterey, Motorola, Seva/Intrinsix, Sican,Simulation Magic, Snaketech, Sony, StellarSemi,STMicroelectronics, Summit, Sun, SynaptiCAD,Synchronicity, Synopsys, Tensilica, Texas Instruments,TransModeling, Ultima, Verplex, Viewlogic, Virtual Silicon,Wind River, Xilinx
��
Current Events
46HSW�������������6\VWHP&��ODXQFKHG�ZLWK����26&,�&KDUWHU0HPEHU�&RPSDQLHV
4'HF�������������)LUVW�6\VWHP&��6WHHULQJ�*URXS�0HHWLQJ± ,PSURYH���DGG�FRPPHUFLDO�OLFHQVH± 6\VWHP&��URDGPDS
± 3ODQ�VRPH�WHFKQLFDO�ZRUN�ZLWK�96,$�6/'�DQG�6SHF&
4-DQ�������������)LUVW�FRPPHUFLDOO\�DYDLODEOH�6\VWHP&��WRRO7UDQVPRGHOLQJ���6\VWHP0RGHOHU
4)HE��������������1H[W�6WHHULQJ�*URXS�0HHWLQJ
��
SystemC™ Users Group: Goals
4&RPPXQLFDWLRQ�SODWIRUP�IRU�6\VWHP&��8VHUV± (XURSHDQ�6\VWHP&��8VHUV�*URXS�0HHWLQJV��EL�\HDUO\�± (XURSHDQ�6\VWHP&��8VHUV�*URXS�&RQIHUHQFHV��\HDUO\�4��������LQ�FRQMXQFWLRQ�ZLWK�)'/·���� �������7�ELQJHQ��6HSWHPEHU�����������4��������LQ�FRQMXQFWLRQ�ZLWK�'$7(·���������0�QFKHQ��0DUFK�������������
4$GGLWLRQDO�DQG�FDWDO\]HG�LQIRUPDWLRQ�IORZ�EHWZHHQ��6\VWHP&��8VHUV �→�UHTXLUHPHQWV�WR�6\VWHP&����DQG��6WHHULQJ�*URXS� �→�QHZ�UHOHDVHV�RI�6\VWHP&��
4$FFHOHUDWLRQ�RI�6\VWHP&��HYROXWLRQ�DQG�VWDQGDUGL]DWLRQ
��
Afternoon Session
4)RUPDWLRQ�RI�:RUNLQJ�*URXSV��������
± 7RSLFV�RI�LQWHUHVW�
4$SSOLFDWLRQ�RULHQWHG�6\VWHP&��UHTXLUHPHQWV
i6\VWHP&��IRU�WHOHFRPPXQLFDWLRQV��DXWRPRWLYH��FKLSFDUG�����
46\VWHP&��DQG�H[LVWLQJ�GHVFULSWLRQ�ODQJXDJHV
i&RPELQLQJ�6\VWHP&��DQG�&�&����9+'/��9HULORJ������GHVFULSWLRQVi7UDQVODWLRQ�RI�6\VWHP&��LQWR�H[LVWLQJ�GHVFULSWLRQ�ODQJXDJHV��→�WRRO�VXSSRUW�i7UDQVODWLRQ�RI�H[LVWLQJ�GHVFULSWLRQ�ODQJXDJHV�LQWR�6\VWHP&���→�VSHFLILFDWLRQ�VXSSRUW��,3�UHXVH������
��
Afternoon Session
40RGHOLQJ�VWDQGDUG�6R&�FRPSRQHQWV�LQ�6\VWHP&�
i,QWHJUDWLRQ�RI�+:��6:��DQDORJ������,3�EORFNV�LQWR�6\VWHP&��GHVFULSWLRQVi&RPELQLQJ�GLIIHUHQW�OHYHOV�RI�DEVWUDFWLRQ
46\VWHP&��IRU�V\VWHP�OHYHO�YDOLGDWLRQ
i6\VWHP&��IRU�IDVW��FRQFXUUHQW��VLPXODWLRQi5DSLG�3URWRW\SLQJ�ZLWK�6\VWHP&�i6\VWHP&��EDVHG�YHULILFDWLRQ
46\VWHP&��IRU�WHDFKLQJ���������OLVW�RI�WRSLFV�WR�EH�GLVFXVVHG�DQG�H[WHQGHG�
± 3OHDVH�VHOHFW�\RXU�PRVW�IDYRULWH�WRSLF�DQG�PRYH�WR�WKHFRUUHVSRQGLQJ�:RUNLQJ�*URXS�WDEOH
��
Afternoon Session
4:RUNLQJ�*URXS�'LVFXVVLRQV��������
± ,GHQWLILFDWLRQ�RI�:RUNLQJ�*URXS�0RGHUDWRUV40RGHUDWLRQ�RI�WKH�JURXS�GLVFXVVLRQV43URYLGH�GLVFXVVLRQ�VXPPDU\46KRUW�ZRUNLQJ�JURXS�UHSRUW��DW�WKH�HQG�
��
Afternoon Session
4:RUNLQJ�*URXS�5HSRUWV��������± 6KRUW�UHSRUWV�E\�WKH�:RUNLQJ�*URXS�0RGHUDWRUV�DQGFROOHFWLRQ�RI�GLVFXVVLRQ�VXPPDU\�UHSRUWV
± 'LVFXVVLRQ
4&ORVLQJ�5HPDUNV��������± :ROIJDQJ�5RVHQVWLHO
4(QG�RI�0HHWLQJ��������
��
Users Group Roadmap
January 312000
September 4-82000
March 12-162001
2000
�VW�(XURSHDQ�6\VWHP&�8VHUV�*URXS�0HHWLQJ
�QG�(XURSHDQ�6\VWHP&�8VHUV�*URXS�&RQIHUHQFH
�ZLWK�'$7(·������
2001
�VW�(XURSHDQ�6\VWHP&�8VHUV�*URXS�&RQIHUHQFH
�ZLWK�)'/·������
�QG�(XURSHDQ�6\VWHP&�8VHUV�*URXS�0HHWLQJ
�UG�(XURSHDQ�6\VWHP&�8VHUV�*URXS�0HHWLQJ
March2000
6\VWHP&�5HOHDVH�����
today
6\VWHP&�5HOHDVH����
��
What’s New in SystemC™ Release 0.91?
40RUH�VWUXFWXUHG�KLHUDUFKLFDO�GHVLJQ�PHWKRGRORJ\± 0XOWLSOH�SURFHVVHV�FDQ�QRZ�EH�HDVLO\�VSHFLILHG�LQVLGH�RQH�PRGXOH�
4,QWURGXFWLRQ�RI�SRUWV± 6LPLODU�WR�9+'/�9HULORJ��FRQFHSW�RI�SRUWV�LV�LQWURGXFHG�PDNLQJZULWLQJ�FRQVWUXFWRU�IRU�WKH�LQWHUIDFH�ILOH�PXFK�HDVLHU�4L�H��VFBLQ�LQSXW�W\SH!��VFBRXW�RXWSXW�W\SH!��VFBLQRXW�LQRXW�W\SH!
4,QWURGXFWLRQ�RI�IDVW�ELW�YHFWRU��VFBEY��DQG�ORJLF�YHFWRU��VFBOY�4H�J��VFBEY���!�DGGUHVV�
��
What’s New in SystemC™ Release 0.91?
41HZ�&���FRPSLOHU± JFF�����LQVWHDG�RI�JFF�����± QHHGHG�EHWWHU�F���VWDQGDUGV�FRQIRUPDQFH
46\VWHP&��5HOHDVH�����SURFHVVHV�UHQDPHG± 0RUH�LQWXLWLYH�QDPH�IRU�KDUGZDUH�DQG�VRIWZDUH�GHVLJQHUV
��
SystemC™ Release 0.91:Process Naming Convention
NOTE: SystemC™ is backward compatible !
Release 0.9
Release 1.0Draft Spec.
Release 0.91
sc_async sc_aproc sc_sync
Asynchronous Function Process
Asynchronous Thread Process
Synchronous Thread Process
sc_async_fprocess sc_async_tprocess sc_sync_tprocess
SC_METHOD SC_THREAD SC_CTHREAD
��
SystemC™ Release 0.91: Simplified Coding
Example: // ONE MODULESC_MODULE(driver_mod) {
// Input ports: sc_in_clk clk; // Clock for the actions of the driver. sc_in<double> speed; sc_in<double> angle; sc_in<double> total; sc_in<double> partial;
// Output ports: sc_out<bool> reset; // Set if the driver wants to reset the partial // distance odometer. sc_out<int> speed_set; // Speed of the car as set by the driver. sc_out<bool> start; // Set if the driver starts the car.
// Driver’s actions. void driver_out_proc(); void driver_in_proc();
SC_CTOR(driver_mod) {
SC_CTHREAD(driver_out_proc, clk.pos());
SC_METHOD(driver_in_proc); sensitive << speed << angle << total << partial; }};
Example: // ONE MODULESC_MODULE(driver_mod) {
// Input ports: sc_in_clk clk; // Clock for the actions of the driver. sc_in<double> speed; sc_in<double> angle; sc_in<double> total; sc_in<double> partial;
// Output ports: sc_out<bool> reset; // Set if the driver wants to reset the partial // distance odometer. sc_out<int> speed_set; // Speed of the car as set by the driver. sc_out<bool> start; // Set if the driver starts the car.
// Driver’s actions. void driver_out_proc(); void driver_in_proc();
SC_CTOR(driver_mod) {
SC_CTHREAD(driver_out_proc, clk.pos());
SC_METHOD(driver_in_proc); sensitive << speed << angle << total << partial; }};
Multiple Processes
Input port sc_in<type>
Output port sc_out<type>
��
SystemC™ Release 1.0 Preview:Fixed-Point Data Types
46LJQHG���XQVLJQHG�IL[HG�SRLQW�GDWD�W\SHV
47ZR·V�FRPSOHPHQW�UHSUHVHQWDWLRQ�XVHG�IRU�UHSUHVHQWLQJ�VLJQHG�IL[HG�SRLQW�QXPEHUV
42SHUDWLRQV�SHUIRUPHG�XVLQJ�DUELWUDU\�SUHFLVLRQ
44XDQWL]DWLRQ�PRGH�DQG�RYHUIORZ�PRGH
��
SystemC™ Fixed-Point Data Types:Syntax
sc_fixed<wl, iwl, q_m, o_m, n_b> var_name (init_val) ;sc_ufixed<wl, iwl, q_m, o_m, n_b> var_name (init_val) ;
signed fixed-point type
unsigned fixed-point type
wl : total number of bitsiwl : number of integer bitsq_m : quantization mode (optional)o_m : overflow mode (optional)n_b : number of bits for overflow mode (optional)init_val : initial value or expression (optional)
��
SystemC™ Fixed-Point Data Types:Casting
4XDQWL]DWLRQ�0RGHV�
45RXQGLQJ�WR�SOXV�LQILQLW\
45RXQGLQJ�WR�]HUR45RXQGLQJ�WR�PLQXV�LQILQLW\
4&RQYHUJHQW�URXQGLQJ
47UXQFDWLRQ47UXQFDWLRQ�WR�=HUR
2YHUIORZ�0RGHV�
46DWXUDWLRQ
46DWXUDWLRQ�WR�]HUR46\PPHWULFDO�VDWXUDWLRQ
4:UDS�DURXQG
46LJQ�PDJQLWXGH�ZUDS�DURXQG
��
SystemC™ Fixed-Point Data Types:Example
…sc_fixed<8, 4> my_var(-1.75);...
my_varsign bit
integer bits fractional bits.
1 1 1 0 0 1 0 0
(1.75)10 = (0001.1100)2
1’s complement of (0001.1100) 2 = (1110.0011)2
2’s complement of (0001.1100) 2 = (1110.0100)2