cyclic fields and spectreHDL

  • Thread starter Svenn Are Bjerkem
  • Start date
S

Svenn Are Bjerkem

Guest
Hi,

in good old spectreHDL there is the enum type for parameters. I wanted to
create an ahdl macro to calculate resistance on trace wiring based on our
design manual.

I have two enumerated parameters:
parameter enum {M1, M2, M3} layer = M1;
to set the metal layer and
parameter enum {nom, best, worst} corner = nom;
to set the selection of corner for the sheet resistance.

I have created a symbol for the ahdl entity and this shows the parameters w,
l, layer and corner. If I type "M2" in the "layer" property on the symbol,
then ADE complains that I have an unset variable "M2" and the same happens
when I type "nom" in the "corner" property.

If I give the variable M1 the value 2, then I somhow assign layer M3, and
the same happens if I give the "best" variable the value 0, then I simulate
with nominal values.

I tried to use the cyclic property in the CDF editor but except for a nice
way to select layer and corner, I still create an additional variable that
I have to set correctly in ADE.

Does anybody have an idea how to solve this problem?

--
Svenn
 
You do not have parseAsNumber set in the cdf, i assume ?

stéphane

Svenn Are Bjerkem wrote:
Hi,

in good old spectreHDL there is the enum type for parameters. I wanted to
create an ahdl macro to calculate resistance on trace wiring based on our
design manual.

I have two enumerated parameters:
parameter enum {M1, M2, M3} layer = M1;
to set the metal layer and
parameter enum {nom, best, worst} corner = nom;
to set the selection of corner for the sheet resistance.

I have created a symbol for the ahdl entity and this shows the parameters w,
l, layer and corner. If I type "M2" in the "layer" property on the symbol,
then ADE complains that I have an unset variable "M2" and the same happens
when I type "nom" in the "corner" property.

If I give the variable M1 the value 2, then I somhow assign layer M3, and
the same happens if I give the "best" variable the value 0, then I simulate
with nominal values.

I tried to use the cyclic property in the CDF editor but except for a nice
way to select layer and corner, I still create an additional variable that
I have to set correctly in ADE.

Does anybody have an idea how to solve this problem?
 
S. Badel wrote:

You do not have parseAsNumber set in the cdf, i assume ?
Yes I had, and that was wrong. The enum parameter type work best when
parseAsNumber is set to "no" for the respective parameter in CDF. Thanks.

A cyclic field is very nice, but if I want to make a parametric simulation
over the layers or the corners I found that it is difficult to override the
settings. I tried to add layer=1 and corner=0 as variables in the hope to
override the values set on each symbol, but that didn't seem to work.

The parametric tool seems to be able to change variables and temperature but
nothing else. In order to have parametric tool working I will have to go
back to the "ordinary" way of specifying an enum with its numeric value, or
is there something that I have overlooked?

kind regards,
--
Svenn
 

Welcome to EDABoard.com

Sponsor

Back
Top