Lab 8: Introduction to Synopsys
What is Synopsys?
Synopsys' headquarters are based in Mountain View, California. They employee about 3,000 people worldwide. In 2000 the revenue was about $783 million. Their objective is to produce electronic design automation tools. Their products are sold in North America, Europe, Japan, the Pacific Rim, Isreal, and Latin America. They have also formed relationships with IBM, Toshiba, and SEMATECH.
"Synopsys provides a full range of high-level design automation solutions for the design of integrated circuits, systems on a chip (SoCs) and electronic systems. By combining its expertise in high-level sysnthesis technology with its knowledge of silicion's physical effects, Synopsys employs system-level verification, RTL to GDSII closure and intellectual property solutions to help its customers get their silicon working quickly and accurately. Our products improve our customes' designs from virtually every vantage point, including performance, complexity, quality-of-results, cost power and time-to-market." -- Synopsys.com
The flow diagram (from Synopsys' website) depicts the areas in
which Synopsys tools are capable of being involved :

So what does this mean to us? Basically, Synopsys provides a suite of tools to aid designers in the development and verification of circuits. Designers are able to specify the desired design at a high level, VHDL and Verilog, and Synopsys will synthesize this down to gate level. In addition there are tools designers can use along the way for verification, simulation, and power analysis.
Using the Synopsys Tools
There are two seperate tutorials that will guide to through simulation, synthesis and power analysis. You should run through each of the tutorials before you start on the lab assignment.
Two Entity Implementations
In this lab, you will implement two different entities , MAX_1CMP and MAX_4CMP, which both calculate the maximum value of 8 inputs when the enable signal, enable, is high. Each input is a 4-bit number. The output, MaxValue, is the largest of the eight 4-bit inputs. In addition, the entitiy sets the output, Done, when the maximum value is computed indicating that the correct value is now on the output signal.
The MAX_1CMP entity consists of a single comparator which reads
in two 4-bit inputs and outputs the larger or the two. You are
only allowed to use a single comparator. This means that you will
have to come up with a scheme and maybe some additional hardware
to figure out the maximum input. A potential algorithim might
be the following:
max_val = 0;
for( i=0 ; i<8 ; i++){
max_val = max(max_val, input[i]);
}
output = max_val;
This algorithim can be optimized, or an entirely different
algorithim can be used.
The Max_4CMP entity consists of a single comparator which reads
in four 4-bit inputs and outputs the largest of the four inputs.
You are again only allowed to use a single comparator. This means
you will have to come up with another slightly modified scheme
and potentially additional hardware. If we just copied the first
algorithim we might end up with the following:
max_val = 0;
for( i=0; i<8; i++){
max_val = max(max_val, input[i], input[i+1], input[i+2]);
}
output = max_val;
The above algorithim clearly does not take advantage of the
4-input comparator. This algorithim can easily be opitimized
to use the new hardware available.
Implement both the MAX_1CMP and MAX_4CMP entites. Synthesize and simulate for correctness beign sure to use a testbench that illustrates robust testing. Measure the power consumed by both designs, and be sure to include the size (gate count) of each design.
State Machine Template for Synopsys
type STATE_TYPE is ( S0, S1, .... );
state : STATE_TYPE ;
...
process( ... )
begin
if( rst = '1' ) then
-- initialize stuff here
elsif( clk'event and clk = '1' ) then
case state is
when S0 =>
-- do stuff
when S1 =>
...
end case;
end if;
end process;
Lab Questions
In your lab report, be sure to include the power consumed and size of each design. Explain the tradeoff between the two designs. You should also include your testbenches and explain how they ensure correctness.
In embedded systems design, we are always trying to reduce the power consumed by a design. However, in the second design we use a four input comparator. This design is clearly larger than a design which only uses a two input comparator. Why would we use the second design which will consume more power when our objective is always to reduce power consumption? (HINT: define energy. How does this parameter factor in?)