Simple Sequential Execution Model After optimization, the result should be exactly the same with “simple sequential execution model”.
Optimization: Instruction Fetching Fetch multiple instructions from memory Branch Predictive fetch and execution Branch caches Return stack The “link register” value is pushed into the stack, and used/popped when return E.g. 4 entries of return stack, but my call stack is 5, then miss will happend. Then what to do?
// Some simple example #include <systemc.h> SC_MODULE (seq_and2 ) { // sequential AND2 sc_in< sc_uint<8> > a; sc_in< sc_unit<8> > b; sc_out< sc_uint<8> > f; sc_in<bool> clk; void func() { f.write( a.read() & b.read() ); } SC_CTOR ( seq_and2 ) { SC_CTHREAD(func); sensitive << clk.neg(); } } Port & signal Port sc_in & sc_out .read() & .write() functions Signal sc_signal Threads SC_METHOD() Just like always_comb in Verilog, but you have to list the sensitive list SC_THREAD() Not commonly used Behavior like initial in Verilog SC_CTHREAD(function name, clock sensitive) Most commonly used Only sensitive to clock edge, just like always_ff in Verilog Not limited to one cycle sensitive keyword to define the sensitive list Datatypes Integers
The course is on Coursera
understanding design patterns what? well-known solutions for recurring problems why? don’t reinvent wheels reuse best practices characteristics language neutral dynamic incomplete by design to promote customization types creational structual behavioral OOP (object-oriented programming) design pattern relies on OOP attributes + methods inheritence & polymorphism pattern context participants and their rols quality attributes: nonfunctional requirements forces: various factors or trade-offs to consider consequences: side effects by decision makers pattern language name context problem solution related patterns creational patterns factory create and return object on the fly flexibility of adding new classes problem uncertainties in types of objects runtime decision of types of objects abstract facotry a factory dynamically uses different factories to create objects on the fly problem create a family of related objects at runtime concepts abstract factory concrete factory (the real factory used at runtime) singleton only one object from a class problem cache information shared by multiple objects
Scala introduction course on LinkedIn. Not very useful, if not using it in real project.
introduction short for Scalable language object-oriented + functional programming everything is object including numbers and functions does not include primitive data types can pass/assign function: functional programming seamless compatible with Java runs on JVM, compile to JVM reuse Java libraries and types can call any Java code REPL interactive shell read, eval, print, loop syntax define: var (variable) vs val (value) var defines variables that can be changed but cannot change from one data type to another, ex.
The following is my notes of GENUS training course on Cadence’s training module
Module 03: genus fundamentals common UI vs legacy mode unified commands with Tempus common us: set_db & get_db legacy mode: set_attribute & get_attribute .synth_init file: setup info, auto load when start legacy UI, can be skipped with -no_custom command line option explore design hier in legacy UI virtual directory structure /: root dir designs top_module instances_hier: current module’s hier instances instances_seq: current module’s sequential instances instances_cmb: current module’s combinational instancs libraries hdl_libraries flows use find to locate objects ex.
The following is my notes of INNOVUS training course on Cadence’s training module
Module 02: overview “gift” directory contains lots of useful scripts to help productivity Independent “viewlog” utility or “Tools->Log Viewer” will start a GUI to help understand log files better. Batch mode: innovus -no_gui -init batch.tcl win / win off to show/hide GUI Module 03: import design Input Netlist in Verilog Floorplan in DEF Clock tree spec auto gen from SDC Scan info in Tcl or DEF I/O info (pads or pins) GDS layer map (if want to dump GDS) Timing constraint in SDC Timing library in .
This is my reading note of book “SystemVerilog for Design (2nd edition)". As a non-full-time RTL designer, it has opened my mind. But still, I’m sad about the antient tool that we are using to design hardware.
Chapter 2: SystemVerilog Declaration Spaces Package Verilog shortage: no global declaration package ... endpackage share user-defined type definitions across multiple modules independent of modules parameters cannot be redefined in package, parameter is similar to localparam, cos in module localparam cannot be directly redefined while instantiation referencing :: the scope resolution operator package_name::package_member use import to import package into current space import package_name::package_member TIPS: importing an enumerated type definition will not import the labels automatically import package_name::* what is used will be imported $unit declaration space TIPS: synthesis guide tasks and functions must be automatic storage for automatic task/function is allocated each time it’s called cannot use static variables, which are supposed to be shared by all instances $unit: compilation-unit declarations declaration space outside of package/module/interface/program BUT it’s not global if put variables and nets in $unit source code order can affect the usage of a declaration external to the module each compilation has one $unit single-file compilation multiple-file compilation: source order is tricky TIPS: coding guide DONOT make any declarations in $unit space, only import packages into $unit ILLEGAL to import the same package more than once into the same $unit NOTE: donot work for global variables, static task/function // filename: def.
1 Week1: Welcome 1.1 Introduction 1.1.1 real world case based - regression: house price prediction - classificiation: sentiment analysis - clustering & retrieval: finding doc - maxtrix factorization & dimensionality reduction: recommending products 1.1.2 requirement math: calculas & algebra python 1.1.3 capstone project 1.2 iPython Notebook Python command and its outputs Markdown for doc 1.3 SFrames 1.