FPGA之术语

FPGA之术语

    • IOSTANDARD
    • DIFF_SSTL12:
    • LVCMOS33:
    • sys_clk_p/n:
    • rst_n:
    • UART
    • 时钟
    • JTAG:
    • GPIO
    • ONFI
    • PCIe

IOSTANDARD

在电子工程领域,DIFF_SSTL12和LVCMOS33是两种不同的电气标准,用于定义信号的电压级别和特性。

IOSTANDARD是一个在FPGA(现场可编程门阵列)设计中使用的术语,它指的是用于定义I/O(输入/输出)引脚电气特性的标准。这些标准确保了FPGA的I/O引脚能够与外部设备或电路兼容,并且可以按照预期的方式进行通信。

在FPGA设计中,不同的IOSTANDARD可以影响信号的电压水平、速度、驱动能力等。以下是一些常见的IOSTANDARD:

LVCMOS:

这是低电压互补金属氧化物半导体标准,用于定义3.3V或1.8V的单端I/O信号。
HSTL:

高速传输线标准,用于高速信号传输,通常用于1.5V或1.8V的I/O。
SSTL:

串行传输线标准,用于高速串行数据传输,通常与差分信号一起使用。
DIFF_SSTL:

差分版本的SSTL标准,用于高速差分信号传输。
LVDS:

低电压差分信号标准,用于长距离、高速数据传输。
Vivado:

Xilinx的Vivado设计套件中,IOSTANDARD属性可以指定在FPGA设计中使用的电气标准。
I/O Bank:

在FPGA中,I/O Bank是一组具有相同电气特性的I/O引脚。
I/O Constraints:

在FPGA设计中,I/O约束(Constraints)用于定义I/O引脚的电气特性,包括IOSTANDARD。
I/O Delay:

有时,IOSTANDARD的指定也与I/O延迟有关,用于同步信号。
I/O Buffer:

I/O Buffer是FPGA中用于驱动I/O引脚的电路,它可以根据IOSTANDARD进行配置。
在设计FPGA时,选择正确的IOSTANDARD对于确保设计的性能和可靠性至关重要。设计者需要根据外部设备的电气特性和设计要求来选择合适的IOSTANDARD。例如,如果设计需要与使用1.8V LVCMOS标准的外部设备通信,那么FPGA的相应I/O引脚也需要配置为1.8V LVCMOS IOSTANDARD。

DIFF_SSTL12:

DIFF代表差分信号,意味着数据通过一对互补的信号线传输,以减少噪声和提高信号完整性。
SSTL12是串行总线标准,其中"S"代表串行,"STL"代表串行总线逻辑,"12"表示电压级别,通常指的是1.2V的差分电压标准。

SSTL(Serial Source-Synchronous Interface Level)是一种串行接口标准,主要用于高速数据传输。
DIFF表示差分信号,即信号通过一对互补的信号线传输,这有助于减少噪声和提高信号的完整性。
"12"指的是信号的电压水平,表示在差分信号中,电压摆动(swing)从0V到1.2V。这种电压水平较低,有助于减少功耗和电磁干扰(EMI)。

LVCMOS33:

LVCMOS代表低电压互补金属氧化物半导体,这是一种常用的数字电路标准。
33表示电压级别,通常指的是3.3V的单端电压标准。

LVCMOS(Low Voltage CMOS)是一种低电压互补金属氧化物半导体标准,广泛用于数字电路。
"33"表示这种标准使用的电压水平为3.3V。LVCMOS33通常用于低速或中等速度的数字电路,因为它的电压水平较高,但功耗相对较大。

DIFF_SSTL12和LVCMOS33是两种不同的电气接口标准,它们定义了信号的电压水平和特性,通常用于高速数字电路的信号传输。下面是对这两种标准的详细比较:

电压水平:DIFF_SSTL12的电压水平较低(1.2V),而LVCMOS33的电压水平较高(3.3V)。
信号类型:DIFF_SSTL12使用差分信号,而LVCMOS33使用单端信号。
应用场景:DIFF_SSTL12更适合高速数据传输,因为它的差分特性有助于减少噪声和提高信号完整性。LVCMOS33则更适用于低速或中等速度的数字电路,因为它的电压水平较高,信号更容易被检测。
设计考虑:

