Guest
Hi,
I am trying to code up a clocked comparator in verilog-A. Below is the
code listing :
// VerilogA for 90nm_mixer, latched_comparator, veriloga
`include "constants.vams"
`include "disciplines.vams"
module latched_comparator(inp, inn, CLK, dout);
input inp, inn;
electrical inp, inn;
input CLK;
electrical CLK;
output dout;
electrical dout;
parameter real vth = 0.6;
real hold;
analog begin
@(cross((V(CLK)-vth), +1)) begin
if (V(inp) > V(inn))
hold = 1.0;
else
hold = 0.0;
end
V(dout) <+ hold;
end
endmodule
Everytime I tried to compile it, I got a failed ahdlcmi compile error.
I'm using Cadence version 5.10.41_USR_3.27.30.
Here is the content of the ahldcmi.out file :
ahdlcmicompile: Compiling ahdlcmi in /vol/hitz/vol2/designs/Dcdg/users/
winoto/90nm_mixer/latched_comparator/veriloga/veriloga.va.ahdlcmi/ for
Linux2.6.9-42.ELsmp+gcc with optimize using gcc on Thu Feb 22 08:53:37
PST 2007 [0]
ahdlcmicompile: Generating makefile
PATH: /tools/CMP/cmos090_50a/UNIOPUS/uniopus_5.0.33_Lnx/tools.lnx86/
systemc/gcc/install/bin:/tools/CMP/cmos090_50a/
SignOffTechnoKit_cmos090gp_7M2T_5.0a/bin:/tools/CMP/cmos090_50a/
RtlKit_3.0.2/bin:/tools/CMP/cmos090_50a/PLSKit_1.3/bin:/tools/CMP/
cmos090_50a/DK_cmos090gp_7M2T_50A_5.0.a/bin:/tools/CMP/cmos090_50a/
adv_AvantiTechnoKit_cmos090_7M2T_M2V_AP_5.1/bin:/tools/CMP/cmos090_50a/
UNIOPUS/uniopus_5.0.33_Lnx/tools/bin:/tools/CMP/cmos090_50a/UNIOPUS/
uniopus_5.0.33_Lnx/tools/dfII/bin:/tools/grid/bin/lx24-amd64:.:/usr/
cluster/bin:/usr/cluster/jdk1.5.0_10/bin:/usr/local/bin:/usr/bin:/bin:/
tools/grid/bin/lx24-amd64:.:/usr/cluster/bin:/usr/cluster/jdk1.5.0_10/
bin:/usr/local/bin:/usr/bin:/bin:/usr/kerberos/bin:/usr/local/bin:/usr/
bin:/bin:/usr/X11R6/bin:/vol/hitz/tools/commercial/mathworks/
matlabR143:/vol/hitz/tools/commercial/mathworks/matlabR143:/tools/
mentor/calibre2006.2/ixl_cal_2006.2_30.26/bin:/tools/CMP/cmos090_50a/
UnicadKernel_3.3:/tools/CMP/cmos090_50a/UnicadKernel_3.3/bin:/tools/
CMP/cmos090_50a/adv_AvantiKit_2.3.7.3/bin:/tools/CMP/cmos090_50a/
DftKit_1.3.1/bin:/tools/CMP/cmos090_50a/RtlTechnoKit_cmos090_3.0.1/
bin:/tools/CMP/cmos090_50a/SignOffKit_2.3.8.2/bin:/tools/CMP/
cmos090_50a/SynopsysHandOffKit_2.3.8.2/bin:/tools/CMP/cmos090_50a/
Unidoc_2.7.b/bin:/tools/CMP/cmos090_50a/UnixBudgetKit_2.3.5/bin:/vol/
hitz/tools/commercial/cds99/IUS/IUS54_lnx/tools.lnx86/bin
LD_LIBRARY_PATH: /tools/CMP/cmos090_50a/UNIOPUS/uniopus_5.0.33_Lnx/
tools.lnx86/systemc/gcc/install/lib:/tools/CMP/cmos090_50a/UNIOPUS/
uniopus_5.0.33_Lnx/tools.lnx86/mdl/lib:/tools/CMP/cmos090_50a/UNIOPUS/
uniopus_5.0.33_Lnx/tools.lnx86/dfII/lib:/tools/CMP/cmos090_50a/UNIOPUS/
uniopus_5.0.33_Lnx/tools.lnx86/lib:/tools/grid/lib/lx24-amd64:/vol/
hitz/tools/commercial/cds99/IUS/IUS54_lnx//tools/lib:/vol/hitz/tools/
commercial/cds99/IC5033_lnx86//tools/lib
Compiling C file installdev.c (optimize)
/tools/CMP/cmos090_50a/UNIOPUS/uniopus_5.0.33_Lnx/tools.lnx86/systemc/
gcc/install/bin/gcc -ansi -march=i486 -O3 -DSYSV -DSVR4 -D_REENTRANT -
fPIC -DconfigSPECTRE -I. -I/tools/CMP/cmos090_50a/UNIOPUS/
uniopus_5.0.33_Lnx/tools.lnx86/spectre/ahdlcmi/include -c installdev.c
-o obj/Linux2.6.9-42.ELsmp+gcc/optimize/installdev.o || rm -f -f obj/
Linux2.6.9-42.ELsmp+gcc/optimize/installdev.o;
Compiling C file latched_comparator.c (optimize)
/tools/CMP/cmos090_50a/UNIOPUS/uniopus_5.0.33_Lnx/tools.lnx86/systemc/
gcc/install/bin/gcc -ansi -march=i486 -O3 -DSYSV -DSVR4 -D_REENTRANT -
fPIC -DconfigSPECTRE -I. -I/tools/CMP/cmos090_50a/UNIOPUS/
uniopus_5.0.33_Lnx/tools.lnx86/spectre/ahdlcmi/include -c
latched_comparator.c -o obj/Linux2.6.9-42.ELsmp+gcc/optimize/
latched_comparator.o || rm -f -f obj/Linux2.6.9-42.ELsmp+gcc/optimize/
latched_comparator.o;
latched_comparator.c: In function `latched_comparator_DcFuncDerLoad':
latched_comparator.c:23: `_V_Static_dout_120' undeclared (first use in
this function)
latched_comparator.c:23: (Each undeclared identifier is reported only
once
latched_comparator.c:23: for each function it appears in.)
latched_comparator.c:28: `_dout_flow_108' undeclared (first use in
this function)
latched_comparator.c: In function `latched_comparator_DcFuncLoad':
latched_comparator.c:38: `_V_Static_dout_120' undeclared (first use in
this function)
latched_comparator.c:41: `_dout_flow_108' undeclared (first use in
this function)
latched_comparator.c: In function
`latched_comparator_TranFuncDerLoad':
latched_comparator.c:51: `_V_Static_dout_120' undeclared (first use in
this function)
latched_comparator.c:56: `_dout_flow_108' undeclared (first use in
this function)
latched_comparator.c: In function `latched_comparator_TranFuncLoad':
latched_comparator.c:66: `_V_Static_dout_120' undeclared (first use in
this function)
latched_comparator.c:69: `_dout_flow_108' undeclared (first use in
this function)
/tools/CMP/cmos090_50a/UNIOPUS/uniopus_5.0.33_Lnx/tools.lnx86/systemc/
gcc/install/bin/gcc -shared -O3 -fPIC -o obj/Linux2.6.9-42.ELsmp+gcc/
optimize/libahdlcmi.so ./obj/Linux2.6.9-42.ELsmp+gcc/optimize/
installdev.o ./obj/Linux2.6.9-42.ELsmp+gcc/optimize/
latched_comparator.o -Wl,-rpath,/usr/lib -Wl,-rpath,/lib -s
gcc: ./obj/Linux2.6.9-42.ELsmp+gcc/optimize/latched_comparator.o: No
such file or directory
gnumake: *** [obj/Linux2.6.9-42.ELsmp+gcc/optimize/libahdlcmi.so]
Error 1
Another funny thing is if I replaced the @cross section with the
following :
@(cross((V(CLK)-vth), +1)) begin
hold = V(inp) - V(inn)
end
or change it to a simple sample-and-hold, everything compiles fine.
Anybody can offer any clue as to what's going on ?
Thank you,
Renaldi
I am trying to code up a clocked comparator in verilog-A. Below is the
code listing :
// VerilogA for 90nm_mixer, latched_comparator, veriloga
`include "constants.vams"
`include "disciplines.vams"
module latched_comparator(inp, inn, CLK, dout);
input inp, inn;
electrical inp, inn;
input CLK;
electrical CLK;
output dout;
electrical dout;
parameter real vth = 0.6;
real hold;
analog begin
@(cross((V(CLK)-vth), +1)) begin
if (V(inp) > V(inn))
hold = 1.0;
else
hold = 0.0;
end
V(dout) <+ hold;
end
endmodule
Everytime I tried to compile it, I got a failed ahdlcmi compile error.
I'm using Cadence version 5.10.41_USR_3.27.30.
Here is the content of the ahldcmi.out file :
ahdlcmicompile: Compiling ahdlcmi in /vol/hitz/vol2/designs/Dcdg/users/
winoto/90nm_mixer/latched_comparator/veriloga/veriloga.va.ahdlcmi/ for
Linux2.6.9-42.ELsmp+gcc with optimize using gcc on Thu Feb 22 08:53:37
PST 2007 [0]
ahdlcmicompile: Generating makefile
PATH: /tools/CMP/cmos090_50a/UNIOPUS/uniopus_5.0.33_Lnx/tools.lnx86/
systemc/gcc/install/bin:/tools/CMP/cmos090_50a/
SignOffTechnoKit_cmos090gp_7M2T_5.0a/bin:/tools/CMP/cmos090_50a/
RtlKit_3.0.2/bin:/tools/CMP/cmos090_50a/PLSKit_1.3/bin:/tools/CMP/
cmos090_50a/DK_cmos090gp_7M2T_50A_5.0.a/bin:/tools/CMP/cmos090_50a/
adv_AvantiTechnoKit_cmos090_7M2T_M2V_AP_5.1/bin:/tools/CMP/cmos090_50a/
UNIOPUS/uniopus_5.0.33_Lnx/tools/bin:/tools/CMP/cmos090_50a/UNIOPUS/
uniopus_5.0.33_Lnx/tools/dfII/bin:/tools/grid/bin/lx24-amd64:.:/usr/
cluster/bin:/usr/cluster/jdk1.5.0_10/bin:/usr/local/bin:/usr/bin:/bin:/
tools/grid/bin/lx24-amd64:.:/usr/cluster/bin:/usr/cluster/jdk1.5.0_10/
bin:/usr/local/bin:/usr/bin:/bin:/usr/kerberos/bin:/usr/local/bin:/usr/
bin:/bin:/usr/X11R6/bin:/vol/hitz/tools/commercial/mathworks/
matlabR143:/vol/hitz/tools/commercial/mathworks/matlabR143:/tools/
mentor/calibre2006.2/ixl_cal_2006.2_30.26/bin:/tools/CMP/cmos090_50a/
UnicadKernel_3.3:/tools/CMP/cmos090_50a/UnicadKernel_3.3/bin:/tools/
CMP/cmos090_50a/adv_AvantiKit_2.3.7.3/bin:/tools/CMP/cmos090_50a/
DftKit_1.3.1/bin:/tools/CMP/cmos090_50a/RtlTechnoKit_cmos090_3.0.1/
bin:/tools/CMP/cmos090_50a/SignOffKit_2.3.8.2/bin:/tools/CMP/
cmos090_50a/SynopsysHandOffKit_2.3.8.2/bin:/tools/CMP/cmos090_50a/
Unidoc_2.7.b/bin:/tools/CMP/cmos090_50a/UnixBudgetKit_2.3.5/bin:/vol/
hitz/tools/commercial/cds99/IUS/IUS54_lnx/tools.lnx86/bin
LD_LIBRARY_PATH: /tools/CMP/cmos090_50a/UNIOPUS/uniopus_5.0.33_Lnx/
tools.lnx86/systemc/gcc/install/lib:/tools/CMP/cmos090_50a/UNIOPUS/
uniopus_5.0.33_Lnx/tools.lnx86/mdl/lib:/tools/CMP/cmos090_50a/UNIOPUS/
uniopus_5.0.33_Lnx/tools.lnx86/dfII/lib:/tools/CMP/cmos090_50a/UNIOPUS/
uniopus_5.0.33_Lnx/tools.lnx86/lib:/tools/grid/lib/lx24-amd64:/vol/
hitz/tools/commercial/cds99/IUS/IUS54_lnx//tools/lib:/vol/hitz/tools/
commercial/cds99/IC5033_lnx86//tools/lib
Compiling C file installdev.c (optimize)
/tools/CMP/cmos090_50a/UNIOPUS/uniopus_5.0.33_Lnx/tools.lnx86/systemc/
gcc/install/bin/gcc -ansi -march=i486 -O3 -DSYSV -DSVR4 -D_REENTRANT -
fPIC -DconfigSPECTRE -I. -I/tools/CMP/cmos090_50a/UNIOPUS/
uniopus_5.0.33_Lnx/tools.lnx86/spectre/ahdlcmi/include -c installdev.c
-o obj/Linux2.6.9-42.ELsmp+gcc/optimize/installdev.o || rm -f -f obj/
Linux2.6.9-42.ELsmp+gcc/optimize/installdev.o;
Compiling C file latched_comparator.c (optimize)
/tools/CMP/cmos090_50a/UNIOPUS/uniopus_5.0.33_Lnx/tools.lnx86/systemc/
gcc/install/bin/gcc -ansi -march=i486 -O3 -DSYSV -DSVR4 -D_REENTRANT -
fPIC -DconfigSPECTRE -I. -I/tools/CMP/cmos090_50a/UNIOPUS/
uniopus_5.0.33_Lnx/tools.lnx86/spectre/ahdlcmi/include -c
latched_comparator.c -o obj/Linux2.6.9-42.ELsmp+gcc/optimize/
latched_comparator.o || rm -f -f obj/Linux2.6.9-42.ELsmp+gcc/optimize/
latched_comparator.o;
latched_comparator.c: In function `latched_comparator_DcFuncDerLoad':
latched_comparator.c:23: `_V_Static_dout_120' undeclared (first use in
this function)
latched_comparator.c:23: (Each undeclared identifier is reported only
once
latched_comparator.c:23: for each function it appears in.)
latched_comparator.c:28: `_dout_flow_108' undeclared (first use in
this function)
latched_comparator.c: In function `latched_comparator_DcFuncLoad':
latched_comparator.c:38: `_V_Static_dout_120' undeclared (first use in
this function)
latched_comparator.c:41: `_dout_flow_108' undeclared (first use in
this function)
latched_comparator.c: In function
`latched_comparator_TranFuncDerLoad':
latched_comparator.c:51: `_V_Static_dout_120' undeclared (first use in
this function)
latched_comparator.c:56: `_dout_flow_108' undeclared (first use in
this function)
latched_comparator.c: In function `latched_comparator_TranFuncLoad':
latched_comparator.c:66: `_V_Static_dout_120' undeclared (first use in
this function)
latched_comparator.c:69: `_dout_flow_108' undeclared (first use in
this function)
/tools/CMP/cmos090_50a/UNIOPUS/uniopus_5.0.33_Lnx/tools.lnx86/systemc/
gcc/install/bin/gcc -shared -O3 -fPIC -o obj/Linux2.6.9-42.ELsmp+gcc/
optimize/libahdlcmi.so ./obj/Linux2.6.9-42.ELsmp+gcc/optimize/
installdev.o ./obj/Linux2.6.9-42.ELsmp+gcc/optimize/
latched_comparator.o -Wl,-rpath,/usr/lib -Wl,-rpath,/lib -s
gcc: ./obj/Linux2.6.9-42.ELsmp+gcc/optimize/latched_comparator.o: No
such file or directory
gnumake: *** [obj/Linux2.6.9-42.ELsmp+gcc/optimize/libahdlcmi.so]
Error 1
Another funny thing is if I replaced the @cross section with the
following :
@(cross((V(CLK)-vth), +1)) begin
hold = V(inp) - V(inn)
end
or change it to a simple sample-and-hold, everything compiles fine.
Anybody can offer any clue as to what's going on ?
Thank you,
Renaldi