pcie x16接口定义_SIlist【中国】NVME,PCIE和U.2(SFF8639)这一家

本文介绍了NVME、PCIE和U.2(SFF8639)之间的关系。PCIE是一种总线标准,SFF8639即U.2接口,常用于硬盘,可传输PCIE信号。NVME是一种高速非易失性存储协议,通过建立多个队列提高数据传输速度。理解这些概念有助于选择合适的SSD存储设备。

最近做了个NVME4.0的一致性测试夹具如下图,SFF8639接口,PCIE的传输模式,现在捋一捋这三位啥关系。

d6d5764c12a93618e9a111f8162c34f4.png

先说接触最广的PCIE,这个不难理解,这个是总线标准,X1,X4,X8,X16,外形啥样,当然是金手指,但是左边那个金手指好像不是PCIE的接口,这个时候就要来说SFF8639,其实这个SFF8639就是我们经常说的U.2接口,不用解释,看着就是给硬盘用的。

dd5fff396b267ba1104e922ee015c018.png

为什么它和PCIE扯上关系,我们看下接口定义

b5b2c50614f1d5748090db11a6bbc66a.png

有管脚定义是ePCIE Transmit或者receiver,这也就是PCIE协议的传输通道,所以在这里SFF8639是个接口,可以通过这个接口走PCIE的信号,一点不矛盾。你也可以把这个接口换成M.2或者直接换成PCIE的金手指,没任何问题,无非就是外形变了,走的还可以是PCIE信号,不止如此,我们看信号定义发现它也支持SAS

最后来说NVMENVME其实是个通信协议,全称是Nonvolatile Memory Express(非易失性存储),听名字就知道是个软件东东,所以你可以把它和硬件分开。

73630c3c138d949081d9c5ab4d53449c.png

从图上看到,它本质是上建立了多个计算机与存储设备的通路,这样搬运数据的速度自然就提高了。在NVMe协议中,多个通路其实就是多个队列,而在SATA中计算机与存储设备只能有一个队列,即使是多CPU情况下,所有请求只能经过这样一个狭窄的道路。而NVMe协议可以最多有64K个队列,每个CPU或者核心都可以有一个队列,这样并发程度大大提升,性能也自然更高了。

好了,基本都搞明白了吧,是不是1+1+1>3呢,买SSD的时候不要被坑哦!

92592d1889b374292af71a0f336a8e69.png