在设计电路时,需要根据应用的具体需求选择合适的电气标准。例如,如果需要高速数据传输,可能会选择DIFF_SSTL12。如果对功耗要求不高,且电路速度不是主要考虑因素,可能会选择LVCMOS33。
兼容性:

在实际应用中,可能需要在不同的电气标准之间进行接口转换,例如使用电平转换器将LVCMOS33信号转换为DIFF_SSTL12信号,或者反之。
信号完整性:

差分信号(如DIFF_SSTL12)在长距离传输和高速应用中具有更好的信号完整性,因为它们对外部噪声的抵抗能力更强。

在电子设计中,选择不同的电气标准(如DIFF_SSTL12和LVCMOS33)通常基于以下几个考虑因素:

信号完整性: DIFF_SSTL12是一种差分信号标准,它提供了更好的信号完整性和抗干扰能力。差分信号可以减少电磁干扰(EMI)和信号退化,因为它们通过测量两个信号之间的电压差来确定信号状态,而不是每个信号的绝对电压。

速度: 差分信号通常用于高速数据传输,因为它们可以更快速地切换状态,并且信号传播延迟较小。SSTL12标准可能被设计用于高速信号传输,而LVCMOS33可能用于较低速度的信号。

功耗: LVCMOS33标准由于其较高的电压水平,可能在某些情况下提供更好的功耗效率,尤其是在不需要高速传输的场合。

兼容性: 设计者可能需要确保系统时钟与外部设备的接口兼容。如果外部设备使用LVCMOS33标准,那么使用rst_n作为低电平有效的复位信号可能更合适。

设计复杂性: 在某些情况下,使用LVCMOS33标准可能简化设计,因为这种标准在许多现有的电子系统中已经广泛使用,并且可能更容易与其他组件集成。

成本: 选择不同的电气标准可能会影响生产成本。在某些情况下,使用LVCMOS33可能更经济,因为它可能需要更少的定制化设计。

系统要求: 系统设计可能要求某些信号使用特定的电气标准以满足特定的性能或功能需求。

信号类型: sys_clk_p/n作为系统时钟信号,使用差分信号可以提供更准确的同步,而rst_n作为复位信号,可能不需要高速传输,因此使用LVCMOS33标准可能足够。

安全和可靠性: 在某些应用中,使用差分信号可以提高系统的可靠性和安全性,因为它们对噪声的抵抗能力更强。

技术规范: 不同的信号可能遵循不同的技术规范或行业标准,这可能要求使用特定的电气标准。

综上所述,选择DIFF_SSTL12作为系统时钟信号的电气标准,以及LVCMOS33作为复位信号的电气标准,是基于多种设计考虑和技术要求的结果。

sys_clk_p/n:

这些通常指的是系统时钟的正相(sys_clk_p)和负相(sys_clk_n)输入。在差分信号中,它们一起工作以提供精确的时钟信号。

系统时钟的正相(sys_clk_p)和负相(sys_clk_n)是差分信号传输中的两个互补的信号。差分信号传输是一种在电子通信中广泛使用的技术,它通过使用成对的信号线来传输信息,其中一个信号线表示正相,另一个表示负相。

set_property PACKAGE_PIN AL8 [get_ports sys_clk_p] #这行代码为sys_clk_p(可能代表系统时钟的正相位)指定了物理引脚位置AL8。set_property是Tcl中用于设置属性的命令,PACKAGE_PIN属性指定了FPGA封装中引脚的物理位置。
set_property IOSTANDARD DIFF_SSTL12 [get_ports sys_clk_p] #此行设置了sys_clk_p的输入/输出标准为DIFF_SSTL12,这是一种差分信号标准,适用于高速或高稳定性的时钟信号。
set_property IOSTANDARD DIFF_SSTL12 [get_ports sys_clk_n] #这行代码为sys_clk_n(可能代表系统时钟的负相位)设置了相同的差分信号标准DIFF_SSTL12。

