ray_salemi

Ray Salemi

Mentor Graphics Corporation - Senior Verification Consultant

Expert in RTL and RTL Design tools including simulators and synthesis tools.

Interests

EEWeb Stats

Ray's Blog :

Full View List View

How Does Synthesis Work?

For the past several months we've been looking into what it takes to write good RTL code. We've looked at how to write register-driven RTL, how to write combinatorial processes, and how to write state machines.

Figure:1 Figure:1 Figure:1
Comments (0)
Tags: synthesis, RTL, software, hardware,
Read More

State Machines Coding Styles

State machines are so common that there are tools devoted to creating them by drawing circles and arts. There are simulators that will recognize your state machine and animate it to help you debug it. There are even synthesis tools that will add error correcting logic to your state machines so that it can recover from the single event upsets that can happen at high altitude or in electrically noisy environments.

Figure:2 Figure:2 Figure:2 Figure:2
Comments (0)
Tags: state machines, coding,
Read More

State Machine Design

State machines are a foundation of digital design. Eventually we all reach the point where we need to control our digital algorithm, and we almost always turn to a state machine to do the job.

Figure:3 Figure:3 Figure:3 Figure:3
Comments (0)
Tags: digital design, algorithms, EDA, RTL,
Read More

Controlling Latches Before They Ruin Your Day

When we use procedural code to create combinatorial logic, we need to be careful to define all the paths through the logic. If we don't, we can unintentionally create latches in our design. These latches can screw up our simulation results, timing results, and area results.

Figure:4 Figure:4 Figure:4 Figure:4
Comments (0)
Tags: latch, simulation, synthesis, design,
Read More

Control Synthesis Output with Combinatorial Logic in Procedural Code

While it is tempting to write RTL and let the synthesis tool take over, this isn't the best way to get the results we want. In this article, we'll learn how to create complex combinatorial code in process blocks and always blocks. We'll look at a example where our coding style creates a 10x improvement in area results.

Figure:5 Inferred Adder Figure:5 Full Adder Figure:5 Ripple Carry Adder Figure:5 Verilog Adder
Comments (0)
Tags: RTL, combinatorial code, coding,
Read More

Creating Combinatorial Logic (Part 1)

Last month we put the 'R' into RTL by discussing registers and how to create them in Verilog and VHDL. We learned how to create resets, both synchronous and asynchronous, clock enables, and even...clock enables with resets. But, creating registers is only part of the story when it comes to digital design.

Figure:6 Figure:6 Figure:6
Comments (1)
Tags: digital design, Verilog, VHDl,
Read More

Putting the R in RTL : Coding Registers in Verilog and VHDL

Many years ago, when I was a young man and the Boston Red Sox had just lost the 1986 world series, controversy stalked the land of hardward development. A new technology called Register Transfer Language or RTL...

Figure:7 Figure:7 Figure:7 Figure:7
Comments (10)
Tags: RTL, Verilog, VHDl, register, flip flop,
Read More
 
Click Here