Presentation ASIC Programming: By, Nayan Prajapati (10MEEC13) Rakesh Prajapati (10MEEC14) MEEC, Sem-I, KIT&RC
Presentation ASIC Programming: By, Nayan Prajapati (10MEEC13) Rakesh Prajapati (10MEEC14) MEEC, Sem-I, KIT&RC
On
ASIC Programming
By,
Nayan Prajapati (10MEEC13)
Rakesh Prajapati (10MEEC14)
MEEC, Sem-I, KIT&RC.
Contents:
Introduction to VHDL
RTL Description
Functional Simulation/Verification:
Synthesis:
Design Verification:
Layout:
Introduction to VHDL :
There are many features of VHDL which are not found in Ada, such as an
extended set of Boolean operators including NAND and NOR,
The VHDL language can be regarded as an integrated amalgamation of the following
languages:
sequential language +
concurrent language +
net-list language +
timing specifications +
waveform generation language => VHDL
An exchange medium between chip vendors and CAD tool users.
There is no need to learn a different language for simulation control. Test benches
can be written using the same language to test other VHDL models.
Nominal propagation delays, min-max delays, setup and hold timing, timing
constraints, and spike detection can all be described very naturally
To describe an entity, VHDL provides five different types of primary constructs, called"
design units.
They are
1. Entity declaration
2. Architecture body
3. Configuration declaration
4. Package declaration
5. Package body
Configuration Declaration :
for HA-STRUCTURE
for X1:XOR2
use entity CMOS_LIB.XOR_GATE(DATAFLOW);
end for;
for A1:AND2
use configuration MY_LIB.AND_CONFIG;
end for;
end for;
end HA_BINDING;
Package Declaration
package EXAMPLE_PACK is
component D_FLIP_FLOP
port (D, CK: in BIT; Q, QBAR: out BIT);
End component;
end EXAMPLE_PACK;
Functions:
begin
case OP is
when ADD=>Z:=A+B;
when SUB=>Z:=A-B;
when MUL=>Z:=A*B;
when DIV => Z := A/B;
when LT => ZCOMP := A < B;
when LE => ZCOMP := A <= B;
when EQ => ZCOMP := A = B;
end case;
end ARITH_UNIT;
Difference between VHDL and Verilog.
Compilation:
VHDL : Multiple design-units (entity/architecture pairs), that reside in the same
system file, may be separately compiled.
Verilog : Multiple design-units (entity/architecture pairs), that reside in the same
system file, are not separately compiled.
Design reusability
VHDL. Procedures and functions may be placed in a package so that they are avail
able to any design-unit that wishes to use them.
Verilog: There is no concept of packages in Verilog.
Easiest to Learn
Starting with zero knowledge of either language, Verilog is probably the easiest to
grasp and understand.
Language Extensions
Libraries
VHDL. A library is a store for compiled entities, architectures, packages and
configurations. Useful for managing multiple design projects.
Verilog. There is no concept of a library in Verilog. This is due to it's origins
as an interpretive language.
Managing large designs
An example counter circuit follows:
module Div20x (rst, clk, cet, cep, count,tc);
parameter size = 5;
parameter length = 20;
input rst;
input clk;
input cet;
input cep;
assign tc = count ;
endmodule
SystemC sample program:
#include "systemc.h"
#define WIDTH 4
SC_MODULE(adder)
{
sc_in<sc_uint<WIDTH> > a, b;
sc_out<sc_uint<WIDTH> > sum;
void do_add()
{
sum.write(a.read() + b.read());
}
SC_CTOR(adder)
{
SC_METHOD(do_add);
sensitive << a << b;
}
};
References :
[2] www.doulos.com
[3] www.verilog.net