sys_clk_p/n作为系统时钟信号,使用差分信号可以提供更准确的同步,而rst_n作为复位信号,可能不需要高速传输,因此使用LVCMOS33标准可能足够。

下面是一些关于这两个信号的详细说明:

差分信号:

差分信号传输可以提高信号的完整性和抗干扰能力。由于信号是通过一对互补的信号线传输的,因此它们之间的电压差代表了实际的信号状态。
sys_clk_p:

正相信号通常标记为sys_clk_p,它代表了时钟信号的高电平部分。在数字电路中,高电平通常与逻辑"1"相对应。
sys_clk_n:

负相信号通常标记为sys_clk_n,它代表了时钟信号的低电平部分。在数字电路中,低电平通常与逻辑"0"相对应。
时钟信号的作用:

系统时钟是同步数字电路操作的基准信号。它为电路中的逻辑门和寄存器提供同步脉冲,确保数据在正确的时刻被读取或写入。
差分时钟的优势:

使用差分时钟可以减少电磁干扰(EMI)和信号退化,因为信号的完整性不受外部噪声的影响。差分信号的接收端通过比较两个信号线的电压差来确定信号状态,而不是单独测量每个信号线的绝对电压。
应用场景:

差分时钟信号在高速数据传输和长距离通信中尤为重要,例如在高速串行通信接口(如PCIe、SATA、USB等)中。
信号完整性:

在设计高速电路时,信号完整性是一个关键考虑因素。差分信号有助于减少信号的时延和失真,从而确保数据传输的准确性。
差分时钟信号是现代电子设计中的一个重要组成部分,特别是在需要高速和高可靠性的系统中。

rst_n:

这是复位信号,其中"n"代表它是低电平有效的,意味着当信号为低电平时,系统或设备会进行复位。

set_property PACKAGE_PIN AN12 [get_ports rst_n] #这行代码为复位信号rst_n(低电平有效的复位信号)指定了物理引脚位置AN12。
set_property IOSTANDARD LVCMOS33 [get_ports rst_n] #此行为rst_n设置了输入/输出标准为LVCMOS33,这是一种低电压互补金属氧化物半导体标准,适用于3.3V的工作电压。

UART

UART,即通用异步接收/发送装置(Universal Asynchronous Receiver/Transmitter),是一种串行通信协议和设备,用于计算机和电子设备之间的数据传输。以下是UART的一些关键特性和功能:

异步通信:

UART使用异步通信方式,这意味着发送和接收设备不需要共享一个时钟信号来同步数据传输。
数据传输速率:

数据传输速率由波特率(Baud Rate)决定,这是每秒传输的比特数。常见的波特率有9600、19200、38400、115200等。
串行数据:

UART通过串行方式传输数据,即每次传输一个比特。
数据帧:

数据通常以帧的形式传输,一个数据帧包括起始位、数据位、奇偶校验位(可选)和停止位。
起始位:

每个数据帧开始时,UART发送一个起始位,通常为0。
数据位:

数据位是传输数据的核心部分,常见的数据位长度有7位、8位等。
奇偶校验位:

可选的奇偶校验位用于错误检测,可以是奇校验或偶校验。
停止位:

数据帧传输结束后,UART发送一个或两个停止位,通常为1,用于标识数据帧的结束。
全双工通信:

UART支持全双工通信,即可以同时发送和接收数据。
连接方式:

UART通常通过串行接口,如RS-232、RS-485等,连接到其他设备。
应用场景:

UART广泛应用于计算机、微控制器、调制解调器、传感器等设备的数据通信。
硬件实现:

UART可以作为独立芯片或集成在微控制器、FPGA等设备中。
软件配置:

UART的波特率、数据位、停止位和奇偶校验等参数通常可以通过软件配置。
中断和DMA:

许多微控制器中的UART模块支持中断和直接内存访问(DMA),以提高数据传输的效率和灵活性。
UART是一种非常基本但广泛使用的串行通信协议,适用于各种低速到中等速度的数据传输应用。

set_property PACKAGE_PIN D11 [get_ports {uart_rx}]
set_property IOSTANDARD LVCMOS33 [get_ports {uart_rx}]set_property PACKAGE_PIN D10 [get_ports {uart_tx}]
set_property IOSTANDARD LVCMOS33 [get_ports {uart_tx}]

