I've met problem while passing parameter value, specified on the schematic.
Here is Verilog module:
module Pixel_v0 (input Din, CLK, output Dout ); parameter SEED = 33; integer INTSEED=SEED; reg [15:0] DATA; assign Dout = DATA;// initial DATA = $random(INTSEED); initial DATA = INTSEED; generate genvar i; for (i = 0; i < 15; i=i+1) begin: DFF if (i==0) always @(posedge CLK) DATA[i] <= Din; always @(posedge CLK) DATA[i+1] <= DATA[i]; end endgenerateendmodule
On the picture on attachment I shoved concrned instance (with parameter value = 15) and signal waveform. As you can constate, the initial DATA value is 33 (as spicified inside of verilog module), but not 15 (as sppecified in schematic).
Where is a problem.
Thanks in advance.
In reply to Andrew Beckett:
I used Launch->Simulation->NC Verilog
CIW version is IC22.214.171.124
In reply to Pavel47:
Since the Verilog netlister is not CDF based, you probably need to set hnlVerilogCDFdefparamList - search in the documention or on Cadence Online Support for more details.
Thanks for answer Andrew,
I googled for a solution and found a hint on the Designer's Guide Forum. Here is it:
You can either do it through the library manger or through SKILL.Lib. Mgr.: - Right Mouse click over the desired view - Properties - [Edit -> Create...] - View Property Editor - Add - hnlVerilogCDFdefparamList <dataType> <value>SKILL:d_cvId = dbOpenCellViewByType( t_libName t_cellName t_viewName nil "a" )dbCreateProp( d_cvId "hnlVerilogCDFdefparamList" "<dataType>" <value> )dbSave( d_cvId )dbClose( d_cvId )Bern
Concerned cell has 2 views - symbol and verilog. Where should I add hnlVerilogCDFdefparamList propery ?
In the initiall message the guy mentionned that hnlVerilogCDFdefparamList must be added on the switched master of the instance cell. Unfortunately I ignore what doest switched master mean. The post dates 2007, so it's improbable, that I will be answered.
Well, the first suggestion is completely wrong, and the second is unnecessarily complicated.
It's documented - so searching in cdnshelp is better than Google (I'd always start with a more specific search than assuming Google will find it, given that Google can't see our support portal or see our documentation). It's covered in a Cadence Online Support solution too.
I've found this info inside of Virtuoso NC Verilog Environment User Guide:
CDF properties can be used by either creating a Verilog hierprop property or by using hnlVerilogCDFdefparamList parameter.If an instance has CDF parameters, the user does not need to create a Verilog hierprop property to ask the Verilog netlister to print out CDF properties by defparam statement. But the user does need to create a hnlVerilogCDFdefparamList property on the switched master of the instance cell.property name: hnlVerilogCDFdefparamListproperty type: list typeproperty value(example): (“Asim” “Lsim” “l” “w” “Wsim”)The Verilog formatter looks first at the instance Verilog hierprop properties and prints out those properties. Then, the formatter looks at the switched master of instance to determine whether property hnlVerilogCDFdefparamList exist.
But I didn't find what is switched master ?
I've searched everywhere - cdnshelp, google, etc. - no definition at all.
Andrew,I'm afraid I didn't clearly understood your suggestion to add hnlVerilogCDFdefparamList property to cell CDF.When I open cell CDF (CIW->Tools->CDF->Edit), I couldn't find list property (as specified in manual) while trying to add new property to the table on the Component Parameter tab.So, I renounced CDF and procedeed via Library Manager. There are 2 views for the concerned cell - "symbol" and "verilog". I tried to add hnlVerilogCDFdefparamList property for symbol view: right-click on symbol view -> Properties -> Add (Name: hnlVerilogCDFdefparamList, type: ILList, value: "SEED")-> Apply (please, see the picture in attachment).Then I tried to resimulate my testbench. Nothing changed.Presumably I was mistaken while trying to interpret explanation.Best Regards.Pavel.
I already told you that the library manager approach was incorrect, so it's not surprising that this wouldn't work.
The CDF approach is described in th esolution I pointed you to. The key bit is here:
Approach 1:===========Add a CDF parameter named hnlVerilogCDFdefparamList on base CDF of hnmosb cell by going to Tools->CDF->Edit menuparamType: stringparseAsCEL: yesname: hnlVerilogCDFdefparamListprompt: hnlVerilogCDFdefparamListdefValue: l w => You just need to specify name of parameters separated by space.display: nil => Set it to t if you want to see the values on edit properties form.
Sure, the documentation should be clearer, but that's why we have a solution to improve upon the documentation until that gets fixed.
Yesss ! Works ! Thanks Andrew.
Unfortunately the changes aren't kept. So, each time after launching Cadence I have to repeate the procedure.
Is there some workaround ?
Did you remember to change the CDF type to "Base" (rather than "Effective")? Otherwise it will be done in memory only.
I didn't touch my Cadence project since some weeks due to other more urgent job. Surprisingly when I came back today, I discovered that concerned feature doesn't work ! As one can constate from attached image, the value specified in schematic isn't taken in account, but default (specified in verilog module) instead. Where is a problem ? From accompagnied windowsit seems thatsettings are correct.