Quantcast
Channel: Cadence Technology Forums
Viewing all 62626 articles
Browse latest View live

Forum Post: RE: User Defined Skill Function - Alias Waveform


Forum Post: RE: Creating digital buses in ADE XL: awvCreateBus

$
0
0
Can you check using IC617 ISR4 or later? (IC6.1.7.500.4) - support for families of busses was added then and I think this should be fixed. Regards, Andrew.

Forum Post: RE: User Defined Skill Function - Alias Waveform

$
0
0
It's in the code that builds the form: You need to not reference "waveform" because that's not known when the form is launched (the errors are suppressed by default - you can re-enable them using sstatus(errsetTrace t)). So I commented these four lines out and made the fmin/fmax values fixed defaults. (procedure (abCreateAliasSignalForm) (let (fsample fmin fmax xVec startfreq endfreq len) (setq fsample (ahiCreateStringField ?name 'fsample ?prompt "Sampling Frequency" ?value "" )) /* (setq xVec (drGetWaveformXVec waveform)) (setq len drVectorLength(xVec)) (setq startfreq (drGetElem xVec 0)) (setq endfreq (drGetElem xVec (sub1 len))) */ (setq fmin (ahiCreateStringField ?name 'fmin ?prompt "Min Freq" ?value "0" )) (setq fmax (ahiCreateStringField ?name 'fmax ?prompt "Max Freq" ?value "1G" )) (calCreateSpecialFunctionsForm 'abAliasSignalForm (list (list fsample 0:0 180:20 90) (list fmin 0:30 180:20 90) (list fmax 0:60 180:20 90) ) ) ) ) Regards, Andrew.

Forum Post: RE: Changing net on vias

$
0
0
Hello Dave Im using this skill, I really like it a lot, thank you for sharing! After I change some vias to a new net I need to right click and the select done on the menu to finish the command, if I click F6 (done) it doesnt works, is this a bug related to a hotfix? is there a way to use F6 also as done? Thank you Alberto

Forum Post: RE: Abrupt closing of Allegro PCB Designer software

$
0
0
I tried the option Tools-> Database Check option. There were some errors in the board which were fixed by the software. After this step, I could update the DRC and everything worked smoothly. No issues with software or license as such. Thank you so much for the help Steve!

Forum Post: RE: User Defined Skill Function - Alias Waveform

$
0
0
Thanks, the function works fine now: ------------------------------------------------- /* AliasSignal.il Language SKILL Date Feb 20, 2017 Modified Feb 21, 2017 By M.L.Cunningham Performs an ideal aliasing of a signal. You specify the sampling frequency, half of which it (effectively) folds down all the signal into. ; register the AliasSignal() special function with the calculator RegAliasSignalSpecialFunction() ; example of usage: AliasSignal ((getData("out" ?result "noise")**2) 2G 1K 100G) NOTE: It is important that the appropriate signal be passed to the function (i.e. a power quantity). ****************************************************/ /******************************************************************************* * DISCLAIMER: The following code is provided for Cadence customers to use at * * their own risk. The code may require modification to satisfy the * * requirements of any user. The code and any modifications to the code may * * not be compatible with current or future versions of Cadence products. * * THE CODE IS PROVIDED "AS IS" AND WITH NO WARRANTIES, INCLUDING WITHOUT * * LIMITATION ANY EXPRESS WARRANTIES OR IMPLIED WARRANTIES OF MERCHANTABILITY * * OR FITNESS FOR A PARTICULAR USE. * *******************************************************************************/ /*************************************************************** * * * (CreateAliasSignalForm) * * * * Create the form for the aliased signal * * * ***************************************************************/ (procedure (CreateAliasSignalForm) (let (fsample fmin fmax xVec startfreq endfreq len) (setq fsample (ahiCreateStringField ?name 'fsample ?prompt "Sampling Frequency" ?value "" )) (setq fmin (ahiCreateStringField ?name 'fmin ?prompt "Min Freq" ?value "0" )) (setq fmax (ahiCreateStringField ?name 'fmax ?prompt "Max Freq" ?value "1G" )) (calCreateSpecialFunctionsForm 'AliasSignalForm (list (list fsample 0:0 210:20 130) (list fmin 0:30 210:20 130) (list fmax 0:60 210:20 130) ) ) ) ) /******************************************************************** * * * (AliasSignalSpecialFunctionCB) * * * * Callback for the alias signal special function, which assembles * * the expression from the form values * * * ********************************************************************/ (procedure (AliasSignalSpecialFunctionCB) (calCreateSpecialFunction ?formSym 'AliasSignalForm ?formInitProc 'CreateAliasSignalForm ?formTitle "Alias Signal" ?formCallback "calSpecialFunctionInput( 'AliasSignal '(fsample fmin fmax))" )) /*************************************************************** * * * (RegAliasSignalSpecialFunction) * * * * Register the alias signal function * * * ***************************************************************/ (procedure (RegAliasSignalSpecialFunction) (calRegisterSpecialFunction (list "AliasSignal" 'AliasSignalSpecialFunctionCB)) t ) /*************************************************************** * * * (AliasSignal waveform fsample fmin fmax) * * * * Given a waveform, a sampling freq, and freq range compute * * the aliased signal. * * * ***************************************************************/ procedure(AliasSignal(waveform fsample fmin fmax) cond( ;--------------------------------------------------------------------- ; Handle ordinary waveform ;--------------------------------------------------------------------- (drIsWaveform(waveform) let((len lastX sourceYVec xVec yVec clippedwave (result 0) nyqband nmax) ;------------------------------------------------------------------ ; Clip the signal and alias the signal in the range specified ;------------------------------------------------------------------ clippedwave=clip(waveform fmin fmax) xVec=drGetWaveformXVec(clippedwave) len=drVectorLength(xVec) lastX=drGetElem(xVec sub1(len)) ; Find the maximum nyquist sideband nmax=ceiling(lastX/(fsample/2.0)) ; Sum all of the signal of the clipped waveform into 1st nyquist for(n 0 nmax-1 nyqband= if(oddp(n) then rshift(flip(clip(clippedwave n*fsample/2 (n+1)*fsample/2)) (n+1)*fsample/2) else lshift(clip(clippedwave n*fsample/2 (n+1)*fsample/2) n*fsample/2) ) result=result+nyqband ) ;------------------------------------------------------------------ ; Copy units and axis name across from source waveform ;------------------------------------------------------------------ sourceYVec=drGetWaveformYVec(waveform) yVec=drGetWaveformYVec(result) yVec->units=sourceYVec->units yVec->name=sourceYVec->name result ) ) ; waveform ;--------------------------------------------------------------------- ; Handle family ;--------------------------------------------------------------------- (famIsFamily(waveform) famMap('AliasSignal waveform fsample fmin fmax) ) ; family (t error("AliasSignal - can't handle %L\n" waveform) ) ) ; cond )

Forum Post: RE: Can i make the design rule check blind to a specific layer?

$
0
0
So what do u mean by draw in"layers". Isn't that what we normally do?

Forum Post: RE: Can i make the design rule check blind to a specific layer?

$
0
0
I said if you draw everything on layers the DRC rules know nothing about . I presume you don't normally draw anything on special layers that aren't known to the DRC rules... Andrew

Forum Post: RE: Can i make the design rule check blind to a specific layer?

$
0
0
ah Ok. Got you. Exactly that is what I was getting at. So, is there an easy way to create a layer without messing up the kit (that is why I put my other question regarding making a copy of the kit). But if I can just create a custom layer for myself that does not bring about much hassle, I can just do it right away. Thanks Andrew

Forum Post: RE: Can i make the design rule check blind to a specific layer?

$
0
0
Yes, my answer to your other question gives you an easy way to create a custom layer without disturbing the Design Kit.

Forum Post: RE: Can i make the design rule check blind to a specific layer?

$
0
0
Ok. Thanks Andrew. I appreciate it.

Forum Post: RE: Abrupt closing of Allegro PCB Designer software

$
0
0
I have found the software to crash frequently upon Autosave.

Forum Post: How to add a new textblock through SKILL?

$
0
0
Hi, I am trying to see if a textblock exists, else trying to add a new one with the new parameters. I am able to access the existing text blocks through the axlGetParam("paramTextBlock: ") command. But, I am unable to figure out how to add a new textblock. I recorded the actions to create a textblock to a .scr script and got the following. How can I achieve the same functionality through SKILL. setwindow pcb trapsize 1 generaledit prmed setwindow form.prmedit FORM prmedit text_setup_button setwindow form.textblock FORM textblock add FORM textblock done setwindow form.prmedit FORM prmedit apply FORM prmedit done setwindow pcb generaledit

Forum Post: RE: How to add a new textblock through SKILL?

$
0
0
try using axlDBTextBlockCreate()

Forum Post: RE: Issues with vector stimulus and spectre

$
0
0
Hi Andrew, Wow, that explains a lot of unexpected behavior (and why it started working when I decided to leave "OUT" - seems spectre silently filled the "iiiii" in that case). I would have never guessed! Thanks! And thanks for filing the CCR.

Forum Post: RE: Continuous Path/Routing with Varying Width

$
0
0
Hi Andrew, Many thanks for the response. Yes this is the answer of what I wanted to have. Best regards, Can

Forum Post: Eagle to Allegro Conversion

$
0
0
I am having ns_eagle2allegro configured and trying to convert a .brd file to Orcad readable .brd file. I am receiving an error as ' Translation stopped! Data must be in XML Format! ' in the log. Please support . Thanks Abhishek

Forum Post: RE: Select cell view from lib manager

$
0
0
Hi Andrew, I have one more problem. I have a selectorField in my code declared as follows: ; Directory Select allows user to select the directory where to save the files dataPath = hiCreateFileSelectorField( ?name 'dataPath ?mode 'directoryOnly ?prompt "Save the file to: " ?value "Please enter the path" ?defValue "~/Desktop/scripts/scriptOutputs" ?callback "validateDataPath()" ?editable nil ?invisible t ) If I select any directory except root, the directory displayed in the textbox is correct, however if I choose the root or a directory that is directly under the root (eg. etc, dev, etc) I will get as output the value "./../../../../../" for root and "./../../../../../etc" for"etc" . However if I choose a directory that is another level below (eg. "/etc/fonts"), it will be displayed correctly. Can you help me please ? Best regards, Jose

Forum Post: pspice error-undefined float property

$
0
0
Hello, I am facing below error while simulation in psice, INFO(ORCAP-2191): Creating PSpice Netlist INFO(ORNET-1041): Writing PSpice Flat Netlist d:\dc workspace\sasa project simulation\try2\orcad design 170104\sasa_iii_hardware_schematic-PSpiceFiles\0-BlockDiagram\0-BlockDiagram.net WARNING(ORNET-1119): The part/device cannot be simulated. No PSpiceTemplate found on 1.J100, ignoring this part/device from simulation netlist. Use Place->PSpice Component...->Search to place simulation ready part ERROR(ORNET-1103): Undefined FLOAT property '' 13 pin 'RSTnew' ERROR(ORNET-1103): Undefined FLOAT property '' 11 pin 'mPORSTnew' ERROR(ORNET-1103): Undefined FLOAT property '' 11 pin 'sCALnew' help me to resolve the issue. Regards DC

Forum Post: RE: Select cell view from lib manager

$
0
0
Hi Jose, If you want to resolve the path (i.e. not use relative components like this), just add: dataPath->hiSimplifyFilename=t Regards, Andrew.
Viewing all 62626 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>