这些命令用于设置FPGA引脚的属性。Tcl是一种脚本语言,常用于自动化设计流程和配置FPGA。下面是对这些命令的解释:

set_property: 这是一个Tcl命令,用于设置FPGA设计中的属性。

PACKAGE_PIN: 这个属性指定了FPGA芯片上的物理引脚。在这个例子中,D11和D10是FPGA芯片上的引脚编号。

get_ports {uart_rx} 和 get_ports {uart_tx}: 这些是Tcl命令,用于获取名为uart_rx和uart_tx的端口。uart_rx通常代表UART(通用异步接收/发送装置)接收端口,而uart_tx代表UART发送端口。

IOSTANDARD: 这个属性定义了FPGA引脚的电气标准。在这个例子中,LVCMOS33被设置为uart_rx和uart_tx端口的电气标准。

LVCMOS33: 这是一个电气标准,表示低电压互补金属氧化物半导体,33表示3.3V的逻辑电平。这通常用于低速或中等速度的数字信号。

这些命令的作用是将FPGA设计中的UART接收和发送端口分别映射到物理引脚D11和D10上,并且指定这两个引脚使用LVCMOS33电气标准。这样配置后,设计中的UART通信就可以通过这些特定的引脚与外部设备进行交互。

在实际的FPGA设计过程中,这样的脚本可以帮助自动化引脚分配和电气配置,确保设计满足特定的硬件要求和接口标准。

时钟

create_clock -period 20.000 -name clk -waveform {0.000 10.000} [get_ports clk]
set_property C_CLK_INPUT_FREQ_HZ 300000000 [get_debug_cores dbg_hub]
set_property C_ENABLE_CLK_DIVIDER false [get_debug_cores dbg_hub]
set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]
connect_debug_port dbg_hub/clk [get_nets clk_IBUF_BUFG]

create_clock:

这个命令用于创建一个新的时钟定义。它指定了时钟的周期(以纳秒为单位)和时钟的波形(上升沿和下降沿的时间)。

-period 20.000: 表示时钟周期为20纳秒,即50MHz的频率。

-name clk: 给创建的时钟定义命名为clk。

-waveform {0.000 10.000}: 定义时钟的波形,0.000表示时钟开始时为0,10.000表示时钟在10纳秒后变为1。

[get_ports clk]:

这个命令获取名为clk的端口,并将创建的时钟定义应用到这个端口上。
set_property C_CLK_INPUT_FREQ_HZ 300000000 [get_debug_cores dbg_hub]:

这个命令为调试核心dbg_hub设置了时钟输入频率的属性,这里是300MHz。
set_property C_ENABLE_CLK_DIVIDER false [get_debug_cores dbg_hub]:

这个命令设置调试核心dbg_hub的时钟分频器属性为false,表示不启用时钟分频。
set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]:

这个命令设置调试核心dbg_hub的用户扫描链属性为1,这可能与测试或调试配置有关。
connect_debug_port dbg_hub/clk [get_nets clk_IBUF_BUFG]:

这个命令将调试核心dbg_hub的时钟端口clk连接到名为clk_IBUF_BUFG的网络。这通常意味着将外部时钟信号通过一个输入缓冲器(IBUF)和一个全局时钟缓冲器(BUFG)连接到调试核心。
这些命令通常用于FPGA设计中的时钟管理和调试接口配置,确保设计满足特定的时钟要求和调试需求。通过这些设置,设计者可以精确控制时钟信号的频率和相位,以及如何将时钟信号连接到FPGA的调试逻辑。

JTAG:

JTAG是联合测试行动组的缩写,是一种标准的测试接口,用于对电子设备进行测试和编程。TAG是一种用于测试印刷电路板上芯片之间连接的标准,也用于芯片内部的编程和调试。JTAG接口允许对芯片进行在线测试(例如边界扫描测试)和固件更新。
用途:JTAG主要用于设备制造和维修期间的故障诊断、调试以及固件更新。

GPIO

