TCL Script: Gen - Netlist - TCL:: TCLSH Auto - Synth - TCL Mul - 8 - Bit.v Mul - 8 - Bit - TB.V
TCL Script: Gen - Netlist - TCL:: TCLSH Auto - Synth - TCL Mul - 8 - Bit.v Mul - 8 - Bit - TB.V
TCL Script: Gen - Netlist - TCL:: TCLSH Auto - Synth - TCL Mul - 8 - Bit.v Mul - 8 - Bit - TB.V
Q-1 Write a TCL Script which when executed will automatically compile your design
modules and test-bench modules (select any medium complex designs), perform the
simulation and then synthesize the design module. The TCL script should also create a
separate directory to dump the log files and a separate directory to write the netlist file.
IMPLEMENTATION:
Below command used to execute the Verilog file as a command line argument for synthesis and
simulation purpose by calling the Synopsys server. Here I have attached two Verilog file of my ASIC
project which is 8-bit approximate multiplier.
TCL SCRIPT:
GEN_NETLIST.TCL:
set sub_file_names [glob *]
if {[lsearch $sub_file_names netlist] != -1} {
set sub_file_index [lsearch $sub_file_names netlist]
cd [lindex $sub_file_names $sub_file_index]
file delete [glob *]
cd ..
} else {
puts [exec mkdir netlist]
}
read_verilog mul_8_bit.v
link
check_design
compile -exact_map
exit
pg. 1
DARSHIL SHAH TASK-6 17MVD0091
AUTO_SYNTH.TCL:
#!/usr/bin/tclsh
set sub_file_names [glob *]
if {[lsearch $sub_file_names log] != -1} {
set sub_file_index [lsearch $sub_file_names log]
cd [lindex $sub_file_names $sub_file_index]
#exec cd [lindex $sub_file_names $sub_file_index]
file delete [glob *]
cd ..
} else {
puts [exec mkdir log]
}
SETUP.TCL:
set search_path .
set link_library "* saed90nm_typ_ht.db"
set target_library "saed90nm_typ_ht.db"
SYNTH.TCL:
set LOG_DIR log
source ./setup.tcl > ${LOG_DIR}/setup.log
source ./gen_netlist.tcl > ${LOG_DIR}/gen_netlist.log
pg. 2
DARSHIL SHAH TASK-6 17MVD0091
RESULT:
AREA LOG FILE:
****************************************
Report : area
Design : mul_8_bit_1
Version: I-2013.12-SP5-10
Date : Thu Feb 22 17:40:48 2018
****************************************
saed90nm_typ_ht (File:
/home/userdata/17mvd0091/materials/saed90nm_typ_ht.db)
Number of ports: 32
Number of nets: 133
Number of cells: 79
Number of combinational cells: 56
Number of sequential cells: 0
Number of macros/black boxes: 0
Number of buf/inv: 6
Number of references: 29
Constraint Cost
-----------------------------------------------------
min_capacitance 0.00 (MET)
max_transition 0.00 (MET)
max_capacitance 0.00 (MET)
pg. 3
DARSHIL SHAH TASK-6 17MVD0091
pg. 4
DARSHIL SHAH TASK-6 17MVD0091
NETLIST:
pg. 5
DARSHIL SHAH TASK-6 17MVD0091
endmodule
pg. 6
DARSHIL SHAH TASK-6 17MVD0091
pg. 7
DARSHIL SHAH TASK-6 17MVD0091
pg. 8
DARSHIL SHAH TASK-6 17MVD0091
endmodule
module RC_adder ( a20, a21, a22, a23, a24, a25, a26, a27, a28, a29,
a30, a31,
a32, a33, a34, b20, b21, b22, b23, b24, b25, b26, b27, b28,
b29, b30,
b31, b32, b33, b34, cin2, s20, s21, s22, s23, s24, s25, s26,
s27, s28,
s29, s30, s31, s32, s33, s34, cout2 );
input a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31,
a32, a33,
a34, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30,
b31, b32,
b33, b34, cin2;
output s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31,
s32, s33,
s34, cout2;
wire c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13,
c14;
pg. 9
DARSHIL SHAH TASK-6 17MVD0091
pg. 10
DARSHIL SHAH TASK-6 17MVD0091
pg. 11
DARSHIL SHAH TASK-6 17MVD0091
pg. 12
DARSHIL SHAH TASK-6 17MVD0091
pg. 13
DARSHIL SHAH TASK-6 17MVD0091
module mul_8_bit_1 ( a, b, p );
input [7:0] a;
input [7:0] b;
output [15:0] p;
wire \pp3[3] , \pp4[4] , a1, b1, e1, f1, a11, b11, c11, g11,
h11, i11, m11,
n11, o11, p11, u11, v11, w11, i1, j1, k1, o1, p1, s1, t1,
G3, G4, G5,
G6, G7, G8, G9, G10, G11, n8, n9, n10, n12, n13, n14, n15;
wire [7:0] pp0;
wire [7:0] pp1;
wire [7:0] pp2;
wire [7:0] pp5;
wire [7:0] pp6;
wire [7:0] pp7;
wire [21:0] s_t;
wire [21:0] cout_t;
pg. 14
DARSHIL SHAH TASK-6 17MVD0091
pg. 15
DARSHIL SHAH TASK-6 17MVD0091
pg. 16
DARSHIL SHAH TASK-6 17MVD0091
pg. 17