精华内容
下载资源
问答
  • 多路同步输出DA转换器.pdf
  • 为了给差频太赫兹(THz)光辐射提供较为理想的光源, 研究了两台10 μm波段光栅选支射频波导CO2激光器的脉冲激光同步输出方法。结果表明, 将调节触发激光脉冲的延时方法和调节压电陶瓷(PZT)电压的方法配合, 可以使两个...
  • 行业分类-物理装置-波形同步输出方法及装置.zip
  • stm32(正点原子开发板)使用PWM同步输出50k、30k、10k方波
  • 行业资料-交通装置-一种同步输出脑电数据的脑电控制轨道车.zip
  • 电子政务-多路同步输出臭氧发生电源.zip
  • FPGA源同步输出时序约束(二)

    千次阅读 2017-08-10 14:43:24
    fpga 源同步输出约束 最大最小延迟值计算 对应约束指令

    FPGA源同步输出约束(一)主要是介绍了输出时钟的几种产生方式以及对应的约束指令,本节主要介绍源同步输出延迟的几种约束方法:(1)system-centric 以系统为中心进行约束 (2)FPGA-centric 以fpga为中心进行约束。以及输出最大最小延迟值的计算推导,最后用约束指令描述出来。下文是以从spec上得到fpga和外部器件的特性参数 进行约束,至于用示波器测量fpga时钟,数据输出端口延迟的方法暂时不做介绍。

    1、system-centric
    该方法是将fpga部分和外部器件联合起来构成一个系统 进行时序约束分析,其特点是要用到外部器件的一些参数 比如tco,tsu,th 或fpga 到外部器件间的时钟,数据走线延迟 。所以如果选用该方法时,你需要知道外部器件的参数。
    (1)用外部器件的tsu ,th和时钟,数据的走线延迟 来进行输出最大最小延迟约束
    —-输出最大延迟约束:即数据路径的最大延迟+时钟路径的最小延迟+外部器件的tsu
    这里写图片描述
    对于源同步SDR输出约束指令如下:
    output_clock:即 源同步的输出时钟
    data_out*: 即源同步输出的数据
    这里写图片描述
    对于源同步DDR输出,其上升下降沿都需要约束,约束指令如下:
    这里写图片描述

    —-输出最小延迟约束:即数据路径的最小延迟+时钟路径的最大延迟-外部器件的th
    这里写图片描述
    对于源同步SDR输出约束指令如下:
    这里写图片描述
    对于源同步DDR输出,其上升下降沿都需要约束,约束指令如下:
    这里写图片描述

    2、FPGA-centric
    该方法是以fpga为中心,进行源同步输出延迟约束。fpga-centric是根据输出时钟和数据间的一个时钟偏斜去进行输出约束的。时钟偏斜等于时钟沿和数据沿之间的时间差,对于时钟数据边沿对齐接口 时钟偏斜等于0;对于时钟数据中心对齐,时钟偏斜等于UI/2。SDR接口UI等于时钟周期,DDR接口UI=时钟周期/2。
    用FPGA-centric进行约束,你只需要知道fpga的输出时钟和数据间的偏斜值tskew就能进行输出约束。下面是我查找到的 altera cyclone v 芯片datasheet上给出RGMII接口的输出时钟和数据间的偏斜值。
    这里写图片描述
    fpga-centric方法 即 时钟 数据时序要满足下面的公式:
    这里写图片描述
    数据的最早到达时间必须比时钟到达时间-skew 大,否则不能满足外部器件的th保持时间。
    数据的最晚到达时间必须比时钟到达时间+skew 小 ,否则不能满足外部器件的tsu建立时间。

    时钟和数据间到达外部器件的时间关系如下图所示:
    这里写图片描述
    (1) 根据时钟数据间的建立保持关系进行源同步输出时序约束
    根据建立关系对输出最大延迟进行时序约束
    根据Equation 3 ,数据的最晚到达时间(data arrival +skew)必须比数据需求时间(clock arrival) 小 ,否则不能满足外部器件的tsu建立时间,下面是数据到达时间和数据需求时间的计算器公式。
    这里写图片描述
    根据时钟数据满足建立时间正裕量,如下
    这里写图片描述
    在源同步电路中,要求数据到达时间跟时钟到达时间一致,所以根据此把Equation6 进行简化得到下面Equation7的公式1以及输出最大延迟值计算公式2
    这里写图片描述
    对于源同步SDR输出约束指令如下:
    这里写图片描述
    对于源同步DDR输出,其上升下降沿都需要约束,约束指令如下:
    这里写图片描述

    根据保持关系对输出最小延迟进行时序约束

    根据Equation 3 ,数据的最早到达时间(data arrival -skew)必须比数据需求时间(clock arrival) 大 ,否则不能满足外部器件的th保持时间,下面是数据到达时间和数据需求时间的计算器公式。
    这里写图片描述

    下面是将Equation8,9的数据到达时间和数据需求时间代入后的公式
    这里写图片描述

    同样根据在源同步电路中,要求数据到达时间跟时钟到达时间一致,所以根据此把Equation10进行简化得到下面Equation11的公式1以及输出最小延迟值计算公式2,这里的latch和launch 是保持的latch 和launch。
    这里写图片描述
    对于源同步SDR输出约束指令如下:
    这里写图片描述
    对于源同步DDR输出,其上升下降沿都需要约束,约束指令如下:
    这里写图片描述
    (2)用early and late margins进行约束
    early margin等于minimum tco,late margin等于miximum tco。
    —-时钟数据中心对齐的DDR接口,进行时序最大最小延迟值的公式推导。
    这里写图片描述
    输出最大最小延迟值推导如下:
    这里写图片描述
    这里写图片描述

    下面的这4中数据时钟输出形式,只需要把上面公式里的clock offset,unit interval 替换成对应的值就可以了。
    —-时钟数据边沿对齐的SDR接口,进行时序分析约束。
    时钟数据的输出相位如下图所示,此时clock offset为0 ,UI等于时钟周期:
    这里写图片描述

    —-时钟数据中心对齐的SDR接口,进行时序分析约束。
    时钟数据的输出相位如下图所示,此时clock offset为时钟周期/2 ,UI等于时钟周期:
    这里写图片描述
    —-时钟数据边沿对齐的DDR接口,进行时序分析约束。
    时钟数据的输出相位如下图所示,此时clock offset为0 ,UI等于时钟周期/2:
    这里写图片描述
    —-时钟数据中心对齐的DDR接口,进行时序分析约束。
    时钟数据的输出相位如下图所示,此时clock offset为时钟周期/4 ,UI等于时钟周期/2:
    这里写图片描述

    展开全文
  • 本文主要介绍如何处理FPGA输出时钟和数据,感兴趣的朋友可以看看。
  • Python多线程同步输出1-100的数

    千次阅读 2019-10-16 11:28:58
    发生任务不同步的问题,因为只有一个主线程,而主线程同时只能完成一个任务,所以下一个任务就会等待> 上一个任务完成后才能继续运行。 代码如下: def print_num(): while True: print(1) def print_...

    一、多线程是什么

    我们的程序默认只有一个进程,进程中有一个主线程,但是有个时候我们进行多个任务同时工作的时候就会> 发生任务不同步的问题,因为只有一个主线程,而主线程同时只能完成一个任务,所以下一个任务就会等待> 上一个任务完成后才能继续运行。

    代码如下:

    def print_num():
    		while True:
    			print(1)
    	
    def print_str():
    	while True:
    		print(2)
    
    if __name__ == '__main__':
    	print_num()
    	print_str()
    

    像上述代码一样,因为只有一个主线程的原因,所以只能等待print_num()函数的任务结束后才能继续执行print_str()函数,这样就会造成我们的效率低下的问题。
    这里主要是讲述多线程同步输出数字,所以其他多线程理论就不再作过多的解释了,可以自行百度一下。

    二、threading模块

    threading模块是_thread模块的升级版,在_thread模块上做了很多的修改和优化,可以说是一个很不错的多线程模块了,所以本篇使用threading来做多线程的演示。

    Thread:生成一个新的线程,对上面的代码进行多线程运行
    import threading
    def print_num():
    		while True:
    			print(1)
    	
    def print_str():
    	while True:
    		print(2)
    
    if __name__ == '__main__':
    	t1 = threading.Thread(target=print_num,args=())	#target是指定函数(不要带括号),args是函数的参数(如果没有参数可以省略不写)
    	t2 = threading.Thread(target=print_str,args=())	#上面是print_num的线程,下面是print_str的线程
    	t1.start()	#运行t1线程
    	t2.start()	#运行t2线程
    

    输出结果:
    1
    2
    2
    1
    1
    1
    1
    2

    提示:输出结果的顺序是看谁运行速度的快慢决定的,你可以用time.sleep来拖慢某个线程的运行速度,以此更鲜明的看出对比

    Lock:将数据加一把锁,数据正在被操作时其他线程等待数据操作完毕后才会进行操作
    import threading
    def worker():
        global count
        while True:
            lock.acquire()	#加锁
            count += 1
            print(threading.current_thread(),count)
            lock.release()	#操作完成后释放锁
            if count >= 99:
                break
            time.sleep(1)
        print(1)
    
    def main():
        threads = []
        for i in range(2):	#控制线程的数量
            t = threading.Thread(target=worker,args=())
            threads.append(t)
        for i in threads:
            i.start()
        for i in threads:
            i.join()	#将线程加入到主线程中
    
    if __name__ == '__main__':
        lock = threading.Lock()
        count = 0
        main()
    

    输出结果:
    <Thread(Thread-1, started 14844)> 1
    <Thread(Thread-2, started 12112)> 2
    <Thread(Thread-2, started 12112)> 3
    <Thread(Thread-1, started 14844)> 4
    <Thread(Thread-2, started 12112)> 5
    <Thread(Thread-1, started 14844)> 6

    <Thread(Thread-1, started 14844)> 100

    这样就完成了多个线程来使数据相加。

    展开全文
  • FPGA源同步输出时序约束(一)

    千次阅读 2017-08-07 16:38:04
    同步输出 fpga

    下文主要介绍源同步输出时,输出时钟的几种产生方式以及相应的时钟约束指令
    源同步输出的信号有时钟和数据信号,输出时钟是由fpga产生的,对于输出时钟有多种产生方式,例如:
    1、通过fpga的锁相环产生输出时钟;
    2、通过fpga的ALTDDIO IP核产生输出时钟;
    3、通过状态机控制产生输出时钟;
    4、将驱动数据的时钟直接输出。

    通过产生时钟直接作为输出时钟 和用一个时钟去驱动ALTDDIO IP核 产生输出时钟 这两种是比较常用的方式。在fpga里驱动数据输出用的时钟和 用来驱动ALTDDIO IP核 的时钟 可以是由相同的锁相环产生的,也可以是由不同的锁相环产生的。具体要看你输出的信号类型
    以下情况可以用同一个锁相环:
    (1)中心或边沿对齐的SDR输出;
    (2)边沿对齐的DDR输出。
    以下情况应该用不同的锁相环:
    (1)中心对齐的DDR输出;
    (2)一个时钟直接作为驱动外部器件的时钟(这样可以补偿时钟和数据间的不同延迟);
    (3)输出时钟和数据中心或边沿对齐(比如时钟和数据延迟50°,这样的话就只能用锁相环去生成对应的延迟);
    (4)精确调试时钟和数据间的相位关系

    下面是几种常用的时钟输出方式及时钟约束命令:

    1、输入时钟直接输出:
    输入fpga的时钟直接用来作为输出的时钟和发送数据的时钟

    这里写图片描述

    对输入fpga的时钟和输出时钟做约束,命令如下:
    这里写图片描述
    2、用锁相环来产生两个独立的时钟:输出时钟和数据时钟。
    输出时钟和数据边沿对齐。
    这里写图片描述
    此时需与约束的时钟有:输入fpga时钟clk_in,通过锁相环生成的两个时钟,以及输出fpga的时钟clk_out
    这里写图片描述
    3、DDR输出数据与时钟中心对齐
    此时输出的时钟相对于输出数据有一个90°的相位偏移,用PLL去产生一个相对于数据有90°偏移的时钟。
    这里写图片描述
    此时约束输出时钟有一个90°的相位偏移
    这里写图片描述
    4、DDR输出时,输出时钟和数据时钟共用一个时钟,输出时钟通过例化的ALTDDIO IP核输出
    这里写图片描述
    约束指令如下:
    这里写图片描述
    5、同一锁相环产生驱动ALTDDIO 模块时钟和数据时钟
    PLL输出的两个端口 一个输出时钟发送到外部器件, 一个输出时钟用来发送数据到外部器件
    这里写图片描述
    约束指令如下:
    这里写图片描述
    6、同一锁相环产生输出到外部的时钟和驱动数据发送的时钟
    这里写图片描述
    约束指令如下:
    这里写图片描述

    展开全文
  • JS与Jquery之文本框输入并同步输出显示 JS与Jquery之文本框输入并同步输出显示
  • 同步双路PWM波输出

    2018-08-27 11:21:00
    基于labview与USB 6531数据采集卡的步进电机控制程序;同步输出两路脉冲信号,以实现同时控制两个步进电机的效果
  • 可以用下面两个代码 来加速cin 与cout ,这样cin的速度就和sanf差不多了...他的作用是关于 iostream和stdio的同步,让c++和c的输入出不在挂钩了(具体原理我也不清楚哈) 还有就是,用“\n”而不是 endl,也可以提高速

    可以用下面两个代码

    来加速cin 与cout ,这样cin的速度就和sanf差不多了,

    注意,这两个代码的头文件是 iostream

    并且如果用了这两个,就不要用scanf ,getchar,gets,fgets,fscanf了,

    他的作用是关于 iostream和stdio的同步,让c++和c的输入出不在挂钩了(具体原理我也不清楚哈)

    还有就是,用“\n”而不是 endl,也可以提高速度。


    std::ios::sync_with_stdio(false);
        cin.tie(0);

    第二个是取消cin与cout的绑定,去掉了也没用。

    但是数据量大还是推荐用scanf,

    开加速也可能会卡。

    展开全文
  • 项目中需要执行shell命令,虽然exec包提供了CombinedOutput()方法,在shell运行结束会返回shell执行的输出,但是用户在发起一次任务时,可能在不停的刷新log,想达到同步查看log的目的,但是CombinedOutput()方法...
  • 由于Fly-buck使用具有耦合电感器绕组的同步降压转换器来创建隔离输出,变压器较小,在初级和次级匝数比方面更好地匹配。此外,由于次级输出紧密跟踪初级输出电压,因此Fly-buck消除了光耦合器或辅助绕组。 Fly-buck...
  • C++ 关闭同步流提高输入输出效率

    千次阅读 2020-04-25 23:07:06
    在main()函数中加入下列代码即可,通过关闭输入输出同步流,从而提高C++的输入输出效率,做到与scanf和printf的效率相当。 std::ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); 这在数据量较大的竞赛题中...
  • 他需要同步将桌面的直播同时RTMP发布到:斗鱼、熊猫TV等等多个平台,但是OBS又只能同时采集并发布推流直播到单一个平台,而且有时候在4G或者网络比较差的情况下做直播,同事打开个设备做多个直播平台的输出,上行...
  • C++ 线程同步(顺序输出abcde...)

    万次阅读 2019-07-24 14:23:31
    参考C++ 11 三个线程打印...使用互斥量和条件变量实现线程同步 //每个线程顺序打印字母 #include <thread> #include <iostream> #include <chrono> #include <windows.h> #include <a...
  • FPGA源同步时钟输出

    千次阅读 2017-03-14 16:51:12
    在xilinx的FPGA中,要实现高频时钟的输出,并保证时钟质量,最有效的方案是使用ODDR来产生。 ODDR位于IOB里面,如果CLK是由BUFG驱动的,那么从CLK到ODDR的路径在每次实现中都是确定的,从OODR到FPGA芯片PAD的路径和...
  • 多线程之同步输出奇偶数[C#]

    千次阅读 2009-09-25 14:17:00
    在论坛上见有人说有这么个经典的面试题,我也来说说,^_^ 此题涉及到:多线程,同步,排他那前面顺便讲一下两个排他应用的AutoResetEvent与ManualResetEvent的区别AutoResetEvent:通知正在等待的线程已发生事件...
  • 背景近期跟开源团队商量,想在EasyDarwin上继续做一些功能扩展,目前EasyDarwin开源流媒体服务器只能够实现高效的RTSP推流直播转发/分发功能,输入与输出都是RTSP/RTP流,不能够很好滴满足当下日益火热的互联网直播/...
  • 凌力尔特公司(Linear Technology Corporation)推出H级和MP级版本LTC3853,该器件是一款三输出同步降压型开关稳压控制器。LTC3853在4.5V至24V输入电压范围内工作,每相可产生高达 20A的输出电流,输出电压范围为0.8V...
  • 在考虑主电路参数、控制参数等因素影响的基础上,提出一种dq旋转坐标系下虚拟同步发电机的输出阻抗模型,并推导其解析表达式。分析了该输出阻抗的频率特性,得出虚拟同步机在弱电网下运行易失稳的结论。基于广义...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 584,558
精华内容 233,823
关键字:

同步输出