Dear Andrew, Follow a link to my dropbox it contains: the files "input.scs" and spectre.out", the pdf's article and some figures it were captured from my results. These figures shows how my simulation it is wrong. www.dropbox.com/.../AAA-ENlKpXe4vQeTFwyAETiWa Best regards, Eduardo.
↧
Forum Post: RE: S-parameters from a RF Circuit - Circulator created from LC resonators
↧
Forum Post: RE: How do I instantiate a UVM agent with a monitor, functional coverage and scoreboard in a legacy testbench
Thanks a lot for your help Tim. You were right. I had an error in my scripts, omitting the tc_driver file when "-uvm" option was active. I Fixed it. Now I can instantiate and see both environments running together, the non-uvm systemC and the passive UVM SV. I am just having a little problem with the end of simulation. The systemC environment finishes the simulation trough sc_stop() and the UVM environment is unable to run the report_phase after that. The way I managed to add both environments to run together on incsim was: I created an uvm test which instatiates an environment with all agents configured to passive (monitors and collectors only). On the run_phase of this test I had to raise an objection, because it was finishing on time zero through UVM. Am I making it right? class test_cov_only extends uvm_test ... task run_phase(uvm_phase phase); `uvm_info(get_type_name(), "Starting test", UVM_MEDIUM) phase.raise_objection(this); //phase.drop_objection(this); // no objection drop to avoid end of test on time zero endtask: run_phase ... endclass I know I could probably edit my systemC stimulus routines to comunicate with the SV-UVM passive test environment. I'm trying to avoid that since I hope there is an easier way to accomplish this "sincronization" between the environments. If there is no other way, I will probably leave it like it is now (no uvm report_phase is ran). At least I'm getting the coverage I wanted...
↧
↧
Forum Post: RE: Allegro Design Entry HDL (Console and Hierarchy Vanished)
I also have this problem this morning and I see there is no answer to the original question since 14 Jan 2014??? Anyone got an idea of how to fix this?
↧
Forum Post: RE: library paths
That's a great tip. Thanks!
↧
Forum Post: RE: How to access the auto calculation command or function of some devices' second-order parameters (e.g., SCA), better in command line form?
Hi Andrew, After I played with the ADE XL I really learned a lot and benefited from those new features regardless of the more complex settings and some learning efforts. Initially I thought there were only w, l, fingers, and m that can be set as “Parameters”, but once I chose Variables and Parameters => from Whitelist by default to All, I could choose any parameter to be a “Parameter” and callbacks are enabled for sure. That’s a huge convenience. A lot of thanks here. One last thing that bothers me is that I do not know how to specify a Parameter dependent variable. For example, I can specify fingers (nf) as a Parameter, but when I do the sweeping, from nf = 1 to 8, w=8u, it goes to cases of 1*8u, 2*8u, 3*8u, …, 8*8u which is not what I want. If I also specify w to be a Parameter, then it will generate 64 points and only 8 of them are desired. I tried to put M0/nf and M0/w into a Group Parameter Set and specify nf changes from 1 to 8 with 8 steps, and w changes from 8u to 1u with 8 steps as well. Then it gives me 8 simulations but with incorrect combination. That is, 1*8u, 2*7u, 3*6u,…,8*1u (linear changes). Only the first and last simulations are wanted. Certainly I can specify the 8 changes of w in the inclusion list individually but very low efficient in a large sweep case. I tried to put ‘M0/w’ = 8u/nf with 8 steps in the Group Parameter Set with the ‘M0/nf’, but the XL treats the nf as a variable rather than a Parameter. I researched a little bit about Match Parameters and Ratio Parameters but do no help on this case. Do you have any idea on this? Thanks, Alex
↧
↧
Forum Post: RE: How to access the auto calculation command or function of some devices' second-order parameters (e.g., SCA), better in command line form?
Alex, It's not completely obvious to me what you actually want, but you could create a global variable called (say) "nf" which you sweep from 1 to 8, and then in the parameters, set M0/nf to be nf (no sweep) and M0/w to be 8u/nf. Does that do what you want? Regards, Andrew.
↧
Forum Post: RE: S-parameters from a RF Circuit - Circulator created from LC resonators
Eduardo, It's not entirely obvious what you're expecting, but I would recommend doing the following: Turn on harmonic balance on the form (rather than shooting) Remove the tstab - I doubt you need it Remove the 1pF cmin - I doubt you need that (and that's pretty large too for a capacitance from every node to ground which is there as a convergence aid). Not sure what your Diode_Model looks like, but having done this with a simple diode model, I don't get such lumpy results. It's not obvious to me if you're really trying to find the s-parmeters between ports 1 and 2 or 3 with no frequency translation (i.e input and output frequencies are 140M->200MHz). I didn't read the paper. I'm not sure whether you had the rights to effectively re-publish it in your dropbox. Regards, Andrew.
↧
Forum Post: RE: Capture CIS_Show Footprint
Hi Steve, I'm a bit puzzled on this as I'm seeing strange results. Take this example; I create a netlist from a project and am able to place the component on a pcb, so evidently my paths are set up correctly in pcb editor: Just to double check, here is my user preference snapshot, which clearly includes F:/cadence/symbols: Here is my capture.ini file, showing Dir2 as F:/cadence/symbols: However when I RMB -> Show footprint in capture, I get the same message; "Allegro footprint ... not found in search path" Any ideas why this would be the case? Thanks in advance.
↧
Forum Post: RE: S-parameters from a RF Circuit - Circulator created from LC resonators
Andrew, Sorry about the article. I read the "right and permissions" and I discovered that is illegal. Therefore, I removed from my dropbox. About the simulation, my goal is: see the power to flow from port 1 to 2 or port 2 to 3 or port 3 to 1, but not in the reverse direction. Beyond that the results need to show the non-reciprocity, e.g., S11 = -20dB, S31 = -20dB and S21 = 0 dB when the frequency is 170MHz (with BW = 10Mhz), the RF signal is inserted at port 1 and Vdc=1.99V. The varactor (SMV1237 - the same used on article) was made following the spice model. ( Follow the link: www.skyworksinc.com/.../Varactor_SPICE_Model_AN_200315C.pdf ). I made the simulations for to validate this model and my results are compatible with the one showed on spice model and with the description on article (C = 30pF when Vdc = 3V). The Diode_Model represents the diode used on varactor model designed. The "diode.scs" (represents Diode_Model) and "input_varactor.scs" (from varactor's testbench) were added on dropbox. The figures on the folder contains the results of two situations. First one represents the case when no modulation signal was inserted. The article results shows that S21 are equal to S31 in that case described above. This means that without signal modulation this device behaves as power divider and not as a circulator. The second situation represents the case with the signal modulation and on this case, the device behaves as a circulator. The article reports that Vm = 0.6V (modulation signal voltage) and has no information about the RF signal. It also reports that Vdc = 1.99V (DC voltage inserted on ports 4 to 6 on the device). The Vdc is a frequency adjust. This means that if Vdc >= 1.73V and Vdc =< 4.50V the resonance zone is from 160Mhz to 210MHz. When Vdc=1.99 the device resonance zone is 170MHz. On article besides the simulation it is contains the experimental setup. In this case, the signals RF and Modulation are generated by VNA (RF from 140MHz to 200Mhz) and Waveform generator (for 15MHz signal). The modulation signal is passes through a Power Divider and then by a Phase Shifter (because the three modulation signals need to have 120º on phase each other) and finally by a Diplexer. The low-pass ports of three diplexers receives the Modulation signals and the high-pass ports receives the VNA. Then the output of diplexer is connected at ports 1 to 3 of device. I will change the setup with your specification as soon as possible and reports here. Best regards, Eduardo.
↧
↧
Forum Post: RE: S-parameters from a RF Circuit - Circulator created from LC resonators
The link for to buy the article and to see some important informations, like the results graphics: www.nature.com/.../nphys3134.html
↧
Forum Post: RE: S-parameters from a RF Circuit - Circulator created from LC resonators
I was simulated again with your specifications. The results were the same, but the time of simulation was reduced. Here the input.scs: // Generated for: spectre // Generated on: Sep 26 22:40:41 2016 // Design library name: TCC2 // Design cell name: circulador_1_TB // Design view name: schematic simulator lang=spectre global 0 parameters Fm=15.00000M Vm=600m C1=300p Cc=5.6p Cdcb=10u L1=270n L2=27n \ Lc=1u Lrfc=2.7u Vdc=1.99 Frf=170M include "/usr/local/IC614/tsmc13/tsmc13rf/../models/tsmc13rf.scs" include "/home/eslam/TCC2/diode.scs" // Library name: TCC2 // Cell name: varactor_SMV1237 // View name: schematic subckt varactor_SMV1237 P_anode P_cathode D0 (net010 P_cathode) Diode_Model area=1 R0 (net07 net010) resistor r=130.00m C0 (net07 P_cathode) capacitor c=9p L0 (P_anode net07) inductor l=1.7n ends varactor_SMV1237 // End of subcircuit definition. // Library name: TCC2 // Cell name: circulador_1 // View name: schematic subckt circulador_1 Porta1 Porta2 Porta3 Porta4 Porta5 Porta6 L14 (net30 Porta6) inductor l=Lrfc L13 (net33 0) inductor l=L1 L12 (net27 Porta3) inductor l=Lc L11 (net27 net32) inductor l=L2 L10 (net36 net27) inductor l=L2 L9 (net24 Porta5) inductor l=Lrfc L8 (net34 0) inductor l=L1 L7 (net21 Porta2) inductor l=Lc L6 (net21 net35) inductor l=L2 L5 (net38 net21) inductor l=L2 L4 (net18 Porta4) inductor l=Lrfc L3 (net15 Porta1) inductor l=Lc L2 (net31 net15) inductor l=L2 L1 (net15 net39) inductor l=L2 L0 (net37 0) inductor l=L1 C11 (net30 net31) capacitor c=C1 C10 (net30 net33) capacitor c=Cdcb C9 (net32 net30) capacitor c=C1 C8 (net27 Porta3) capacitor c=Cc C7 (net24 net36) capacitor c=C1 C6 (net24 net34) capacitor c=Cdcb C5 (net35 net24) capacitor c=C1 C4 (net21 Porta2) capacitor c=Cc C3 (net15 Porta1) capacitor c=Cc C2 (net18 net37) capacitor c=Cdcb C1 (net18 net38) capacitor c=C1 C0 (net39 net18) capacitor c=C1 I7 (0 net30) varactor_SMV1237 I4 (0 net24) varactor_SMV1237 I0 (0 net18) varactor_SMV1237 ends circulador_1 // End of subcircuit definition. // Library name: TCC2 // Cell name: circulador_1_TB // View name: schematic I4 (RF1 RF2 RF3 Vbias Vbias Vbias) circulador_1 V0 (Vbias 0) vsource dc=Vdc type=dc PORT2 (RF3 0) port r=50 type=sine freq=Fm ampl=Vm sinephase=120 \ fundname="Modulation" PORT0 (RF1 0) port r=50 type=sine freq=Fm ampl=Vm sinephase=0 freq2=Frf \ dbm2=-101 sinephase2=0 fundname="Modulation" fundname2="RF" PORT1 (RF2 0) port r=50 type=sine freq=Fm ampl=Vm sinephase=-120 \ fundname="Modulation" simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \ tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \ digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \ checklimitdest=psf qpss qpss flexbalance=yes oversample=[1 1] funds=["Modulation" + "RF"] maxharms=[3 3] errpreset=conservative annotate=status qpsp qpsp sweeptype=absolute start=140M stop=200M + portharmsvec=[0 0 0 0 0 0] ports=[PORT0 PORT1 PORT2] + donoise=no annotate=status modelParameter info what=models where=rawfile element info what=inst where=rawfile outputParameter info what=output where=rawfile designParamVals info what=parameters where=rawfile primitives info what=primitives where=rawfile subckts info what=subckts where=rawfile saveOptions options save=allpub Here is the result graphic with S11, S21 and S31: This result shows that circulator is not working as it should. The signal inserted on port 1 is returning on all range frequency and the port 2 is not receiving the signal (less than -10dB on all frequency range). Also the port 3 is receiving almost the same signal that port 2. Regards, Eduardo.
↧
Forum Post: RE: Capture CIS_Show Footprint
Do you have the filename.dra as well as the filename.psm in this directory? The show footprint command uses the filename.dra.
↧
Forum Post: RE: S-parameters from a RF Circuit - Circulator created from LC resonators
Hi Eduardo, Not sure what simulator version you are using, but my curves are nothing like that lumpy - although the magnitude is similar. I didn't have your diode model so I just created a default diode mode: model Diode_Model diode Anyway, a couple of points: First of all, there's no need to have a large signal second frequency on PORT0 (the Frf frequency) unless you're trying to investigate the effect on the s-parameters of having a large signal blocker at the same frequency. If I turn this frequency off, and just do a single tone harmonic-balance pss (or hb analysis) followed by psp (or hbsp), I get the same results, even more quickly. However, the fact that you have this large signal is useful in this case. If you check the voltage at RF1 (the input) in dB, and compare it with that at RF2 and RF3, you'll see that there is appreciable attenuation (hard to directly compare with s21, s31) - but if that's not what you're expecting, it means you have a circuit problem. I suspect you could reproduce this with a transient simulation too. So you'll need to debug your circuit if it's not behaving as you expect. I don't think it's a simulator setup issue... perhaps you should talk with your supervisor/tutor? Regards, Andrew.
↧
↧
Forum Post: RE: ahb evc: Hw can I do a random back to back transfer with random address
Hi, thanks in advance. I have a similar question. I want to send multiple SINGLE bursts with no intervals in between. like 2-2-2-2-2-2-2-2... However, when I use the following source code, I got a couple of IDLE cycles like 2-2-0-2-2-2-0-2-0-2..., and I don't understand why. Can you help me? (I am using non_blocking_write api instead of do burst, so there will be no 1 cycle loss between bursts.) struct ahb_trans{ trans_type : vr_ahb_burst_kind; trans_dir : vr_ahb_direction; trans_size : vr_ahb_transfer_size; trans_addr : vr_ahb_address; trans_data : vr_ahb_data; }; extend vr_ahb_master_seq_kind : [ MY_SEQ ]; extend MY_SEQ vr_ahb_master_seq { !ahb_trans; for i from 0 to 10 { gen ahb_trans; non_blocking_write( ahb_trans.trans_addr, {ahb_trans.trans_data}, ahb_trans.trans_type, ahb_trans.trans_size); }; };
↧
Forum Post: RE: S-parameters from a RF Circuit - Circulator created from LC resonators
Hi Andrew, I am using the Virtuoso® version IC6.1.4. Indeed using the PSS and PSP with a single tone the results are the same. If you see the article results graphic (free on official publisher's website: www.nature.com/.../nphys3134.html ) they are very different and compatible with the ferrite circulator's theory. I will try to make a transient simulation too. The diode model that was used on varactor SMV1237: model Diode_Model diode is=1.00e-14 rs=0 n=1 tt=0 cj0=66.16e-12 m=5.3 vj=10 eg=1.11 xti=3 kf=0 af=1 fc=0.5 ibv=1e-3 isr=0 nr=2 ikf=0 nbv=1 ibvl=0 nbvl=1 tbv1=0 tnom=27 ffe=1 I will talk with my professor tomorrow. We were using ADS® software in recent months, but the results were wrong too. Any news I will post here. Thanks for all suggestions. Regards, Eduardo.
↧
Forum Post: RE: S-parameters from a RF Circuit - Circulator created from LC resonators
Hi, I did the simulation QPSS and QPSP replacing the varactor for a capacitor. On article have an information that says when VDC = 3V, the varactor has a capacitance 30pF. Then the results were better, but its still not correct. I think it the varactor model is wrong, but the manufacturer offers only that spice model. Input.scs: // Generated for: spectre // Generated on: Sep 27 09:57:10 2016 // Design library name: TCC2 // Design cell name: circulador_2_TB // Design view name: schematic simulator lang=spectre global 0 parameters C1=300p C2=30p Cc=5.6p Cdcb=10u Fm=15M Frf=170M L1=270n L2=27n \ Lc=1u Lrfc=2.7u phi=120 Vdc=3.00 Vm=0.6 include "/usr/local/IC614/tsmc13/tsmc13rf/../models/tsmc13rf.scs" // Library name: TCC2 // Cell name: circulador_2 // View name: schematic subckt circulador_2 Porta1 Porta2 Porta3 Porta4 Porta5 Porta6 L14 (net30 Porta6) inductor l=Lrfc L13 (net33 0) inductor l=L1 L12 (net27 Porta3) inductor l=Lc L11 (net27 net32) inductor l=L2 L10 (net36 net27) inductor l=L2 L9 (net24 Porta5) inductor l=Lrfc L8 (net34 0) inductor l=L1 L7 (net21 Porta2) inductor l=Lc L6 (net21 net35) inductor l=L2 L5 (net38 net21) inductor l=L2 L4 (net18 Porta4) inductor l=Lrfc L3 (net15 Porta1) inductor l=Lc L2 (net31 net15) inductor l=L2 L1 (net15 net39) inductor l=L2 L0 (net37 0) inductor l=L1 C11 (net30 net31) capacitor c=C1 C12 (net18 0) capacitor c=C2 C10 (net30 net33) capacitor c=Cdcb C9 (net32 net30) capacitor c=C1 C8 (net27 Porta3) capacitor c=Cc C7 (net24 net36) capacitor c=C1 C13 (net24 0) capacitor c=C2 C6 (net24 net34) capacitor c=Cdcb C5 (net35 net24) capacitor c=C1 C4 (net21 Porta2) capacitor c=Cc C14 (net30 0) capacitor c=C2 C3 (net15 Porta1) capacitor c=Cc C2 (net18 net37) capacitor c=Cdcb C1 (net18 net38) capacitor c=C1 C0 (net39 net18) capacitor c=C1 ends circulador_2 // End of subcircuit definition. // Library name: TCC2 // Cell name: circulador_2_TB // View name: schematic I0 (net2 net3 net4 net1 net1 net1) circulador_2 V0 (net1 0) vsource dc=Vdc type=dc PORT1 (net3 0) port r=50 type=sine freq=Fm ampl=Vm sinephase=1*phi \ freq2=Frf dbm2=0 sinephase2=0 fundname="Modulation" fundname2="RF" PORT2 (net4 0) port r=50 type=sine freq=Fm ampl=Vm sinephase=-1*phi \ freq2=Frf dbm2=0 sinephase2=0 fundname="Modulation" fundname2="RF" PORT0 (net2 0) port r=50 type=sine freq=Fm ampl=Vm sinephase=0*phi \ freq2=Frf dbm2=0 sinephase2=0 fundname="Modulation" fundname2="RF" simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \ tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \ digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \ checklimitdest=psf qpss qpss flexbalance=yes oversample=[1 1] funds=["Modulation" + "RF"] maxharms=[3 3] errpreset=conservative annotate=status qpsp qpsp start=140M stop=300M portharmsvec=[0 0 0 0 0 0] + ports=[PORT0 PORT1 PORT2] annotate=status modelParameter info what=models where=rawfile element info what=inst where=rawfile outputParameter info what=output where=rawfile designParamVals info what=parameters where=rawfile primitives info what=primitives where=rawfile subckts info what=subckts where=rawfile saveOptions options save=allpub] Results: At one frequency range, the S11 is lower than S21 and S31, but the device is behaving like a power divider (S21 = S31) and not like a circulator. Regards, Eduardo.
↧
Forum Post: RE: Capture CIS_Show Footprint
Yes I do...
↧
↧
Forum Post: RE: Capture CIS_Show Footprint
There are a few possible issues. 1. capture.ini file has white space carriage returns in so remove them (like in between type=allegro and [allergro footprints]. 2. not sure the symbols+pads is a good directory name so try renaming to symbols_pads. 3. if it's just that footprint run a DBDoctor on the filename.dra and then re-create the psm file. 4. Can you open any board and place the pcb footprint into a design? If not what errors are you seeing in the command window?
↧
Forum Post: RE: S-parameters from a RF Circuit - Circulator created from LC resonators
Eduardo, If I used the diode model you gave, I get a similar response to your earlier posts. With the change of the varactor to a capacitor, you now have a completely passive network - it's even more unlikely that this is anything other than a circuit problem (all your components are ideal). I'll leave this for you to debug the design problem with your professor. Regards, Andrew.
↧
Forum Post: RE: Capture CIS_Show Footprint
1. Updated capture.ini file, now looks like below. Is that better? 2. changed dir name to pads_symbols as recommended. 3. ran dbdoctor, no errors, recreated psm file. 4. Able to place on a blank board, and symbol is correctly referenced from pads_symbols directory in allegro: I also tried with a 2nd schematic symbol+footprint to verify it wasn't unique to this footprint and had the same results; I am able to place it on a PCB from a schematic, but in schematic view I can't show footprint
↧