GPIO是通用输入输出的缩写,指的是可以配置为输入或输出的数字信号引脚。GPIO是微控制器、微处理器或FPGA等数字电路中的一种通用引脚,可以被程序设置为输入或输出。GPIO用于各种简单的输入输出功能,如读取按钮状态、控制LED等。
用途:GPIO非常灵活,用于基本的数字信号操作。

ONFI

ONFI是开放NAND闪存接口的缩写,是一个行业标准,定义了NAND闪存的接口规范。ONFI是一种为NAND闪存芯片定义的标准接口。它由多个大型半导体公司共同开发,旨在标准化NAND闪存的接口,以确保不同厂商的产品之间的互操作性。
用途:ONFI使得系统设计者可以不受供应商限制地选择NAND闪存芯片,因为符合ONFI标准的芯片能保证相互兼容。

PCIe

PCIe是周边组件互连快速总线的缩写,是一种高速串行输入/输出总线标准,用于计算机硬件设备之间的连接。PCIe是一种高速串行计算机扩展总线标准,用于连接主板的中央处理单元与扩展卡及其他设备。PCIe提供比旧的并行PCI总线更高的基带带宽和更低的引脚计数。
用途:PCIe广泛应用于高性能数据传输需求的设备,如显卡、固态硬盘、网络卡等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/42343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring MVC深入理解之源码实现

1、SpringMVC的理解 1)谈谈对Spring MVC的了解 MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码。 Model:数据模型,JavaBean的类,用来进行数据封装…

【cocos2dx】【iOS工程】如何保存用户在游戏内的绘画数据,并将数据以图像形式展示在预览界面

【cocos2dx】【iOS工程】如何保存用户在应用内的操作数据,并将数据以图像形式展示在预览界面 设备/引擎:Mac(11.6)/Mac Mini 开发工具:Xcode(15.0.1) 开发需求:如何保存用户在应用…

富格林:抓住正规稳健出金思路

富格林指出,凡事要学会抓住正规思路避繁就简,才会顺利达到终点。在现货黄金市场中,投资者必须学会抓对正规趋势,才是走向盈利出金的根本保障。以下是富格林投资总结的几个观点和建议,希望能帮助投资者实现稳健出金。 …

算法基础之分治法

算法原理 对于一个规模为 n n n 的子问题,若该问题可以容易地解决则直接解决,否则将其分解为 k k k 个规模较小的子问题,这些子问题相互独立且与原问题形式相同。递归地解决这些子问题,然后将各子问题的解合并得到原问题的解&a…

单链表详解(2)

三、函数定义 查找节点 //查找结点 SLTNode* SLTNodeFind(SLTNode* phead, SLTDataType x) {assert(phead);SLTNode* pcur phead;while (pcur){if (pcur->data x){return pcur;}pcur pcur->next;}return NULL; } 查找节点我们是通过看数据域来查找的,查…

Arm64 基础指令集介绍

按照字母排序顺序: ● ADC:带进位加法。 ● ADCS:带进位加法,设置标志位。 ● ADD (extended register):扩展寄存器加法。 ● ADD (immediate):立即数加法。 ● ADD (shifted register):移位寄存…

【MySQL05】【 undo 日志】

文章目录 一、前言二、undo 日志(回滚日志)1. 事务 id2. undo 日志格式2.1 INSERT 对应的 undo 日志2.2 DELETE 对应的 undo 日志2.3 UPDATE 对应的 undo 日志2.3.1 不更新主键2.3.2 更新主键 2.3 增删改操作对二级索引的影响2.4 roll_pointer 3. FIL_PA…

Windows 网络重置

netsh int ip reset 命令是用于重置 Windows 操作系统中的网络设置和配置的命令。 在网络故障排除、修复网络连接问题以及清除可能存在的网络配置冲突时非常有用。 命令详解: netsh: 用于配置各种网络设置 int: 用于管理网络接口 ip: 用于管理网络接口的 IP 配…

layui项目中的layui.define、layui.config以及layui.use的使用

第一步:创建一个layuiTest项目,结构如下 第二步:新建一个test.js,利用layui.define定义一个模块test,并向外暴露该模块,该模块里面有两个方法method1和method2. 第三步:新建一个test.html,在该页面引入layui.js&#x…

