De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

HM-ES-th1 Les 4 Hardware/Software Codesign with SystemC.

Verwante presentaties


Presentatie over: "HM-ES-th1 Les 4 Hardware/Software Codesign with SystemC."— Transcript van de presentatie:

1 HM-ES-th1 Les 4 Hardware/Software Codesign with SystemC

2 SystemC Hiërarchie  Een module kan (sub)modules bevatten 18 in port out port module submodule channel submodule

3 Verbindingen tussen modules  Verbindingen tussen hiërarchische niveaus:  Input van module (rechtstreeks) verbonden met input van submodule.  Output van submodule (rechtstreeks) verbonden met output van module.  Verbindingen binnen een hierarchische niveau:  Output van een module (via een channel) verbonden met de input van een andere module (op hetzelfde niveau). 19

4 2 bit full adder  Schema (opgebouwd uit twee 1 bit full adders). 20 A0 S0 Adder2Bits carry adder0 AB Cin SCout adder1 AB Cin SCout B0 Cin A1 B1 S1Cout

5 2 bit full adder SC_MODULE(Adder2Bits) { sc_in A0, B0, A1, B1, Cin; sc_out S0, S1, Cout; SC_CTOR(Adder2Bits): adder0("adder0"), adder1("adder1") { adder0.A(A0); adder0.B(B0); adder0.Cin(Cin); adder0.S(S0); adder0.Cout(carry); adder1.Cin(carry); adder1.A(A1); adder1.B(B1); adder1.S(S1); adder1.Cout(Cout); } private: Adder adder0, adder1; sc_signal carry; }; 21

6 2 bit full adder (alternatief) SC_MODULE(Adder2Bits) { sc_in A0, B0, A1, B1, Cin; sc_out S0, S1, Cout; SC_CTOR(Adder2Bits) { SC_METHOD(add); sensitive << A0 << B0 << A1 << B1 << Cin; } private: void add() { sc_uint a = 0, b = 0, c = 0; a[1] = A1.read().to_bool(); a[0] = A0.read().to_bool(); b[1] = B1.read().to_bool(); b[0] = B0.read().to_bool(); c[0] = Cin.read().to_bool(); sc_uint s = a + b + c; S0.write(sc_logic(s[0].to_bool())); S1.write(sc_logic(s[1].to_bool())); Cout.write(sc_logic(s[2].to_bool())); } }; 22

7  De 2 bit full adder opgebouwd met twee 1 bit full adders noemen we een structural model.  De 2 bit full adder waarvan het gedrag wordt beschreven zonder gebruik te maken van submodules noemen we een behavioral model. 23

8 Modules  Modules are the basic building blocks for partitioning a design  A module is a structural entity, which can contain processes, ports, channels, member functions not registered as processes and instances of other modules  A module is the foundation of structural hierarchy  Modules allow designers to hide internal data representation and algorithms from other modules  Designers are forced to use public interfaces to other modules, thus making the entire system easier to change and maintain  reusability = lower design time 24

9 Processes  Processes are small pieces of code that run concurrently with other processes.  Functionality is described in processes.  Processes must be contained within a module.  They are registered as processes with the SystemC kernel, using a process declaration in the module constructor.  Processes accept no arguments and produce no output 25

10 SystemC in UML 26

11 Fixed point getallen  Een fixed point getal heeft een bepaald aantal bits voor de decimale punt en een bepaald aantal bits na de decimale punt.  Fixed point getallen kunnen in een integer worden opgeslagen. De programmeur moet dan wel zelf onthouden waar de decimale punt staat.  Rekenen met fixed point getallen:  Optellen en aftrekken  niets bijzonders.  Vermenigvuldigen  resultaat naar rechts schuiven zodat decimale punt weer goed staat.  Delen  resultaat naar links schuiven zodat decimale punt weer goed staat. 27


Download ppt "HM-ES-th1 Les 4 Hardware/Software Codesign with SystemC."

Verwante presentaties


Ads door Google