tailieunhanh - High Level Synthesis: from Algorithm to Digital Circuit- P16

High Level Synthesis: from Algorithm to Digital Circuit- P16: This book presents an excellent collection of contributions addressing different aspects of high-level synthesis from both industry and academia. "High-Level Synthesis: from Algorithm to Digital Circuit" should be on each designer's and CAD developer's shelf, as well as on those of project managers who will soon embrace high level design and synthesis for all aspects of digital system design. | 138 . Nikhil Although transactional interfaces exist in SystemC and in SystemVerilog and may not always be synthesizable it is their atomicity semantics in Bluespec that gives them tremendous compositional power scalability of systems and full synthesizability. A Strong Datatype System and Atomic Transactional Interfaces It is well acknowledged that C has a weak type system. C has a much stronger type system but it is not clear how much of it can be used in the synthesizable subsets of existing tools. Advanced programming languages like Haskell and ML have even stronger type systems. The type systems themselves provide abstraction abstract types parameterization and reuse polymorphism and overloading . Type checking in such systems is a form of strong static verification. Bluespec s type system strengthens the SystemVerilog type system to a level comparable to C and beyond in fact it is strongly inspired by Haskell . As an example of this we show how it is used to provide very high level interfaces and connections. We start with an extremely simple interface interface Put t method Action put t x endinterface This defines a new interface type called Put . It is polymorphic that is it is parameterized by another type t. It contains one method put which takes an argument x of type t and is of type Action. Action is the abstract type of things that go into atomic transactions rules and methods that is atomic transactions consist of a collection of Actions. The method expresses the idea of communicating a value x into a module and possibly affecting its internal state. In C terminology interfaces are like virtual classes and polymorphism is the analog of template classes. Unlike C however BSV s polymorphic interfaces modules and functions can be separately type-checked fully whereas in C template classes can be fully type-checked only after the templates have been instantiated. Similar to Put we can also define Get interface Get t method ActionValue t get .

TỪ KHÓA LIÊN QUAN