基于FPGA的LDPC编译码算法设计基础知识

基于FPGA的LDPC编译码算法设计基础知识 数字电路(数电)知识模拟电路(模电)知识1. 放大器1.1. 晶体管放大器1.2. 运算放大器1.3. 管子放大器(真空管放大器)微处理器/单片机知识其他相关知识 基于FPGA的算法设…

neo4j 图数据库:Cypher 查询语言、医学知识图谱

neo4j 图数据库:Cypher 查询语言、医学知识图谱 Cypher 查询语言创建数据查询数据查询并返回所有节点查询并返回所有带有特定标签的节点查询特定属性的节点及其所有关系和关系的另一端节点查询从名为“小明”的节点到名为“小红”的节点的路径 更新数据更新一个节点…

python爬虫和用腾讯云API接口进行翻译并存入excel,通过本机的Windows任务计划程序定时运行Python脚本!

项目场景: 提示:这里简述项目相关背景:定时爬取外网的某个页面,并将需要的部分翻译为中文存入excel 接下了的,没学过的最好看一下 基本爬虫的学习 【爬虫】requests 结合 BeautifulSoup抓取网页数据_requests beauti…

Vue CoreVideoPlayer 一款基于 vue.js 的轻量级、优秀的视频播放器组件

大家好,我是程序视点的小二哥!今天小二哥给大家推荐一款非常优秀的视频播放组件 效果欣赏 介绍 Vue-CoreVideoPlayer 一款基于vue.js的轻量级的视频播放器插件。 采用Adobd XD进行UI设计,支持移动端适配,不仅功能强大,颜值也是超一流! Vue-…

第一次构建一个对话机器人流程解析(二)

1. 问答机器人的组成-基于知识图谱的搜索 在教育场景下,若学生有关于学习内容的提问,或业务层面的提问,则要求问答机器人的回答必须精准,来满足业务的要求因此需要通过知识图谱来快速检索,所提内容的相关信息&#xf…

数字系统与进制转换

数字系统 数字逻辑是计算机科学的基础,它研究的是如何通过逻辑门电路(与门、或门、非门等)实现各种逻辑功能。数字系统则是由数字逻辑电路组成的系统,可以实现各种复杂的运算和控制功能。在计算机科学中,数字逻辑和数…

C++ 假设今天是星期日,那么过a^b天之后是星期几?

题目 假设今天是星期日&#xff0c;那么过a^b天之后是星期几&#xff1f; 【输入】 两个正整数a&#xff0c;b&#xff0c;中间用单个空格隔开。0<a≤100,0<b≤10000。 【输出】 一个字符串&#xff0c;代表过a^b天之后是星期几。 其中&#xff0c;Monday是星期一&…

自定义波形图View,LayoutInflater动态加载控件保存为本地图片

效果图: 页面布局: <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="…

C#多线程并行计算实例

在C#中实现多线程并行计算可以通过使用 Task 和 Parallel 类来实现。这里给出两个简单的示例&#xff0c;一个是使用 Task&#xff0c;另一个是使用 Parallel.ForEach。 使用 Task 进行多线程并行计算 using System; using System.Threading.Tasks;class Program {static voi…

Kubernetes基于helm部署jenkins

Kubernetes基于helm安装jenkins jenkins支持war包、docker镜像、系统安装包、helm安装等。在Kubernetes上使用Helm安装Jenkins可以简化安装和管理Jenkins的过程。同时借助Kubernetes&#xff0c;jenkins可以实现工作节点的动态调用伸缩&#xff0c;更好的提高资源利用率。通过…

MySQL Innodb存储引擎中,当页默认的大小是16K时,页中最多存放多少行的记录?

1、题目引入 Innodb存储引擎是面向行的(row-oriented)&#xff0c;也就是说数据的存放按行进行&#xff0c;每页存放的行记录是有硬性定义的&#xff0c;当页默认的大小是16K时&#xff0c;页中最多存放多少行的记录&#xff1f; A、1600 行B、8192 行C、16383 行D、7992 行 …