How to raise the RTL abstraction level and design conciseness with SystemVerilog - Part 2
By Sachin Kakkar, Sanjay Gupta, Ayan Banerjee, and Rohit Goel, Mentor Graphics
Programmable Logic DesignLine -- (05/14/08, 12:43:00 PM EDT)
As discussed in Part 1, this article proposes four steps to raise the abstraction level of current Verilog HDL designs and provide a phase wise approach to migrate to SystemVerilog.
- Enhance conciseness and expressiveness of designs.
- Add built-in checks to avoid design issues.
- Design efficient FSM and RAM/ROM memory models.
- Graduate to object oriented generic hardware designs.
In Part 1 we examined Steps1 and 2 – conciseness of expression and built-in code verification. Now, in Part 2, we will elaborate on Steps 3 and 4 and demonstrate how designers can improve code encapsulation, re-use, and consistency in model behavior – all without adversely affecting the quality of results.
Step 3: Design efficient FSMs and RAM/ROM memory models
#1 – Designing finite state machines
SystemVerilog enables modelling at higher levels of abstraction through the use of the following:
- Strongly typed enumerated types with state encoding.
- 2-state data types and user defined types.
- Specialized always_comb, always_latch, and always_ff blocks.
- Unique and priority case statements.
These enhancements enable accurate modelling that simulate and synthesize correctly with consistent behaviour across all tools.
The new SystemVerilog coding style is also easy to read and maintain compared to the Verilog method of modelling FSM's.
To read the full article, click here
Related Semiconductor IP
- Chiplet Die-to-Die Interconnect IP Solution
- High speed MACsec Engine 100G/200G/400G/800G/1.6T
- Temperature/Voltage sensors
- AMBA Bus Host to eSPI Controller/Target
- AMBA Bus Host to eSPI Controller
Related Articles
- 'Smart' verification moves beyond SystemVerilog 3.0
- SystemVerilog 3.1 adds assertions and testbench automation
- SystemVerilog key to new design paradigm
- Synopsys 'ARMs' SystemVerilog
Latest Articles
- ZK-Flex: A Flexible and Scalable Framework for Accelerating Zero-Knowledge Proofs
- ITP-STDP: An Intrinsic-Timing Power-of-Two Learning Engine for On-Chip SNN Training
- OpenEye: A Scalable Open-Source Hardware Accelerator for DNNs
- CHIMERA: A Flexible and Scalable 3.1 TOPS/W AI-MCU with Transformer Accelerator and 563 Gb/s Shared-L2 Memory Subsystem with QoS Guarantees
- CXL-ClusterSim: Modeling CXL-based Disaggregated Memory Cluster for Pooling and Sharing using gem5 and SST