航空总线1553B接口设计
关注、星标公众号,精彩内容每日送达
来源:网络素材
关于复位
数
字电路中,电路通过复位来启动,复位犹如数字电路的“起搏器”,主要有下面三种方式:
1
无复位:天生就强壮着,上电就启动;
2
异步复位:好心人路过,随便踢了一脚,起搏了,这完全没有心理准备,随时都有可能复活啊;
3
同步复位:专业救援队,手按住胸口,不起博按住不放啊。直到听到“砰砰”声才离开,非常关键,必须要按住一会会
无复位
没见过这样写代码的,竟然没有复位,老师都说数字电路离不开复位的,没有复位,寄存器怎么赋初值啊?没有确定的初值,这电路怎么工作呢?
其实,不用担心,FPGA上电之后,寄存器初始值默认为“0”,当然,也可以人为的赋初值。下面为无复位的代码:
reg [7:0] my_register;
always @(posedge clk) begin
my_register <= data_in;
end
如果没有复位信号,省了很多资源,编译和布线时间也缩短不少,如果规模很大,对提高设计整体性能也是有帮助的。但是在数字电路设计中,我们很少不用复位电路。到是我们经常利用FPGA这个特性,自己产生内部复位电路。
异步复位
异步复位电路描述:在always语句中添加复位信号在敏感量列表中,即可实现异步复位。
reg [7:0] my_register;
always @(posedge clk, posedge rst) begin
if(rst)
my_register <= 8’h0;
else
my_register <= data_in;
end
异步复位的缺点:
异步复位对复位信号要求很严格的,不然随便一个毛刺就会把电路给复位掉的。
另外,异步复位信号依赖于FPGA内部的传导延时,因此,在微小的电压或温度差异下,设计都有可能输出错误,设计的可移植性也很差。上面不是说了嘛,这随便一脚提过来,有时候能感觉到,有时候感觉不到啊。冬天穿个大棉袄,就得使个大劲才能提醒。
正因为对不同寄存器延迟是不同的,所以容易引发间断性设计问题。怎么理解呢?
如图所示,2 bit的移位寄存器组成一个环,复位后,左边寄存器清零,右边寄存器置位,而且都在同一上升沿触发,所以,如果左边寄存器上升沿来的时候,复位信号已经释放掉了,但是右边寄存器还处于复位状态,这个时候数据就错误。
异步复位的优点:
异步复位不依赖于时钟。所以如果时钟是外部输入的,而且时钟有可能丢失,例如处于省电模式时,只能使用异步复位。
另外一个优势是设计更快的物理实现。相对于同步复位,异步复位有更宽松的时序约束。从而布局布线工具使用更少的时间便可达到约束条件。
同步复位
同步复位就是非常专业,不留一点马虎,和他的名字一样,只在时钟的有效沿发生,所以一个有效的同步信号,至少要维持一个时钟周期(把你叫不醒,是不会停的)。由于仅仅在时钟的有效沿有效,所以可以滤除复位信号上的毛刺,电路可靠性好很多。
reg [7:0] my_register;
always @(posedge clk) begin
if(rst)
my_register <= 8’h0;
else
my_register <= data_in;
end
所以,总结一下。其优点是“弥补了异步复位的所有缺点”,其缺点是“没有异步复位的优点“”。这个总结够简单吧。
总结
我们熟悉了3种复位方式,了解了他们的脾气,那就总结一下,在我们平时设计中如何使用他们。
尽量用同步复位,如果你的规模不是特别大,虽然占有布线资源多一点,但是对系统可靠性还是有帮助的。
规模很大的时候,可以考虑混和复位方式,在什么场合呢?比如说设计中有多个IP核和功能模块,要求有不同的复位方式,这个时候就要求混和复位方式,另外,还有电路延迟,大型电路中两个模块之间信号延迟可能超过10ns,如果时钟周期为3ns,需要3个时钟周期才能通过,所以,大型设计中完全同步是非常不容易的。如图所示为一个复杂的混和复位树。各种复位都用上了。
航空总线1553B接口设计相关推荐
- tms320vc5416c语言编程,TMS320VC5416与CAN总线的接口设计及软件编程
[1]谈振藩,郭飞,李秋霞,等.数字式分罗经设计研究[J].应用科技,2008,35(10):24. TAN Zhen-fan,GUO Fei,LI Qiu-xia,et al.The design ...
- python 开发板 i2s_[Craftor原创] I2S总线接口设计(Verilog)
本文有Craftor原创,转载请保留出处. I2S是数字音频的接口,这里不用多说,请读者自己查阅相关资料. 本文中要设计的是FPGA与数字音频芯片的I2S接口时序.简单点说,就是通过FPGA向音频芯片 ...
- PXI 1553B总线卡 航空总线卡 底板+功能子卡 架构 底板原理图+PCB 子卡原理图+PCB
PXI 1553B总线卡 航空总线卡 底板+功能子卡 架构 底板原理图+PCB 子卡原理图+PCB ID:189999673456543125浪里个浪里个浪001
- pcie总线与cpci总线_基于通用PCI接口功能芯片和热插拔控制器实现CPCI总线控制的设计...
CPCI总线简介 CPCI总线是一个开放式.国际性技术标准,由PCI总线工业计算机制造商组织PICMG(PCI Industrial Computer Manufacturer Group)负责制定和 ...
- 基于PCI9054和LTC4240的CPCI总线接口设计
CPCI总线简介 CPCI总线是一个开放式.国际性技术标准,由PCI总线工业计算机制造商组织PICMG(PCI Industrial Computer Manufacturer Group)负责制定和 ...
- I2S音频总线学习(四)I2S接口设计
I2S音频总线学习(四)I2S接口设计 一.数据发送端的设计 图1 发送端 随着WS信号的改变,导出一个WSP脉冲信号,进入并行移位寄存器装入DATA LEFT或DATA RIGHT,从而输出数据被激 ...
- 计算机总线接口规范协议,MIL-STD-1553B航空总线协议开发手册
MIL-STD-1553B GJB289-87总线简介 1553B总线是MIL-STD-1553总线的简称,MIL-STD-1553总线是飞机内部时分制命令/响应式多路复用数据总线.1553B总线能挂 ...
- 连接CPU和计算机的总线,什么是计算机总线 总线和接口的区别
什么是计算机总线 这个和计算机主机的构造有关系,首先,我们都知道计算机的cpu由两个部分组成,一个是控制单元,另一个是算术逻辑单元,cpu的控制单元负责计算机各个组件的协调与沟通,什么是沟通?就是数据 ...
- 04【Verilog实战】SPI协议底层硬件接口设计(附源码RTL/TB)
脚 本:makefile 工 具:vcs 和 verdi 写在前面 这个专栏的内容记录的是个人学习过程,博文中贴出来的代码是调试前的代码,方便bug重现. 调试后的程序提供下载,[下载地址] 发现 ...
最新文章
- WPF中触发器Trigger、MultiTrigger、DataTrigger、MultiDataTrigger、EventTrigger几种
- html中加session,Html中如何获取session中的值(如登录后显示XX欢迎您!)
- .NET Core 在中国的现状调研
- Java笔记-通过注解和插件自动生成get/set和toString方法,使代码结构清晰
- java题-如何递归遍历一个文件夹下的所有文件
- 无码系列-7-代码的语文修养_上篇
- wcdma系统随机接入过程的流程图_WCDMA终端的随机接入过程的射频测试
- Java之final关键字详解
- C# 3.0通过Linq、Lambda、匿名函数、代理函数实现数据查询
- 132. 分割回文串 II
- 2019年税收分类编码_您如何在2019年学习编码
- JavaWeb实现快递物流查询
- python3.8如何正确安装使用ExcelLibrary
- resultFul架构
- MATLAB中ANFIS的使用教程
- day08-----pytorch
- 【小程序】小程序组件-1
- 央企招聘:新华社2023年校园招聘公告
- excel添加列下拉框票价_在Excel中制作下拉列表的三种方法
- 理解JIT编译与优化