精华内容
下载资源
问答
  • lc振荡电路工作原理

    2020-07-14 03:12:14
    本文主要介绍的是lc振荡电路工作原理,感兴趣的童鞋们快来学习一下吧~~很涨姿势的哦~~1.lc振荡电路工作原理--简介LC振荡电路,是指用电感L、电容C组成选频网络的振荡电路,用于产生高频正弦波信号,常见的LC正弦波...
  • 异步电路设计

    2018-10-31 16:02:40
    异步电路设计的基础,基本结构,性能评估,握手电路的实现,速度无关的控制电路的实现,4相捆绑数据协议和电路
  • Buck电路工作原理以及三种工作模式分析

    万次阅读 多人点赞 2019-01-14 20:50:23
    一、Buck电路原理图    Buck电路,又称降压电路,其基本特征是DC-DC转换电路,输出电压低于输入电压。输入电流为脉动的,输出电流为连续的。  二、Buck电路工作原理  当开关管Q1驱动为高电平时,开关管导通...

    一、Buck电路原理图

      Buck电路工作原理以及三种工作模式分析

      Buck电路,又称降压电路,其基本特征是DC-DC转换电路,输出电压低于输入电压。输入电流为脉动的,输出电流为连续的。

      二、Buck电路工作原理

      当开关管Q1驱动为高电平时,开关管导通,储能电感L1被充磁,流经电感的电流线性增加,同时给电容C1充电,给负载R1提供能量。等效电路如图二

      Buck电路工作原理以及三种工作模式分析

      图二

      当开关管Q1驱动为低电平时,开关管关断,储能电感L1通过续流二极管放电,电感电流线性减少,输出电压靠输出滤波电容C1放电以及减小的电感电流维持,等效电路如图三

      Buck电路工作原理以及三种工作模式分析

      图三

      三、Buck电路的三种工作模式:CCM,BCM,DCM

      1、CCM Mode:关键点原件波形见图四

      Buck电路工作原理以及三种工作模式分析

      图四

      开关管Q1导通时,根据KVL定律:

      Buck电路工作原理以及三种工作模式分析

      Buck电路工作原理以及三种工作模式分析

      2、BCM Mode:关键点原件波形见图五

      Buck电路工作原理以及三种工作模式分析

      图五

      Buck电路工作原理以及三种工作模式分析

      3、DCM Mode:关键点原件波形见图六

      Buck电路工作原理以及三种工作模式分析

      图六

      Buck电路工作原理以及三种工作模式分析

      四、外为参数对系统工作模式的影响:

      Buck电路工作原理以及三种工作模式分析

      图七

      Buck电路工作原理以及三种工作模式分析

      五、BUCK电路仿真验证:

    Buck电路工作原理以及三种工作模式分析

      Buck电路工作原理以及三种工作模式分析

      图八

      Buck电路工作原理以及三种工作模式分析

      Buck电路工作原理以及三种工作模式分析

      2、CCM模式仿真验证:在上述BCM分析的基础上,得出储能电感的电感量80uH为临界点,由系统工作在CCM的条件,可以将储能电感电感量设置为120uH,理论计算:

      Buck电路工作原理以及三种工作模式分析

      参照图十,可以得出仿真结果,

      Buck电路工作原理以及三种工作模式分析

      Buck电路工作原理以及三种工作模式分析

      3、DCM模式仿真验证:在上述BCM分析的基础上,得出储能电感的电感量80uH为临界点,由系统工作在DCM的条件,可以将储能电感电感量设置为40uH。重点验证输入输出电压关系以及输出平均电流关系。

      Buck电路工作原理以及三种工作模式分析

      Buck电路工作原理以及三种工作模式分析

      Buck电路工作原理以及三种工作模式分析

      Buck电路工作原理以及三种工作模式分析

    展开全文
  • 原理分析 电机要实现正反转控制,将其电源的相序中任意两相对调即可(我们称为换相),通常是V相不变,将U相与W...我们先来看一下正反转的电路图,把电路图从中间划开,左边是主线路,右边是控制线路。 主线路原理
  • 芯片设计之CDC异步电路(二) 芯片设计之CDC异步电路(一) 上面两篇简单总结了异步电路设计,下面接着介绍Gray码转换。格雷码的特点就是任意两个相邻码只有一比特不同。 我们接下来介绍二进制码、格雷码的转换原理...

    芯片设计之CDC异步电路(二)

    芯片设计之CDC异步电路(一)

    上面两篇简单总结了异步电路设计,下面接着介绍Gray码转换。格雷码的特点就是任意两个相邻码只有一比特不同。

    图片

    我们接下来介绍二进制码、格雷码的转换原理、不同代码实现风格比较。

    (一)二进制码 -> 格雷码

    二进制码的最高位作为格雷码的最高位;二进制码的高位、次高位相异或得到次高位格雷码;格雷码其余位依此类推;

    直接上图,简单明了:

    图片

     

    编码风格1://code style 1:

    •  
    •  
    •  
    •  
    •  
    •  
    integer i;always @(*)begin    gray[PTR-1]=bin[PTR-1];    for(i=0; i<PTR-1; i=i+1)        gray[i]=bin[i]^bin[i+1];end

    编码风格2://code style 2:

    •  
    assign gray = (bin >> 1) ^ bin;

     

    两种RTL编码对比:代码推崇:大道至简!

    编码风格1:

    图片

     

    编码风格2:

    图片

    资源对比:其实一样,都5个异或门;

    时序对比:关键路径是多长?有意思的是,可以和下文格雷码转二进制码的关键路径PK下。

     

    (二)格雷码 -> 二进制

    格雷码最高位作为二进制码的最高位,二进制码的高位与格雷码次高位相异或,得到次高位的二进制码,其余位依此类推;

    直接上图,简单明了:

    图片

    编码风格1://code style 1:

    •  
    •  
    •  
    •  
    •  
    •  
    integer i;always @(*)begin    bin[PTR-1]= gray[PTR-1];    for(i=PTR-2; i>=0; i=i-1)        bin[i]=bin[i+1]^gray[i];end

    编码风格2://code style 2:

    •  
    •  
    •  
    •  
    •  
    •  
    generate    genvar i0;    for(i0=0; i0<PTR; i0=i0+1)        assign bin[i0] = bin[i0+1] ^ gray[i0];endgenerate
    

    代码我们尝试用generate来实现,效果和编码风格1本质是相同的,都是复制硬件电路;

    细品一下,就会发现我们省略了下面一行:

    •  
    bin[PTR-1]= gray[PTR-1];

    那么当编码风格2的i0=PTR-1时,不存bin[PTR],代码如何编译呢?

    综合电路告诉了我们答案:

    图片

     

    两种RTL编码对比:代码推崇:大道至简!不过,值得细品的东西来了。

     

    编码风格1:

    图片

     

    编码风格2:

    图片

    资源对比:风格1有5个异或门,风格2有6个异或门;

    时序对比:细品!两种电路critical path都是谁?几级combo path?

    所以,代码精简的写法,资源不一定少,时序也不一定好。

    只有心中有电路,RTL才最优,这就需要经验的积攒和反复打磨了。

     

    感谢阅读文章,如果文章有用,麻烦点个“在看”或转发分享。

     

    图片

    展开全文
  • 亚稳态是异步电路和异步FIFO 设计中的常见问题,将异步信号同步化的几种常用方法虽能大大将降低亚稳态发生的概率, 但无法 根除! 亚稳态的发生。本文提出的半拍错位同步法!, 通过附加的带异步复位端的D 触发器和高频...
  • 当年的获奖论文啊,公认的经典 经典英文 CummingsSNUG2002SJ_FIFO1.pdf
  • 最近工作涉及到同步电路的时序设计,这里追根溯源的总结下同步电路和异步电路时序设计及流水线思想 1:什么是同步逻辑和异步逻辑? 同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。...
    最近工作涉及到同步电路的时序设计,这里追根溯源的总结下同步电路和异步电路时序设计及流水线思想

    1:什么是同步逻辑和异步逻辑?

    • 同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。
    • 同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来时,电路的状态才能改变。改变后的状态将一直保持到下一个时钟脉冲的到来,此时无论外部输入x有无变化,状态表中的每个状态都是稳定的。
    • 异步时序逻辑电路的特点:电路中除可以使用带时钟的触发器外,还可以使用不带时钟的触发器和延迟元件作为存储元件,电路中没有统一的时钟,电路状态的改变由外部输入的变化直接引起。

    2:同步电路和异步电路的区别:

    • 同步电路:存储电路中所有触发器的时钟输入端都接同一个时钟脉冲源,因而所有触发器的状态的变化都与所加的时钟脉冲信号同步。
    • 异步电路:电路没有统一的时钟,有些触发器的时钟输入端与时钟脉冲源相连,只有这些触发器的状态变化与时钟脉冲同步,而其他的触发器的状态变化不与时钟脉冲同步。

    3:时序设计的实质:

    • 时序设计的实质就是满足每一个触发器的建立/保持时间的要求。

    4:建立时间与保持时间的概念?

    • 建立时间:触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间。
    • 保持时间:触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的最小时间。

    5:为什么触发器要满足建立时间和保持时间?

    • 因为触发器内部数据的形成是需要一定的时间的,如果不满足建立和保持时间,触发器将进入亚稳态,进入亚稳态后触发器的输出将不稳定,在0和1之间变化,这时需要经过一个恢复时间,其输出才能稳定,但稳定后的值并不一定是你的输入值。这就是为什么要用两级触发器来同步异步输入信号。这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑中,导致亚稳态的传播。
    • (比较容易理解的方式)换个方式理解:需要建立时间是因为触发器的D端像一个锁存器在接受数据,为了稳定的设置前级门的状态需要一段稳定时间;需要保持时间是因为在时钟沿到来之后,触发器要通过反馈来锁存状态,从后级门传到前级门需要时间。

    6:什么是亚稳态?为什么两级触发器可以防止亚稳态传播?

    • 这也是一个异步电路同步化的问题。亚稳态是指触发器无法在某个规定的时间段内到达一个可以确认的状态。使用两级触发器来使异步电路同步化的电路其实叫做“一位同步器”,他只能用来对一位异步信号进行同步。两级触发器可防止亚稳态传播的原理:假 设第一级触发器的输入不满足其建立保持时间,它在第一个脉冲沿到来后输出的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输出的亚稳态数据在一段恢复时 间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间,如果都满足了,在下一个脉冲沿到来时,第二级触发器将不会出现亚稳态,因为其输入端的 数据满足其建立保持时间。同步器有效的条件:第一级触发器进入亚稳态后的恢复时间 + 第二级触发器的建立时间 < = 时钟周期。
    • 更确切地说,输入脉冲宽度必须大于同步时钟周期与第一级触发器所需的保持时间之和。最保险的脉冲宽度是两倍同步时钟周期。所以,这样的同步电路对于从较慢的时钟域来的异步信号进入较快的时钟域比较有效,对于进入一个较慢的时钟域,则没有作用。

    7:系统最高速度计算(最快时钟频率)和流水线设计思想:

    • 同步电路的速度是指同步系统时钟的速度,同步时钟愈快,电路处理数据的时间间隔越短,电路在单位时间内处理的数据量就愈大。假设Tco是触发器的输入数据被时钟打入到触发器到数据到达触发器输出端的延时时间(Tco=Tsetpup+Thold);Tdelay是组合逻辑的延时;Tsetup是D触发器的建立时间。假设数据已被时钟打入D触发器,那么数据到达第一个触发器的Q输出端需要的延时时间是Tco,经过组合逻辑的延时时间为Tdelay,然后到达第二个触发器的D端,要希望时钟能在第二个触发器再次被稳定地打入触发器,则时钟的延迟必须大于Tco+Tdelay+Tsetup,也就是说最小的时钟周期Tmin =Tco+Tdelay+Tsetup,即最快的时钟频率Fmax =1/Tmin。FPGA开发软件也是通过这种方法来计算系统最高运行速度Fmax。因为Tco和Tsetup是由具体的器件工艺决定的,故设计电路时只能改变组合逻辑的延迟时间Tdelay,所以说缩短触发器间组合逻辑的延时时间是提高同步电路速度的关键所在。
    • 由于一般同步电路都大于一级锁存,而要使电路稳定工作,时钟周期必须满足最大延时要求。故只有缩短最长延时路径,才能提高电路的工作频率。可以将较大的组合逻辑分解为较小的N块,通过适当的方法平均分配组合逻辑,然后在中间插入触发器,并和原触发器使用相同的时钟,就可以避免在两个触发器之间出现过大的延时,消除速度瓶颈,这样可以提高电路的工作频率。这就是所谓"流水线"技术的基本设计思想,即原设计速度受限部分用一个时钟周期实现,采用流水线技术插入触发器后,可用N个时钟周期实现,因此系统的工作速度可以加快,吞吐量加大。注意,流水线设计会在原数据通路上加入延时,另外硬件面积也会稍有增加。

    8:时序约束的概念和基本策略?

    • 时序约束主要包括周期约束,偏移约束,静态时序路径约束三种。通过附加时序约束可以综合布线工具调整映射和布局布线,使设计达到时序要求。
    • 附加时序约束的一般策略是先附加全局约束,然后对快速和慢速例外路径附加专门约束。附加全局约束时,首先定义设计的所有时钟,对各时钟域内的同步元件进行分组,对分组附加周期约束,然后对FPGA/CPLD输入输出PAD附加偏移约束、对全组合逻辑的PAD TO PAD路径附加约束。附加专门约束时,首先约束分组之间的路径,然后约束快、慢速例外路径和多周期路径,以及其他特殊路径。

    9:附加约束的作用?

    • 1:提高设计的工作频率(减少了逻辑和布线延时);
      2:获得正确的时序分析报告;(静态时序分析工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入约束,以便静态时序分析工具可以正确的输出时序报告)
      3:指定FPGA/CPLD的电气标准和引脚位置。

    10:FPGA设计工程师努力的方向:

    • SOPC,高速串行I/O,低功耗,可靠性,可测试性和设计验证流程的优化等方面。
    • 随着芯片工艺的提高,芯片容量、集成度都在增加,FPGA设计也朝着高速、高度集成、低功耗、高可靠性、高可测、可验证性发展。芯片可测、可验证,正在成为复杂设计所必备的条件,尽量在上板之前查出bug,将发现bug的时间提前,这也是一些公司花大力气设计仿真平台的原因。另外随着单板功能的提高、成本的压力,低功耗也逐渐进入FPGA设计者的考虑范围,完成相同的功能下,考虑如何能够使芯片的功耗最低,据说altera、xilinx都在根据自己的芯片特点整理如何降低功耗的文档。高速串行IO的应用,也丰富了FPGA的应用范围,像xilinx的v2pro中的高速链路也逐渐被应用。

    11:对于多位的异步信号如何进行同步?

    • 对以一位的异步信号可以使用“一位同步器进行同步”(使用两级触发器),而对于多位的异步信号,可以采用如下方法:
      1:可以采用保持寄存器加握手信号的方法(多数据,控制,地址);
      2:特殊的具体应用电路结构,根据应用的不同而不同;
      3:异步FIFO。(最常用的缓存单元是DPRAM)
    展开全文
  • 电机总述 电机(俗称“马达”)是指依据电磁感应定律实现电能转换或传递的一种电磁装置。它的主要作用是产生驱动转矩,...定子绕组:是电动机的电路部分,通入三相交流电,产生旋转磁场;机座:固定定子铁心与前后端盖以支
  •  由于RS232接口标准出现较早,难免有不足之处,主要有以下四点: 1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。 2)传输速率较低,在异步传输...
  • 原文链接: ... 从大学时代第一次接触FPGA至今已有10多年的时间,至今记得当初第一次在EDA实验平台上完成数字秒表、抢答器、密码锁等实验时那个兴奋劲。...后来读研究生,工作陆陆续续也用过Quartus II...

    原文链接:

    http://m.elecfans.com/article/575270.html

    从大学时代第一次接触FPGA至今已有10多年的时间,至今记得当初第一次在EDA实验平台上完成数字秒表、抢答器、密码锁等实验时那个兴奋劲。当时由于没有接触到HDL硬件描述语言,设计都是在MAX+plus II原理图环境下用74系列逻辑器件搭建起来的。后来读研究生,工作陆陆续续也用过Quartus II、FoundaTIon、ISE、Libero,并且学习了verilogHDL语言,学习的过程中也慢慢体会到verilog的妙用,原来一小段语言就能完成复杂的原理图设计,而且语言的移植性可操作性比原理图设计强很多。

    在学习一门技术之前我们往往从它的编程语言入手,比如学习单片机时,我们往往从汇编或者C语言入门。所以不少开始接触FPGA的开发人员,往往是从VHDL或者Verilog开始入手学习的。但我个人认为,若能先结合《数字电路基础》系统学习各种74系列逻辑电路,深刻理解逻辑功能,对于学习HDL语言大有裨益,往往会起到事半功倍的效果。

    当然,任何编程语言的学习都不是一朝一夕的事,经验技巧的积累都是在点滴中完成,FPGA设计也无例外。下面就以我的切身体会,谈谈FPGA设计的经验技巧。

    我们先谈一下FPGA基本知识:

    1.硬件设计基本原则

    FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

    速度与面积平衡和互换原则:

    • 一个设计如果时序余量较大,所能跑的频率远高于设计要求,能可以通过模块复用来减少整个设计消耗的芯片面积,这就是用速度优势换面积的节约;

      反之,如果一个设计的时序要求很高,普通方法达不到设计频率,那么可以通过数据流串并转换,并行复制多个操作模块,对整个设计采用“乒乓操作”和“串并转换”的思想进行处理,在芯片输出模块处再对数据进行“并串转换”。从而实现了用面积复制换取速度的提高。

    • 硬件原则:理解HDL本质。

    • 系统原则:整体把握。

    • 同步设计原则:设计时序稳定的基本原则。

    2.Verilog作为一种HDL语言,对系统行为的建模方式是分层次的

    比较重要的层次有系统级、算法级、寄存器传输级、逻辑级、门级、电路开关级。

    3.实际工作中,除了描述仿真测试激励时使用for循环语句外,极少在RTL级编码中使用for循环

    这是因为for循环会被综合器展开为所有变量情况的执行语句,每个变量独立占用寄存器资源,不能有效的复用硬件逻辑资源,造成巨大的浪费。一般常用case语句代替。

    4. if…else…和case在嵌套描述时是有很大区别的

    if…else…是有优先级的,一般来说,第一个if的优先级最高,最后一个else的优先级最低。而case语句是平行语句,它是没有优先级的,而建立优先级结构需要耗费大量的逻辑资源,所以能用case的地方就不要用if…else…语句。

    补充:1.也可以用if…; if…; if…;描述不带优先级的“平行”语句。

    5.FPGA一般触发器资源比较丰富,而CPLD组合逻辑资源更丰富

    6.FPGA和CPLD的组成

    FPGA基本有可编程I/O单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等6部分组成。

    CPLD的结构相对比较简单,主要由可编程I/O单元、基本逻辑单元、布线池和其他辅助功能模块组成。

    7.Block RAM

    3种块RAM结构,M512 RAM(512bit)、M4K RAM(4Kbit)、M-RAM(64Kbit)。

    • M512 RAM:适合做一些小的Buffer、FIFO、DPRAM、SPRAM、ROM等;

    • M4K RAM: 适用于一般的需求;

    • M-RAM: 适合做大块数据的缓冲区。

    Xlinx 和 LatTIce FPGA的LUT可以灵活配置成小的RAM、ROM、FIFO等存储结构,这种技术被称为分布式RAM。

    补充:但是在一般的设计中,不提倡用FPGA/CPLD的片内资源配置成大量的存储器,这是处于成本的考虑。所以尽量采用外接存储器。

    8.善用芯片内部的PLL或DLL资源完成时钟的分频、倍频率、移相等操作

    不仅简化了设计,并且能有效地提高系统的精度和工作稳定性。

    9.异步电路和同步时序电路的区别

    异步电路:

    • 电路核心逻辑有用组合电路实现;

    • 异步时序电路的最大缺点是容易产生毛刺;

    • 不利于器件移植;

    • 不利于静态时序分析(STA)、验证设计时序性能。

    同步时序电路:

    • 电路核心逻辑是用各种触发器实现;

    • 电路主要信号、输出信号等都是在某个时钟沿驱动触发器产生的;

    • 同步时序电路可以很好的避免毛刺;

    • 利于器件移植;

    • 利于静态时序分析(STA)、验证设计时序性能。

    10.同步设计中,稳定可靠的数据采样必须遵从以下两个基本原则:

    (1)在有效时钟沿到达前,数据输入至少已经稳定了采样寄存器的Setup时间之久,这条原则简称满足Setup时间原则;

    (2)在有效时钟沿到达后,数据输入至少还将稳定保持采样寄存器的Hold时钟之久,这条原则简称满足Hold时间原则。

    11.同步时序设计注意事项

    • 异步时钟域的数据转换。

    • 组合逻辑电路的设计方法。

    • 同步时序电路的时钟设计。

    同步时序电路的延迟。同步时序电路的延迟最常用的设计方法是用分频或者倍频的时钟或者同步计数器完成所需的延迟,对比较大的和特殊定时要求的延时,一般用高速时钟产生一个计数器,根据计数产生延迟;对于比较小的延迟,可以用D触发器打一下,这样不仅可以使信号延时了一个时钟周期,而且完成了信号与时钟的初次同步。在输入信号采样和增加时序约束余量中使用。

    另外,还有用行为级方法描述延迟,如“#5 a《=4’0101;”这种常用于仿真测试激励,但是在电路综合时会被忽略,并不能起到延迟作用。

    Verilog 定义的reg型,不一定综合成寄存器。在Verilog代码中最常用的两种数据类型是wire和reg型,一般来说,wire型指定的数据和网线通过组合逻辑实现,而reg型指定的数据不一定就是用寄存器实现。

    12.常用设计思想与技巧

    (1)乒乓操作;

    (2)串并转换;

    (3)流水线操作;

    (4)异步时钟域数据同步。是指如何在两个时钟不同步的数据域之间可靠地进行数据交换的问题。数据时钟域不同步主要有两种情况:

    ①两个域的时钟频率相同,但是相差不固定,或者相差固定但是不可测,简称为同频异相问题。

    ②两个时钟频率根本不同,简称异频问题。

    两种不推荐的异步时钟域操作方法:一种是通过增加Buffer或者其他门延时来调整采样;另一种是盲目使用时钟正负沿调整数据采样。

    13.模块划分基本原则

    (1)对每个同步时序设计的子模块的输出使用寄存器(用寄存器分割同步时序模块原则)。

    (2)将相关逻辑和可以复用的逻辑划分在同一模块内(呼应系统原则)。

    (3)将不同优化目标的逻辑分开。

    (4)将送约束的逻辑归到同一模块。

    (5)将存储逻辑独立划分成模块。

    (6)合适的模块规模。

    (7)顶层模块最好不进行逻辑设计。

    14.组合逻辑的注意事项

    (1)避免组合逻辑反馈环路(容易毛刺、振荡、时序违规等)。

    解决:A.牢记任何反馈回路必须包含寄存器;B.检查综合、实现报告的warning信息,发现反馈回路(combinaTIonal loops)后进行相应修改。

    (2)替换延迟链。

    解决:用倍频、分频或者同步计数器完成。

    (3)替换异步脉冲产生单元(毛刺生成器)。

    解决:用同步时序设计脉冲电路。

    (4)慎用锁存器。

    解决方式:

    A、使用完备的if…else语句;

    B、检查设计中是否含有组合逻辑反馈环路;

    C、对每个输入条件,设计输出操作,对case语句设置default 操作。特别是在状态机设计中,最好有一个default的状态转移,而且每个状态最好也有一个default的操作。

    D、如果使用case语句时,特别是在设计状态机时,尽量附加综合约束属性,综合为完全条件case语句。

    小技巧:仔细检查综合器的综合报告,目前大多数的综合器对所综合出的latch都会报“warning”,通过综合报告可以较为方便地找出无意中生成的latch。

    15.时钟设计的注意事项

    同步时序电路推荐的时钟设计方法:时钟经全局时钟输入引脚输入,通过FPGA内部专用的PLL或DLL进行分频/倍频、移相等调整与运算,然后经FPGA内部全局时钟布线资源驱动到达芯片内所有寄存器和其他模块的时钟输入端。

    FPGA设计者的5项基本功:仿真、综合、时序分析、调试、验证。

    对于FPGA设计者来说,练好这5项基本功,与用好相应的EDA工具是同一过程,对应关系如下:

    1. 仿真:Modelsim, Quartus II(Simulator Tool)

    2. 综合:Quartus II (Compiler Tool, RTL Viewer, Technology Map Viewer, Chip Planner)

    3. 时序:Quartus II (TImeQuest Timing Analyzer, Technology Map Viewer, Chip Planner)

    4. 调试:Quartus II (SignalTap II Logic Analyzer, Virtual JTAG, Assignment Editor)

    5. 验证:Modelsim, Quartus II(Test Bench Template Writer)

    掌握HDL语言虽然不是FPGA设计的全部,但是HDL语言对FPGA设计的影响贯穿于整个FPGA设计流程中,与FPGA设计的5项基本功是相辅相成的。

    对于FPGA设计者来说,用好“HDL语言的可综合子集”可以完成FPGA设计50%的工作——设计编码。

    练好仿真、综合、时序分析这3项基本功,对于学习“HDL语言的可综合子集”有如下帮助:

    • 通过仿真,可以观察HDL语言在FPGA中的逻辑行为。

    • 通过综合,可以观察HDL语言在FPGA中的物理实现形式。

    • 通过时序分析,可以分析HDL语言在FPGA中的物理实现特性。

    对于FPGA设计者来说,用好“HDL语言的验证子集”,可以完成FPGA设计另外50%的工作——调试验证。

    1. 搭建验证环境,通过仿真的手段可以检验FPGA设计的正确性。

    2. 全面的仿真验证可以减少FPGA硬件调试的工作量。

    3. 把硬件调试与仿真验证方法结合起来,用调试解决仿真未验证的问题,用仿真保证已经解决的问题不在调试中再现,可以建立一个回归验证流程,有助于FPGA设计项目的维护。

    FPGA 设计者的这5项基本功不是孤立的,必须结合使用,才能完成一个完整的FPGA设计流程。反过来说,通过完成一个完整的设计流程,才能最有效地练习这5项基本功。对这5项基本功有了初步认识,就可以逐个深入学习一些,然后把学到的知识再次用于完整的设计流程。如此反复,就可以逐步提高设计水平。采用这样的循序渐进、螺旋式上升的方法,只要通过培训入了门,就可以自学自练,自我提高。

    市面上出售的有关FPGA设计的书籍为了保证结构的完整性,对 FPGA设计的每一个方面分开介绍,每一方面虽然深入,但是由于缺少其他相关方面的支持,读者很难付诸实践,只有通读完全书才能对FPGA设计获得一个整体的认识。这样的书籍,作为工程培训指导书不行,可以作为某一个方面进阶的参考书。

    对于新入职的员工来说,他们往往对FPGA的整体设计流程有了初步认识,5项基本功的某几个方面可能很扎实。但是由于某个或某几个方面能力的欠缺,限制了他们独自完成整个设计流程的能力。入职培训的目的就是帮助他们掌握整体设计流程,培养自我获取信息的能力,通过几个设计流程来回的训练,形成自我促进、自我发展的良性循环。在这一过程中,随着对工作涉及的知识的广度和深度的认识逐步清晰,新员工的自信心也会逐步增强,对个人的发展方向也会逐步明确,才能积极主动地参与到工程项目中来。

    最后总结几点:

    1)看代码,建模型

    只有在脑海中建立了一个个逻辑模型,理解FPGA内部逻辑结构实现的基础,才能明白为什么写Verilog和写C整体思路是不一样的,才能理解顺序执行语言和并行执行语言的设计方法上的差异。在看到一段简单程序的时候应该想到是什么样的功能电路。

    2)用数学思维来简化设计逻辑

    学习FPGA不仅逻辑思维很重要,好的数学思维也能让你的设计化繁为简,所以啊,那些看见高数就头疼的童鞋需要重视一下这门课哦。举个简单的例子,比如有两个32bit的数据X[31:0]与Y[31:0]相乘。当然,无论Altera还是Xilinx都有现成的乘法器IP核可以调用,这也是最简单的方法,但是两个32bit的乘法器将耗费大量的资源。那么有没有节省资源,又不太复杂的方式来实现呢?我们可以稍做修改:

    将X[31:0]拆成两部分X1[15:0]和X2[15:0],令X1[15:0]=X[31:16],X2[15:0]=X[15:0],则X1左移16位后与X2相加可以得到X;同样将Y[31:0]拆成两部分Y1[15:0]和Y2[15:0],令 Y1[15:0]=Y[31:16],Y2[15:0]=Y[15:0],则Y1左移16位后与Y2相加可以得到Y;则X与Y的相乘可以转化为X1和X2 分别与Y1和Y2相乘,这样一个32bit*32bit的乘法运算转换成了四个16bit*16bit的乘法运算和三个32bit的加法运算。转换后的占用资源将会减少很多,有兴趣的童鞋,不妨综合一下看看,看看两者差多少。

    3)时钟与触发器的关系

    “时钟是时序电路的控制者” 这句话太经典了,可以说是FPGA设计的圣言。FPGA的设计主要是以时序电路为主,因为组合逻辑电路再怎么复杂也变不出太多花样,理解起来也不没太多困难。但是时序电路就不同了,它的所有动作都是在时钟一拍一拍的节奏下转变触发,可以说时钟就是整个电路的控制者,控制不好,电路功能就会混乱。

    打个比方,时钟就相当于人体的心脏,它每一次的跳动就是触发一个 CLK,向身体的各个器官供血,维持着机体的正常运作,每一个器官体统正常工作少不了组织细胞的构成,那么触发器就可以比作基本单元组织细胞。时序逻辑电路的时钟是控制时序逻辑电路状态转换的“发动机”,没有它时序逻辑电路就不能正常工作,因为时序逻辑电路主要是利用触发器存储电路的状态,而触发器状态变换需要时钟的上升或下降沿!由此可见时钟在时序电路中的核心作用!

    最后简单说一下体会吧,归结起来就多实践、多思考、多问。实践出真知,看 100遍别人的方案不如自己去实践一下。实践的动力一方面来自兴趣,一方面来自压力,我个人觉得后者更重要。有需求会容易形成压力,也就是说最好能在实际的项目开发中锻炼,而不是为了学习而学习。

    在实践的过程中要多思考,多想想问题出现的原因,问题解决后要多问几个为什么,这也是经验积累的过程,如果有写项目日志的习惯更好,把问题及原因、解决的办法都写进去。最后还要多问,遇到问题思索后还得不到解决就要问了,毕竟个人的力量是有限的,问同学同事、问搜索引擎、问网友都可以,一篇文章、朋友们的点拨都可能帮助自己快速解决问题。

    展开全文
  • 三相异步启动电路接线,电路构成组件电路分析图
  • 双馈电机的结构类似于绕线式感应电机,定子绕组也由具有固定频率的对称三相电源激励,所不同的是转子绕组具有可调节频率的三相电源激励,一般采用交-交变频器或交-直-交变频器供以低频电流。
  • 通常对中、小容量的异步电动机均采用直接启动方式,启动时将鼠笼式电动机的定子绕组直接接在交流电源上,电动机在额定电压下直接启动。对于大容量的电动机,当电动机容量超过其供电变压器的某定值(变压器只供动力...
  • 异步FIFO设计原理及Verliog源代码

    万次阅读 多人点赞 2015-12-04 21:08:28
    根均FIFO工作的时钟域,可以将FIFO分为同步FIFO和异步FIFO。同步FIFO是指读时钟和写时钟为同一个时钟。在时钟沿来临时同时发生读写操作。异步FIFO是指读写时钟不一致,读写时钟是互相独立的。 5.FIFO设计的难点 ...
  • 以二进制为原理、实现数字信号逻辑运算和操作的电路。分组合逻辑电路和时序逻辑电路。前者的逻辑功能与时间无关,即不具记忆和存储功能,后者的操作按时间程序进行。由于只分高、低电平,抗干扰力强,精度和保密性佳...
  • 异步复位同步释放原理 异步复位,同步释放的理解 异步复位同步释放—关于复位的问题 always @ (posedge clk, negedge rst_async_n) if (!rst_async_n) begin rst_s1 <= 1'b0; rst_s2 <= 1'b0; end else ...
  • 三相异步电动机及其控制电路 实现电能与机械能相互转换的电工设备总称为电机。电机是利用电磁感应原理实现电能与机械能的相互转换。把机械能转换成电能的设备称为发电机,而把电能转换成机械能的设备叫做电动机。 ...
  • 软启动电路原理 一 软起动主电路图 晶闸管降压软起动主电路如图所示其中 M 是异步电动机晶闸管 KPlKP6 组成移相控制的三相交流调压电路利用品闸管进行调压其输出电压大小由晶闸管的导通角决定 而晶闸管的导通角又...
  • 星三角电路启动原理图解

    千次阅读 2018-08-08 13:11:08
    下图所示为异步电动机、星三角起动控制电路图,此种接法只适合于电动机正常运行时为三角型联接。 异步电动机星三角启动控制电路图  所需主要元器件:三个交流接触器,一个热继电器,一个时间继电器,启动、停止...
  • FIFO在硬件上是一种地址依次自增的Single Dul RAM,按读数据和写数据工作的时钟域是否相同分为同步FIFO和异步FIFO,其中同步FIFO是指读时钟和写时钟为同步时钟,常用于数据缓存和数据位宽转换;异步FIFO通常情况下是...
  • 浅谈IC设计中亚稳态的问题以及信号同步电路简单实现 亚稳态与跨时钟域 高级FPGA设计技巧!多时钟域和异步信号处理解决方案 高级FPGA设计技巧!多时钟域和异步信号处理解决方案 1.1 什么是亚稳态 假设器件输出在...
  • 三相异步电动机正反停继电器控制电路工作原理: 电动机正转:按下正转启动按钮SB2,SB2的常闭触头先断开,切断KM2线圈支路进行联锁保护。SB2的常开触头再闭合,使KM1线圈得电吸合,KM1的常闭触头先断开,切断KM2...
  • 第13章 异步电机的基本理论 ...工作原理 异步电机的三种运行状态: 感应电动机:定子:通三相电流产生圆形旋转磁场,磁场旋转以转速n1切割鼠笼式转子的导条,  转子:感应电势E=BLv,感生电...
  • 8051异步串口的收发原理

    千次阅读 2011-07-16 23:17:51
    8051异步串口的收发原理 《8051异步串口的收发原理》 来自:刘建文 | 学术半·IT歌·文 作者:刘建文关键字:8051 数字电子 数据通信 永久链接地址:http://arttech.us/y-2011/8051-uart-rx-tx.htm
  • 先简单说下两级寄存器的原理:两级寄存是一级寄存的平方,两级并不能完全消除亚稳态危害,但是提高了可靠性减少其发生概率。总的来讲,就是一级概率很大,三级改善不大。 这样说可能还是有很多人不够完全理解,...
  • 异步时钟切换电路

    千次阅读 2009-06-18 14:20:00
    问题: 2个频率无关的时钟,在sel的选择下做切换。 有时一个看起来简单,实际上是在考验ASIC工程师的问题。 1.简单的讲就是做信号的2选1么... 这是一个逻辑图,实际的2选1是由3个门电路过程的,比如2个与一个或: 
  • 异步串行通信接口电路的V HDL语言设计 详细阐述了设计原理 包含时序电路和各模块声明

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,735
精华内容 5,494
关键字:

异步电路的工作原理