多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Fpga中常用器件

Fpga中常用器件 调节Bang-bang 调节器。输入是目标值和实际值。误差为正输出满挡向一边误差为负输出满挡向另一边。只有这两档。带回差的调节器。误差很小的一段里输出保持不动出了这段才加或减。你见过的列周期死区就是这个器件。PI 调节器。误差乘一个比例再把误差按拍累加。输出是这两部分的和。PID 调节器。在 PI 上再加“这一拍误差减上一拍误差”。脉宽调制器。输入一个占空比输出一段固定周期的高低电平高电平的长度跟着占空比走。一位数模转换器。输入一个数字电压输出一串高低电平。高电平越密外面滤完之后的平均电压越高。测量比较器。两个数比大小输出大、小或相等。施密特触发器。带回差的比较器。向上过一个门限才变高向下过另一个更低的门限才变低。脉宽测量器。输入一根高低变化的线输出高电平持续了多少拍。周期测量器。输出相邻两个上升沿之间有多少拍。频率计。在一段固定时间里数有多少个上升沿。占空比测量器。同一段时间里高电平拍数除以总拍数。正交编码器。两根方波相位差 90°。输出方向和走过的格数。码盘那一路就是这种器件。鉴相器。两根时钟输出谁领先、领先多少拍。波形分频器。输入时钟每数到 N 拍输出翻转一次。单稳态。输入一个上升沿输出固定拍数的高电平然后自己落下。定时器。开始后每拍加 1加到设定值给出一个脉冲并可以清零重来。看门狗。必须在数满之前收到一次“喂狗”。没收到就输出复位脉冲。数控振荡器。每拍给相位加一个步长。步长大输出频率就高。可以用相位最高位当方波输出。正弦发生器。相位去查一张正弦表输出正弦的采样值。滤波和运算滑动平均器。始终保留最近 N 个数的和新进来一个就加上最旧的一个就减去。有限冲激响应滤波器。最近 N 个采样各自乘一个系数再加在一起。无限冲激响应滤波器。这一拍的输出还要拿去影响后面几拍。PI 里的积分就是这种反馈。峰值检测器。一段数据里找出最大值以及它出现的位置。直方图。每个到达的数对应一个箱子那个箱子的计数加 1。累加器。每拍加上输入的数。定点乘加器。这一拍做“乘完再加到累加器上”。除法器。输入被除数和除数用若干拍算出商和余数。以前常买芯片、现在用逻辑写的接口UART。一根线发出去一根线收进来。按波特率把一个字节拆成起始位、数据位、停止位。SPI 主机。时钟、片选、主出从入、主入从出。主机产生时钟按拍移出和移入。I2C 主机。时钟和数据线都是开漏。主机发出起始、地址、应答和停止。校验器。数据流过时按一个多项式更新余数最后余数就是校验结果。扰码器。数据流过一个移位寄存器按固定抽头异或把长串的 0 或 1 打散。传递数据同步 FIFO。读写用同一个时钟。满了不能再写空了不能再读。异步 FIFO。写时钟和读时钟不同。用格雷码把写指针送到读这边把读指针送到写这边。双口 RAM。一边写一边读两边可以各用各的时钟。跨时钟同步器。一根单 bit 信号换时钟域时先连续打两拍再往下用。仲裁器。几个人同时要用同一份资源它决定这一拍给谁。锁相数字锁相环。鉴相器看本地时钟和外部时钟谁领先环路滤波把这个误差收一收再去改数控振荡器的步长。鉴相器用 bang-bang 时领先就让本地时钟慢一档落后就快一档。延迟锁定环。不改频率只改本地时钟经过的延迟拍数直到边沿和外部时钟对齐。测时间和产生时间计数器。每拍加 1到设定值清零或停住。分频器。每数到 N 拍输出翻转一次。定时器。从 0 加到设定值到了给一个脉冲。看门狗。到时之前必须被清一次否则输出复位。单稳态。来一个上升沿输出固定拍数的高电平然后自己落下。脉宽测量器。数一根线的高电平持续了多少拍。周期测量器。数相邻两个上升沿之间有多少拍。频率计。固定时间里数有多少个上升沿。时间数字转换器。两下事件之间的时间变成一个数字。粗的部分用计数器比一个时钟还细的部分用一串进位链看沿停在第几级。你工程里的 TDC 就是这个器件tx_ref是被测的那一下反馈沿。比相位、把频率锁住异或鉴相器。两根方波相异或。相位差越大输出高电平的时间越长。锁住时输出接近一半高、一半低。能看的相位差在 ±90° 以内。边沿鉴相器。比的是两根时钟的上升沿。本地时钟落后就打出“加快”脉冲超前就打出“减慢”脉冲。同时能看出频率谁高谁低所以锁相环里多用它。Bang-bang 鉴相器。只回答早了还是晚了不回答早了多少。高速串行收数据时最常见。数字环路滤波器。把鉴相器那一串忽长忽短的误差收平滑。一种简单做法是可逆计数器误差让它加加满才输出一个“加快”误差让它减减到 0 才输出一个“减慢”。小抖动到不了满或到 0就不会去动振荡器。数控振荡器。每拍给相位加一个步长。步长由上面的滤波器改。步长大输出频率高。全数字锁相环。上面三件放在一个环里鉴相器看出本地时钟和外部时钟的差别环路滤波器把差别收一收数控振荡器按这个去改频率直到两边对齐。时间数字转换器可以代替鉴相器直接把相位差变成数字再送给滤波器。延迟锁定环。不改频率只改本地时钟经过几级延迟直到边沿和外部时钟对齐。调节Bang-bang 调节器。误差为正输出满挡向一边为负满挡向另一边。只有这两档。带回差的调节器。误差落在一小段里时输出不动出了这段才加或减。PI 调节器。误差乘一个比例再把误差按拍累加两部分相加作为输出。PID 调节器。再加“这一拍误差减上一拍误差”。脉宽调制器。固定周期里高电平的长度跟着输入的数字走。一位数模转换器。高电平越密外面滤完之后的平均电压越高。波形、滤波、运算比较器。两个数比出大、小或相等。施密特触发器。向上过一个门限才变高向下过另一个更低的门限才变低。滑动平均器。始终保留最近 N 个数的和。有限冲激响应滤波器。最近 N 个采样各乘一个系数再相加。无限冲激响应滤波器。这一拍的输出还要影响后面几拍。峰值检测器。一段数里找出最大值和它所在的位置。直方图。每个数对应一个箱子落到哪个箱子那个箱子加 1。正弦发生器。相位累加之后去查正弦表。定点乘加器。这一拍做完乘法加进累加器。除法器。若干拍算出商和余数。接口。以前常是单独的芯片UART。一根线发出一根线接收。一个字节拆成起始位、数据位、停止位。SPI 主机。主机发时钟按拍把数据移出、把对方的数据移入。I2C 主机。时钟和数据两根线发出起始、地址、应答和停止。正交编码器。两根相位差 90° 的方波输出方向和走过的格数。校验器。数据流过时按一个多项式更新余数。扰码器。用移位寄存器把长串的 0 或长串的 1 打散。线路编码器。把 8 位数据编成 10 位保证线上有足够的跳变对方才能从数据里恢复时钟。把数从一边送到另一边同步 FIFO。读写同一个时钟。满了停写空了停读。异步 FIFO。读写各用各的时钟。读写指针用格雷码送到对面保证跨时钟时只有一位在变。跨时钟同步器。一根单 bit 信号换时钟时连续打两拍再往下用。仲裁器。几路同时要用同一份资源决定这一拍给谁。消抖器。电平稳定连续若干拍才承认它变了。
返回列表