This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TPLD1202-Q1:延迟元件的 InterConnect Studio 波形仿真问题

Guru**** 2478765 points
Other Parts Discussed in Thread: TPLD1202

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/simulation-hardware-system-design-tools-group/sim-hw-system-design/f/simulation-hardware-system-design-tools-forum/1482482/tpld1202-q1-interconnect-studio-waveform-sim-problems-with-delay-elements

器件型号:TPLD1202-Q1
主题中讨论的其他器件:TPLD1202

工具与软件:

我正在尝试将 PLL 配置为接受150kHz PWM 信号、并提供300kHz 同步输出和两个延时时间(2.2uS 和4.4uS) PWM 信号。 第一个 PWM 周期产生了两个延时 PWM 信号、但下一个周期导致矮脉冲和漏脉冲。 300kHz 同步脉冲看起来正常。 时钟在25MHz 上。 我尝试了10KHz 的计时、延迟完全不起作用。

下面是电路:

这是 sim 文件,我认为(隐藏?):

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Christopher、您好!

    它看起来与 ICS 文件看起来不一样。 是否再次发送? 如果没有用于延迟元素和计数器的确切规格、就很难正确构建此图。

    您是否还可以向我发送仿真视图、其中包含值得输入的多个周期? 我想看看这个问题是否会重复出现。

    此致!

    Ian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    /**
    *这些参数是在生成该文件时使用的。 它们将自动应用于后续负载
    *通过 GUI 或 CLI 运行 CLI 并使用'--help'获取有关如何覆盖这些参数的更多信息。
    *@cliArgs --设备"TPLD1202_DYY_TL"-部件"默认"-封装"DYY (SOT-23-THN、14)"-产品"TPLD@1.3.1+869"
    *@v2CliArgs --设备"TPLD1202"-封装"DYY (SOT-23-THN、14)"-产品"TPLD@1.3.1+869"
    *@版本{"tool":"1.22.0+3893"}
    */

    /**
    *导入此配置中使用的模块。
    */
    const CNT = scripting.AddModule ("Scripting"/ti/tpld/CNT、{}、false);
    const cnt1 = cnt.addInstance();
    const DLY = scripting.AddModule ("scripting.AddModule"/ti/tpld/DLY、{}、false);
    const DLY1 = DLY.addInstance();
    const DLY2 = DLY.addInstance();
    const OSC = scripting.AddModule ("scripting.AddModule"/ti/tpld/OSC、{}、false);
    const OSC1 = OSC.addInstance();
    const PIN = scripting.AddModule ("Scripting"/ti/tpld/PIN、{}、false);
    const PIN1 = PIN.addInstance();
    const PIN2 = PIN.addInstance();
    const PIN3 = PIN.addInstance();
    const PIN4 = PIN.addInstance();
    const PIN5 = PIN.addInstance();
    const Simulation = scripting.AddModule ("/ti/tpld/Simulation);

    /**
    *将自定义配置值写入导入的模块。
    */
    CNT1.$name ="cnt0";
    CNT1.clk_sel2 ="ext";
    CNT1.DATA = 27;
    CNT1.hw.$assign ="CNT_FSM_0";

    DLY1.$name ="dly0";
    dly1.clk_sel2 ="ext";
    dly1.cnt_init = 1;
    DLY1.MODE_SYNC = 1;
    DLY1.DATA = 25;

    DLY2.$name ="dly1";
    dly2.clk_sel2 ="ext";
    dly2.cnt_init = 1;
    DLY2.MODE_SYNC = 1;
    DLY2.DATA = 25;

    OSC1.$name ="osc0";
    OSC1.cntl_in = 1;
    OSC1.src_ext = 1;
    OSC1.OUT1_SEL = 2;
    OSC1.FORCE_pwron = 1;

    pin1.$name ="pin1";
    pin1.sim ="方形";
    OSC1.extclk = PIN1;
    pin1.hw.$assign ="IO8";
    pin1.square.$name ="ti_tpld_simulationOptions_SQUARE0";
    pin1.square.period ={val:40、单位:"ns"};
    pin1.square.Duty = 40;

    PIN2.TYPE ="DOUT";
    PIN2.$name ="计数器/28";
    PIN2.$topLabel ="Counter/28";

    pin3.$name ="PWM_IN";
    pin3.sim ="方形";
    pin3.$topLabel ="PWM_IN";
    pin3.square.$name ="ti_tpld_simulationOptions_SQUARE1";
    pin3.square.period ={val:6.7、单位:"us"};
    pin3.square.Duty = 40;

    PIN4.TYPE ="DOUT";
    PIN4.$name ="pwm_dly1";
    PIN4.$topLabel ="pwm_dly1";

    PIN5.TYPE ="DOUT";
    PIN5.$name ="pwm_dly2";
    PIN5.$topLabel ="pwm_dly2";

    const system = scripting.AddModule ("scripting.AddModule"/ti/tpld/SYSTEM、{}、false);

    simulation.tstop ={val:20、单位:"us"};
    simulation.tstep ={val:10、单位:"ns"};

    /**
    *模块之间的连接
    */
    scripting.connect (CNT1、"out"、PIN2、"in");
    scripting.connect (DLY1、"out"、PIN4、"in");
    scripting.connect (DLY1、"out"、DLY2、"in");
    scripting.connect (DLY2、"OUT"、PIN5、"IN");
    scripting.connect (OSC1、"OUT0"、DLY1、"CLK");
    scripting.connect (OSC1、"OUT0"、DLY2、"CLK");
    scripting.connect (OSC1、"out1"、CNT1、"CLK");
    scripting.connect (PIN3、"out"、DLY1、"in");

    /**
    在图形中显示的模块的*(x,y)坐标
    */
    CNT1.$position =[65、15];
    DLY1.$Position =[-45、-165];
    DLY2.$Position =[65、-75];
    OSC1.$POSITION =[-180、15];
    pin1.$position =[-350、40];
    PIN2.$POSITION =[245、30];
    pin3.$position =[-350、-160];
    PIN4.$POSITION =[245,-150];
    PIN5.$POSITION =[245、-60];

    /**
    *用于解锁引脚/外设的 Pinmux 解决方案。 这可确保将来对自动解算器进行细微更改
    *该工具的版本不会影响您最初看到的 pinmux。 可以按照完全删除这些行
    *从头开始重新解决。
    */
    DLY1.hw.$indicestSolution ="CNT_FSM_2";
    DLY2.hw.$indicestSolution ="CNT_FSM_1";
    OSC1.HW.$indicestSolution ="OSC_0";
    PIN2.HW.$INPTIESTELESTSolution ="IO3";
    pin3.hw.tiinestSolution ="IN0";
    PIN4.HW.$INPTIESTELESTSolution ="IO2";
    PIN5.HW.$INPESTELEestSolution ="IO1";
    system.hw.$indicestSolution ="系统";

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    40us 仿真 看起来是重复的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Christopher、您好!

    看起来这是 以这种高速运行时的外部时钟仿真存在的问题。 将输入脉冲更改为7us 固定值、并使用内部25 MHz 时钟。 我是作为仿真错误报告的。

    此致!

    Ian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Ian。  切换到内部25MHz 时钟导致了延迟的行为。