Implementation Write Bitstream DRC Pin Planning [DRC NSTD-1] Unspecified I/O Standard: 12 out of 111 logical ports use I/O standard (IOSTANDARD) value 'DEFAULT', instead of a user assigned specific value. This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all I/O standards. This design will fail to generate a bitstream unless all logical ports have a user specified I/O standard value defined. To allow bitstream creation with unspecified I/O standard values (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks NSTD-1]. NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run. Problem ports: nvme_ssd2_pcie_tx3_n, nvme_ssd2_pcie_tx2_p, nvme_ssd2_pcie_tx2_n, nvme_ssd2_pcie_tx1_p, nvme_ssd2_pcie_tx1_n, nvme_ssd2_pcie_tx3_p, nvme_ssd1_pcie_tx1_n, nvme_ssd1_pcie_tx1_p, nvme_ssd1_pcie_tx2_n, nvme_ssd1_pcie_tx2_p, nvme_ssd1_pcie_tx3_n, and nvme_ssd1_pcie_tx3_p. [DRC UCIO-1] Unconstrained Logical Port: 12 out of 111 logical ports have no user assigned specific location constraint (LOC). This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all pin locations. This design will fail to generate a bitstream unless all logical ports have a user specified site LOC constraint defined. To allow bitstream creation with unspecified pin locations (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks UCIO-1]. NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run. Problem ports: nvme_ssd2_pcie_tx3_n, nvme_ssd2_pcie_tx2_p, nvme_ssd2_pcie_tx2_n, nvme_ssd2_pcie_tx1_p, nvme_ssd2_pcie_tx1_n, nvme_ssd2_pcie_tx3_p, nvme_ssd1_pcie_tx1_n, nvme_ssd1_pcie_tx1_p, nvme_ssd1_pcie_tx2_n, nvme_ssd1_pcie_tx2_p, nvme_ssd1_pcie_tx3_n, and nvme_ssd1_pcie_tx3_p. [Vivado 12-1345] Error(s) found during DRC. Bitgen not run. 目的就是不管这部分的引脚io,生成bit抓其他配置引脚的信号就行
08-15
<think>首先,用户的问题是关于Vivado的DRC错误:他们想忽略DRC错误[NSTD-1][UCIO-1],强制生成bitstream而不指定所有I/O标准引脚位置约束。用户提供了引用,表明他们可能没有指定所有I/O标准或引脚位置,导致错误。 关键点: - DRC NSTD-1:错误表明有未指定的I/O标准(IOSTANDARD)。一些端口使用默认值而不是用户指定的值。 - DRC UCIO-1:错误表明有未约束的I/O(未指定引脚位置)。 - 用户想忽略这些错误,强制生成bitstream,可能是为了调试或部分验证。 从引用中: - 引用[1][2]:描述了错误,并建议指定所有I/O标准或使用命令来降低严重性。 - 引用[3]:提供了一种解决方案,使用Tcl命令将DRC检查的严重性从错误降为警告,从而允许生成bitstream。 所以,解决方案是使用Tcl命令在Vivado中设置DRC检查的严重性为警告: - 对于NSTD-1:`set_property SEVERITY {Warning} [get_drc_checks NSTD-1]` - 对于UCIO-1:`set_property SEVERITY {Warning} [get_drc_checks UCIO-1]` 用户提到“强制生成bitstream”,所以需要确保这些命令在生成bitstream之前运行。 步骤: 1. 在Vivado中,打开Tcl控制台。 2. 运行命令来改变DRC检查的严重性。 3. 然后生成bitstream。 或者,作为预生成钩子(pre-hook),以便在运行实现时自动应用。 回答结构: - 由于用户使用中文,回答必须用中文。 - 结构清晰:解释问题,提供解决方案,步骤详细。 - 添加引用标识在相关段落末尾。 - 生成相关问题。 系统指令: - 行内数学表达式用$...$,但这个问题不涉及数学,所以可能不需要。 - 独立公式用$$...$$,同样不适用。 - LaTeX语法正确:确保任何代码或命令格式正确。 - 使用中文回答。 - 生成相关问题。 - 引用标识:在引用的内容末尾添加[^1], [^2], 等。 用户需求: - 忽略特定引脚的DRC错误,生成bitstream。 - 可能只关心某些信号,而忽略其他未指定的。 解决方案: 1. 使用Tcl命令临时忽略错误。 2. 在生成bitstream之前运行这些命令。 3. 如果使用Vivado Runs基础设施,添加预钩子脚本。 完整步骤: - 打开Vivado项目。 - 在Tcl控制台中输入: ``` set_property SEVERITY {Warning} [get_drc_checks NSTD-1] set_property SEVERITY {Warning} [get_drc_checks UCIO-1] ``` - 然后运行`write_bitstream`命令或通过GUI生成bitstream。 为了自动化,创建.tcl文件并添加为预钩子。 相关问题生成: 基于主题,生成关于Vivado DRC错误、bitstream生成、FPGA调试的问题。 相关问题示例: 1. 如何永久解决DRC NSTD-1错误? 2. 在Vivado中,如何添加引脚约束? 3. 忽略DRC错误可能有什么风险? 4. 如何为特定运行设置预钩子脚本? 5. Vivado中其他常见DRC错误及解决方法? 确保回答真实可靠:基于引用标准Vivado实践。</think>### 如何在Vivado中忽略DRC错误[NSTD-1][UCIO-1]强制生成Bitstream 在Vivado中,DRC(Design Rule Check)错误[NSTD-1][UCIO-1]通常是由于未完全指定I/O标准(IOSTANDARD)或引脚位置约束导致的。这些错误会阻止生成bitstream文件,影响调试或部分功能验证。根据您的需求(忽略特定引脚的错误,强制生成bitstream以捕获其他信号),以下是安全可靠的解决方案。**核心方法是使用Tcl命令临时降低DRC检查的严重性**,将错误降级为警告,从而允许生成bitstream。但需注意:忽略这些错误可能导致信号完整性风险或硬件损坏,仅推荐用于调试阶段[^1][^2][^3]。 #### 步骤详解:强制生成Bitstream 1. **打开Vivado Tcl控制台** 在Vivado GUI中,点击下方"Tcl Console"标签页(或通过"Tools" > "Run Tcl Script")。如果使用命令行模式,确保在项目目录下操作。 2. **运行Tcl命令忽略DRC错误** 在Tcl控制台中输入以下命令,将[NSTD-1][UCIO-1]的严重性从"Error"降为"Warning"。这不会修复错误,但允许bitstream生成: ```tcl set_property SEVERITY {Warning} [get_drc_checks NSTD-1] set_property SEVERITY {Warning} [get_drc_checks UCIO-1] ``` 命令说明: - `set_property SEVERITY {Warning}`:设置检查结果为警告而非错误。 - `[get_drc_checks NSTD-1]`:针对未指定I/O标准的错误(如端口使用`DEFAULT`而非具体值)。 - `[get_drc_checks UCIO-1]`:针对未约束I/O的错误(如引脚位置未绑定)。 执行后,Vivado将不再阻塞bitstream生成[^3]。 3. **生成Bitstream** 运行以下命令生成bitstream文件: ```tcl write_bitstream -force <output_file_name>.bit ``` 或通过GUI操作:"Generate Bitstream"。 - `-force`参数确保忽略剩余警告。 - 输出文件默认在`<project_dir>/<project.runs/impl_1>`目录下。 4. **自动化方法(推荐用于多次运行)** 若需在每次生成bitstream时自动忽略错误,创建预钩子(pre-hook)脚本: - 新建一个Tcl文件(如`ignore_drc.tcl`),内容为步骤2的命令。 - 在Vivado中,将该脚本添加为"write_bitstream"步骤的钩子: ```tcl set_property STEPS.WRITE_BITSTREAM.TCL.PRE [get_files ignore_drc.tcl] [get_runs impl_1] ``` 这确保在bitstream生成前自动应用忽略规则[^2][^3]。 #### 注意事项 - **风险提示**:忽略DRC错误可能导致I/O冲突、信号完整性问题,或在极端情况下损坏硬件。仅适用于未使用的引脚(如您提到的LED端口)或临时调试[^1][^2]。 - **恢复默认设置**:调试完成后,运行以下命令恢复DRC检查: ```tcl set_property SEVERITY {Error} [get_drc_checks NSTD-1] set_property SEVERITY {Error} [get_drc_checks UCIO-1] ``` - **最佳实践**:长期解决方案是为所有I/O指定约束。例如,在XDC文件中添加: ```tcl set_property IOSTANDARD LVCMOS33 [get_ports SYS_CLK] set_property PACKAGE_PIN AA1 [get_ports SYS_CLK] ``` #### 引用说明 [^1]: Vivado生成bitstream时,未指定I/O标准会触发DRC NSTD-1错误,可能导致性能或硬件问题。 [^2]: 通过降低DRC严重性,可临时允许bitstream生成,但需谨慎处理未约束端口。 [^3]: 使用Tcl脚本忽略错误是验证部分功能的可行方法,尤其当某些信号无法物理约束时。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值