输入 / 输出延迟单元( IODELAY )简介
每个 I/O 模块包含一个可编程绝对延迟单元,称为 IODELAY 。 IODELAY 可以连接到
ILOGIC/ISERDES 或 OLOGIC/OSERDES 模块,也可同时连接到这两个模块。 IODELAY 是
具有 64 个 tap 的环绕延迟单元,具有标定的 tap 分辨率(见附图 1 )。 IODELAY 可用于组
合输入通路、寄存输入通路、组合输出通路或寄存输出通路,还可以在内部资源中直接使用。
IODELAY 允许各输入信号有独立的延迟。通过在《 Virtex-5 数据手册》中规定的范围内选
择 IDELAYCTRL 参考时钟,可以改变 tap 延迟分辨率。 IODELAY 资源可用作 IDELAY 、
ODELAY 或组合延迟。
1 、当用作 IDELAY 时,数据从 IBUF 或内部资源输入,然后输出到 ILOGIC/ISERDES 。
有三种可用操作模式:
• 零保持时间延迟模式( IDELAY_TYPE = DEFAULT )
这种操作模式允许向后兼容,以使用 Virtex-II 、 Virtex-II Pro 和 Virtex-4 器件中的零保
持时间延迟功能的设计。当在没有 DCM 的情况下使用全局时钟采集数据(引脚到引脚参数)
时,用这种延迟单元提供“非正保持时间”。在这种模式下使用时,不需要例化 IDELAYCTRL
基元。有关更多详情,请见“ IDELAYCTRL 用法及设计指导原则”。
• 固定延迟模式( IDELAY_TYPE = FIXED )
在固定延迟模式下,配置时将延迟值预设置成由属性 IDELAY_VALUE 确定的 tap 数。
此值配置后不可更改。在这种模式下使用时,必须例化 IDELAYCTRL 基元。有关更多详情,
请见“ IDELAYCTRL 用法及设计指导原则”。
• 可变延迟模式( IDELAY_TYPE = VARIABLE )
在可变延迟模式下,可以在配置后通过操控控制信号 CE 和 INC 来改变延迟值。在这
种模式下使用时,必须例化 IDELAYCTRL 基元。有关更多详情,请见“ IDELAYCTRL
用法及设计指导原则”。
2 、当用作 ODELAY 时,数据从 OLOGIC/OSERDES 输入,然后输出到 OBUF 。有一种
可用操作模式:
• 固定延迟输出模式
在固定延迟输出模式下,配置时将延迟值预设置成由属性 ODELAY_VALUE 确定的 tap
数。此值配置后不可更改。在这种模式下使用时,必须例化 IDELAYCTRL 基元。有关更多
详情,请见“ IDELAYCTRL 用法及设计指导原则”。
3 、当用作双向延迟时,将 IOB 配置成双向模式。 IODELAY 交替延迟输入通路和输出
通路上的数据。有两种可用操作模式:
• 固定 IDELAY ( IDELAY_TYPE = FIXED )和固定 ODELAY 模式
在 这 种 模 式 下 , IDELAY 和 ODELAY 的 值 都 是 在 配 置 时 预 设 置 , 分 别 由
IDELAY_VALUE 和 ODELAY_VALUE 属性确定。此值配置后不可更改。在这种模式下使
用时,必须例化 IDELAYCTRL 基元。有关更多详情,请见“ IDELAYCTRL 用法及设
计指导原则”。
• 可变 IDELAY ( IDELAY_TYPE = VARIABLE )和固定 ODELAY 模式
在这种模式下,只有 IDELAY 值可以在配置后通过操控控制信号 CE 和 INC 来动态更
改。 IODELAY 基元中 T 引脚的逻辑级别动态确定模块是 IDELAY 模式还是 ODELAY 模式。
在这种模式下使用时,必须例化 IDELAYCTRL 基元。有关更多详情,请见“ IDELAYCTRL
用法及设计指导原则”。
表 1-1 列出了 IODELAY 支持的配置。
表 1-1 : IODELAY 支持的配置
IODELAY 基元
图 1-1 所示为 IODELAY 基元。
图 1-1 : IODELAY 基元
表 1-2 列出了 IODELAY 基元中的可用端口。所有端口均为 1 位宽。
表 1-2 : IODELAY 基元端口
IODELAY 端口
来自 IOB 的数据输入 -IDATAIN
IDATAIN 输入由相应的 IOB 驱动。在 IDELAY 模式下,可以将数据驱动到
ILOGIC/ISERDES 模块或直接驱动到 FPGA 内部资源中,也可以通过 DATAOUT 端口
按照由 IDELAY_VALUE 设置的延迟将数据同时驱动到这二者。
来自 FPGA 内部资源的数据输入 -ODATAIN
ODATAIN 输入由 OLOGIC/OSERDES 驱动。在 ODELAY 模式下, ODATAIN 按照由
ODELAY_VALUE 设置的延迟驱动连接到 IOB 的 DATAOUT 端口。
来自 FPGA 内部资源的 IODELAY 的数据输入 -DATAIN
DATAIN 输入直接由 FPGA 内部资源驱动,以提供一条可访问内部资源逻辑的延迟线。
数据按照由 IDELAY_VALUE 设置的延迟通过 DATAOUT 端口返回到内部资源中。
DATAIN 可以在芯片内反转。数据不能驱动到 IOB 。
数据输出 -DATAOUT
来自三个数据输入端口的延迟数据。 DATAOUT 连接到内部资源( IDELAY 模式)或
IOB ( ODELAY 模式),或同时连接到这二者(双向延迟模式)。如果在双向延迟模
式下使用,则 T 端口在 IDATAIN 和 ODATAIN 通路之间动态切换,根据来自 OLOGIC
模块的三态信号 T 所指示的方向交替提供输入 / 输入延迟。
三态输入 -T
这是三态输入控制端口。对于双向操作, T 引脚信号还控制 OBUFT 的 T 引脚。
时钟输入 -C
对 IODELAY 基元的所有控制输入( RST 、 CE 和 INC )均与时钟输入( C )同步。当 I
ODELAY 配置成可变模式时,必须将一个时钟连接到此端口。 C 可以在芯片内反转。
模块复位 -RST
IODELAY 复位信号 RST 将延迟单元复位到由 IDELAY_VALUE 或 ODELAY_VALUE
属性设置的值。如果未指定这些属性,则假定该值为零。 RST 信号是高有效复位,与
输入时钟信号( C )同步。
表 1-3 概述了控制引脚的功能。
表 1-3 :控制引脚描述
递增 / 递减信号 – CE 、 INC
递增 / 递减由使能信号( CE )控制。当 IDELAY_TYPE = VARIABLE 时,此接口只可用
于 IDELAY 模式。
只要 CE 保持为 High , IDELAY 就会每时钟( C )周期按 IDELAYRESOLUTION 递增
或递减。 INC 的状态确定 IDELAY 是递增还是递减: INC = 1 为递增, INC = 0 为递减,与
时钟( C )同步。如果 CE 为 Low ,则通过 IDELAY 的延迟不变,与 INC 的状态无关。
当 CE 转为 High 时,在下一个时钟上升沿上开始递增 / 递减操作。当 CE 转为 Low 时,
在下一个时钟上升沿上停止递增 / 递减操作。
IODELAY 是环绕可编程延迟单元。当达到延迟单元的末尾( tap 63 )时,随后的递增
功能就会返回到 tap0 。同样的规则也适用于递减功能,即低于零的递减会转到 tap 63 。表 1-4
概述了递增 / 递减操作。
表 1-4 :递增 / 递减操作
IODELAY 属性
表 1-5 列出了 IODELAY 的属性。
表 1-5 : IODELAY 属性概述
IDELAY_TYPE 属性
IDELAY_TYPE 属性设置所用延迟的类型。此属性的值是 DEFAULT 、 FIXED 和
VARIABLE 。当设置成 DEFAULT 时,选择零保持时间延迟单元。当在没有 DCM 的情况下
使用全局时钟采集数据(引脚到引脚参数)时,用这种延迟单元提供非正保持时间。
当设置成 FIXED 时, tap 延迟值固定为由 IDELAY_VALUE 属性设置确定的 tap 数。此
值是预设置的,配置后不可更改。
当设置成 VARIABLE 时,选择可变 tap 延迟单元。 Tap 延迟可以通过设置 CE = 1 和 INC
=1 递增,或通过设置 CE = 1 和 INC = 0 递减。递增 / 递减操作与输入时钟信号 C 同步。
IDELAY_VALUE 属性
IDELAY_VALUE 属性指定初始 tap 延迟数。可能的值是 0 到 63 之间的任意整数。默
认值是零。当 tap 延迟复位时, tap 延迟值恢复到 IDELAY_VALUE 。在可变模式下,此属
性确定延迟线的初始设置。
ODELAY_VALUE 属性
ODELAY_VALUE 指定 tap 延迟数。可能的值是 0 到 63 之间的任意整数。默认值是零。
当 tap 延迟复位时, tap 延迟值恢复到 ODELAY_VALUE 。
HIGH_PERFORMANCE_MODE 属性
当设置为 TRUE 时,此属性减少输出抖动。输出抖动减少导致 IODELAY 单元的功率
耗散略有上升。
SIGNAL_PATTERN 属性
SIGNAL_PATTERN 属性致使时序分析器计入数据或时钟通路中的相应延迟链抖动量。
IODELAY 时序
表 1-6 为 IODELAY 开关特性。
表 1-6 : IODELAY 开关特性
图 1-2 所示为 IDELAY 时序图。假设 IDELAY_VALUE = 0 。
图 1-2 : IDELAY 时序图
时钟事件 1
在 C 的上升沿上检测到复位,致使输出 O 选择 tap 0 为 64 tap 链的输出(假设
IDELAY_VALUE = 0 )。
时钟事件 2
在 C 的上升沿上检测到 CE 和 INC 的脉冲。这说明是递增操作。输出从 tap 0 到 tap 1
无毛刺变化。请见“递增 / 递减操作后的稳定性”。
时钟事件 3
至此,输出已经稳定在 tap 1 ,因而完成了递增操作。输出无限期地保持在 tap 1 ,直到
RST 、 CE 或 INC 引脚上有进一步活动。
递增 / 递减操作后的稳定性
图 1-2 显示了输出从一个 tap 向另一个变化时的不稳定时段。显然,当 tap 0 处的数据值
与 tap 1 处的数据值不同时,输出必须改变状态。然而,如果 tap 0 和 tap 1 处的数据值相同
(例如两者都是 0 或 1 ),则从 tap 0 到 tap 1 的过渡就不会在输出上造成毛刺或混乱。这一
概念可以通过设想 IODELAY 的 tap 链中的接收器数据信号来理解。如果 tap 0 和 tap1 都靠
近接收器数据眼的中心,则在 tap 0 处采样的数据应与在 tap 1 处采样的数据没有区别。在这
种情况下,从 tap 0 到 tap 1 的过渡不会引起输出变化。为了确保这种情况, IODELAY 的递
增 / 递减操作设计成了无毛刺操作。
在活动用户数据通过 IODELAY 单元时,用户可以实时动态调整 IODELAY 的 tap 设置,
不会扰乱活动用户数据。
当在时钟信号通路中使用 IODELAY 单元时,也适用无毛刺行为。调整 tap 设置不会在
输出上引起毛刺或混乱。可以调整时钟通路中 IODELAY 单元的 tap 设置,不会扰乱可能正
在该时钟上运行的状态机。
IDELAYCTRL 概述
如果用设置为 FIXED 或 VARIABLE 的 IOBDELAY_TYPE 属性例化 IODELAY 或
ISERDES 基元,则必须在代码中例化 IDELAYCTRL 模块。 IDELAYCTRL 模块在其区域内
连续标定各延迟单元( IODELAY )(见图 1-5 ),以减少随工艺、电压和温度变化的影响。
IDELAYCTRL 模块使用用户提供的 REFCLK 标定 IODELAY 。
IDELAYCTRL 基元
图 1-3 所示为 IDELAYCTRL 基元。
图 1-3 : IDELYACTRL 基元
IDELAYCTRL 端口
RST- 复位
复位输入引脚( RST )是 High 有效异步复位。 IDELAYCTRL 在配置(以及 REFCLK
信 号 稳 定 ) 之 后 必 须 复 位 , 以 确 保 IODELAY 操 作 正 常 。 要 求 复 位 脉 冲 宽 度 为
TIDELAYCTRL_RPW (详见附图 1 )。 IDELAYCTRL 在配置后必须复位。
REFCLK- 参考时钟
参考时钟( REFCLK )提供对 IDELAYCTRL 的时间参考,以标定同区域中的所有
IODELAY 模块。此时钟必须由全局时钟缓冲器( BUFGCTRL )驱动。 REFCLK 必须是
FIDELAYCTRL_REF ± 指定的 ppm 容差( IDELAYCTRL_REF_PRECISION ),以保证指定
的 IODELAY 分辨率 (TIDELAYRESOLUTION) 。 REFCLK 可以由用户提供的信号源、 PLL
或 DCM 直接提供,必须在全局时钟缓冲器上传输。
RDY- 就绪
就绪( RDY )信号指示特定区域内的 IODELAY 模块标定完毕。如果 REFCLK 在一个
或几个时钟周期内保持为 High 或 Low ,则 RDY 信号置为无效。如果 RDY 置为 Low 无效,
则 IDELAYCTRL 模块必须复位。实现工具允许不连接 / 忽略 RDY 。图 1-4 所示为 RDY 与
RST 之间的时序关系。
IDELAYCTRL 时序
表 1-7 所示为 IDELAYCTRL 开关特性。
表 1-7 : IDELAYCTRL 开关特性
如下图 1-4 所示, Virtex-5 RST 是边沿触发信号。
图 1-4 : RDY 与 RST 之间的时序关系
IDELAYCTRL 位置
每个时钟区域的每个 I/O 列中都有 IDELAYCTRL 模块。一个 IDELAYCTRL 模块标定
其时钟区域内的所有 IDELAY 模块。图 1-5 所示为各 IDELAYCTRL 模块的相对位置。
图 1-5 :各 IDELAYCTRL 模块相对位置
IDELAYCTRL 用法及设计指导原则
本部分讲述 Virtex-5 IDELAYCTRL 模块的使用、设计指导原则和推荐用法。
例化无 LOC 约束的 IDELAYCTRL
当例化无 LOC 约束的 IDELAYCTRL 时,用户在 HDL 设计代码中必须只例化一个
IDELAYCTRL 实例。实现工具将 IDELAYCTRL 实例自动复制到整个器件,甚至复制到未
使用延迟单元的时钟区域中。这样做资源占用率较高,在每个时钟区域内都要使用一个全局
时钟资源,并且使用布线资源较多,因此功耗较大。 (注:在简单工程中对 IDELAYCTRL
基元是否制定 LOC 约束,通过用 XPOWER 工具对功耗进行估算对比发现,是否制定 LOC
对功耗影响不大或者几乎无影响,但在大规模工程中,会由于 LOC 约束的指定带来功耗的
额外增加) 已例化 IDELAYCTRL 实例的 RST 和 REFCLK 输入端口和所复制 IDELAYCTRL
实例的对应输入端口相连接。
有两个特例:
1 、当忽略 RDY 端口时,所有被复制的 IDELAYCTRL 实例的 RDY 信号均不连接。
对于例化无 LOC 约束的 IDELAYCTRL 基元并且不连接 RDY 输出端口的情况,《库指南》
中提供了 VHDL 和 Verilog 使用模型。
图 1-6 所示为例化 IDELAYCTRL 组件后形成的电路。
图 1-6 :例化无 LOC 约束的 IDELAYCTRL- 不连接 RDY
2 、当连接 RDY 端口时,例化一个宽度等于时钟区域数的与门,并且将例化和复制的
IDELAYCTRL 实 例 的 RDY 输 出 端 口 连 接 到 与 门 的 输 入 。 工 具 将 连 接 到 已 例 化
IDELAYCTRL 实例的 RDY 端口的信号名称赋予与门的输出。
对于例化无 LOC 约束的 IDELAYCTRL 基元并且连接 RDY 端口的情况,《库指南》中
提供了 VHDL 和 Verilog 使用模型。图 1-7 所示为例化 IDELAYCTRL 组件后形成的电路。
图 1-7 : 例化无 LOC 约束的 IDELAYCTRL- 连接 RDY
例化有位置( LOC )约束的 IDELAYCTRL
使用 IDELAYCTRL 模块的最有效方法是定义并锁定设计中所用每个 IDELAYCTRL 实
例的位置。具体做法是例化有位置( LOC )约束的 IDELAYCTRL 实例。用户必须在用延迟
单元时定义并锁定所有 ISERDES 和 IDELAY 组件的位置。( IOBDELAY_TYPE 属性设置
为 FIXED 或 VARIABLE 。)完成后,可以选择 IDELAYCTRL 的位置并指定 LOC 约束。
Xilinx 强烈建议使用有 LOC 约束的 IDELAYCTRL 。
(注:如图 1-5 所示,一个 IDELAYCTRL 基元可同时覆盖一个 clock region ,而一个 clock
region 包含不止一个 IOB ,在约束 IDELAYCTRL 基元 LOC 时,需要仔细定位该 IOB 属于
哪个 LOC 的 IDELAYCTRL 。)
位置约束
每个 IDELAYCTRL 模块都有 XY 位置坐标( X :行, Y :列)。为了约束位置,
IDELAYCTRL 实例可以附带 LOC 属性。 IDELAYCTRL 位置坐标的命名规则与用来命名
CLB 位置的规则不同。这样做便于在各阵列之间传递 LOC 属性。
为 IDELAYCTRL 实例附加 LOC 属性有两种方法。
1 、在 UCF 文件中插入 LOC 约束
2 、在 HDL 设计文件中直接嵌入 LOC 约束
在 UCF 文件中插入 LOC 约束
下列语法用于在 UCF 文件中插入 LOC 约束。
INST “ instance_name ” LOC=IDELAYCTRL_X#Y# ;
在 HDL 设计文件中直接嵌入 LOC 约束
下列语法用于在 HDL 设计文件中嵌入 LOC 约束。
// synthesis attribute loc of instance_name is "IDELAYCTRL_X#Y#";
在 VHDL 代码中,用 VHDL 属性描述 LOC 约束。约束必须用下列语法声明后才能使
用:
attribute loc : string ;
声明之后, LOC 约束可以指定为:
attribute loc of instance_name:label is "IDELAYCTRL_X#Y0#";
《库指南》包括用于例化有 LOC 约束的 IDELAYCTRL 基元的 VHDL 和 Verilog 使用模型
模板。
图 1-8 所示为例化 IDELAYCTRL 组件后形成的电路。
图 1-8 :例化有 LOC 约束的 IDELAYCTRL
例化有 LOC 约束和无 LOC 约束的 IDELAYCTRL
在有些情况下,用户例化有 LOC 约束的 IDELAYCTRL 模块,但还例化无 LOC 约束的
IDELAYCTRL 模块。如果用无位置约束的 IDELAYCTRL 模块例化 IP 核,但还需要为设计
的另一部分例化无 LOC 约束的 IDELAYCTRL 模块,则实现工具会执行以下各项:
• 按“例化有位置( LOC )约束的 IDELAYCTRL ”部分所述例化 LOC IDELAYCTRL
实例。
• 复制无位置约束的 IDELAYCTRL 实例,以便用一个 IDELAYCTRL 实例填充每个不
具备有位置约束 IDELAYCTRL 实例的时钟区域。
• 将无位置约束 IDELAYCTRL 实例的 RST 和 REFCLK 输入端口和所复制
IDELAYCTRL 实例的对应输入端口相连接。
• 如果忽略无位置约束 IDELAYCTRL 实例的 RDY 端口,则同时忽略所复制
IDELAYCTRL 实例的所有 RDY 信号。
• 如果连接无位置约束 IDELAYCTRL 实例的 RDY 端口,则将无位置约束实例的 RDY
端口和所复制实例的 RDY 端口连接到一个自动生成的与门。实现工具将连接到无位置约束
实例的 RDY 端口的信号之名称赋予与门的输出。
• 有位置约束实例的所有端口( RST 、 REFCLK 和 RDY )均相互独立并且独立于复制
的实例。
图 1-9 所示为例化 IDELAYCTRL 件后形成的电路。
图 1-9 : IDELAYCTRL 单元的混合例化例化
例化多个无 LOC 约束的 IDELAYCTRL
禁止例化多个无 LOC 属性的 IDELAYCTRL 。如果发生这种情况,实现工具就会报错。
(注:若在一个工程中同时例化多个不同 DELAY_SRC 属性,且无 LOC 约束的 IODELAY
时,只需例化一个 IDELAYCTRL 模块,否则 map 会报错。举例在同一个工程中需要例化一
个固定 IDELAY_VALUE 的 IODELAY_INST0 的 DELAY_SRC 属性设置为“ I ”,表示其输
入为 IDATAIN ,而同时需要例化另外一个固定 ODELAY_VALUE 的 IODELAY_INST1 的
DELAY_SRC 属性设置为“ O ”,其输入为 ODATAIN ,但是 IODELAY_INST0 和
IODELAY_INST1 使用时均无 LOC 约束,在例化 IDELAYCTRL 基元时,只需例化一个
IDELAYCTRL 基元,无需因为例化两个不同属性的 IODELAY 基元而分别例化两个
IDELAYCTRL 基元,否则 map 会报错。)
参考文献 :
【 1 】: ug190-Virtex-5 用户指南
【 2 】: ds202- Virtex-5 Data Sheet: DC and Switching Characteristics
【 3 】: v5ldl-Virtex-5 Libraries Guide for HDL Designs
附图 1 : tap 延迟精度及相关时序参数
Verilog Instantiation Template
// IODELAY: Input and Output Fixed/variable Delay Element
// Virtex-5
// Xilinx HDL Libraries Guide, version 9.1i
IODELAY # (
.DELAY_SRC ( "I" ), // Specify which input port to be used
// "I"=IDATAIN, "O"=ODATAIN, "DATAIN"=DATAIN
.IDELAY_TYPE ( "DEFAULT" ), // "DEFAULT", "FIXED" or "VARIABLE"
.IDELAY_VALUE ( 0 ), // 0 to 63 tap values
.ODELAY_VALUE ( 0 ), // 0 to 63 tap values
.REFCLK_FREQUENCY ( 200.0 ) // Frequency used for IDELAYCTRL
// 175.0 to 225.0
) IODELAY_INST (
.DATAOUT ( DATAOUT ), // 1-bit delayed data output
.C ( C ), // 1-bit clock input
.CE ( CE ), // 1-bit clock enable input
.DATAIN ( DATAIN ), // 1-bit internal data input
.IDATAIN ( IDATAIN ), // 1-bit input data input (connect to port)
.INC ( INC ), // 1-bit increment/decrement input
.ODATAIN ( ODATAIN ), // 1-bit output data input
.RST ( RST ), // 1-bit active high, synch reset input
.T ( T ) // 1-bit 3-state control input
);
// End of IODELAY_inst instantiation
工程实例:
IODELAY #(
.DELAY_SRC ( "O" ), //IODELAY 源是 ODATAIN
.IDELAY_TYPE ( "FIXED" ), // 静态延迟
.ODELAY_VALUE ( 16 ), // 固定延迟数为 16 个 tap
.REFCLK_FREQUENCY ( 200.0 ) //IDELAYCTRL 参考时钟频率: 200MHz
)IODELAY_INST (
.C ( 1'b0 ), // 可变模式下使用的时钟输入
.CE ( 1'b0 ), // 是否启动递增 / 递减功能
.DATAIN ( 1'b0 ), //
.IDATAIN ( 1'b0 ), //
.INC ( 1'b0 ), //tap 延迟的递增 / 递减选择
.ODATAIN ( qLED ), // 来自 OLOGIC/OSERDES 的信号
.RST ( 1'b0 ), // 将延迟单元次坏皆ど瓒 ǖ 闹,若没有预设定值则复位到 0
.T ( 1'b0 ), // 用作 ODELAY
.DATAOUT ( qLED_cld )
);
IDELAYCTRL IDELAYCTRL_inst (
.RDY ( RDY ), // 1-bit ready output
.REFCLK ( System_Clk ), // 1-bit reference clock input
.RST ( 1'b0 ) // 1-bit reset input
);
#INST "IDELAYCTRL_inst" LOC = IDELAYCTRL_X1Y2; (ucf 文件添加 )
OBUF obuf_qLED (
.I ( qLED_cld ),
.O ( qLED )
);

输入/输出延迟单元( IODELAY)简介相关推荐

  1. Java初学者作业——编写JAVA程序,根据用户输入课程名称,输出对应课程的简介,各门课程的简介见表

    返回本章节 返回作业目录 需求说明: 编写JAVA程序,根据用户输入课程名称,输出对应课程的简介,各门课程的简介见表 课程名称 课程简介 JAVA课程 JAVA语言是目前最流行的编写语言,在本课程中将 ...

  2. 第4章 字符串和格式化输入/输出

    学习笔记--<C Primer Plus> 第4章 字符串和格式化输入/输出 4.1 前导程序 4.2 字符串简介 4.2.1 char 类型数组和 null 字符 4.2.2 使用字符串 ...

  3. 11 计算机组成原理第七章 输入/输出系统 I/O系统基本概念 外部设备

    文章目录 1 I/O系统基本概念 1.1 I/O系统演变过程 1.2 I/O系统基本组成 1.3 I/O方式简介 1.4 I/O系统基本概念小结 2 外部设备1-输入设备 输出设备 2.1 外部设备 ...

  4. C语言基础之4:字符串和格式化输入/输出

    Tips1 函数:strlen() 关键字:const 字符串 如何创建.存储字符串 如何使用strlen()函数获取字符串的长度 用C预处理器指令#define和ANSIC的const修饰符创建符号 ...

  5. 第五 字符串和格式化输入/输出

    C语言学习栏目目录 目录 1.前导程序 2.字符串简介 3 常量和C预处理器 这篇介绍下列内容: 函数:strlen() 关键字:const 字符串 如何创建.存储字符串 如何使用strlen()函数 ...

  6. 计算机组成原理知识点汇总(考研用)——第七章:输入/输出系统

    计算机组成原理知识点汇总(考研用)--第七章:输入/输出系统  本文参考于<2021年计算机组成原理考研复习指导>(王道考研),<计算机组成原理> 思维导图: 文章目录 计算机 ...

  7. 【转】采用 Linux* Containers 的单根输入/输出虚拟化 (SR-IOV)

    https://software.intel.com/zh-cn/articles/single-root-inputoutput-virtualization-sr-iov-with-linux-c ...

  8. 独家|OpenCV1.8 使用XML和YAML文件实现文件的输入/输出

    翻译:陈之炎 校对:李海明本文约2400字,建议阅读5分钟本文为大家介绍了OpenCV使用XML和YAML文件实现的输入输出. 目标 本小节将回答以下问题: 如何使用YAML或XML文件打印和读取文本 ...

  9. 第15章-输入/输出 --- 理解Java的IO流

    (一)理解Java的IO流 JAVA的IO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作,在Java中把不同的输入/输出(键盘.文件.网络连接等)抽象表述为"流"( ...

最新文章

  1. mysql 5.7 1054_MySQL5.7更改密码时出现ERROR 1054 (42S22)的解决方法
  2. jquery在ie浏览器下中文乱码的问题
  3. 第十一周项目实践3 DFS(深度优先搜索)的基本模板
  4. ASP.NET aspx页面中 写C#脚本; ASP.NET 指令(%@%);
  5. 《编译原理》实验教学大纲
  6. 漫画:什么是动态规划?(整合版)
  7. iOS中nil,Nil,NULL的区别
  8. app 缓存html页面,HTML5本地存储VS App缓存离线网站浏览
  9. 查看数值类型python_python怎么看数据类型
  10. 电子计算机说明文作文,关于电脑说明文作文(精选3篇)
  11. Vue router-link 两种传参方法及参数的使用
  12. 4.7 ResNet CNN、tensorflow实现——python实战
  13. 红米note9pro刷鸿蒙,红米Note10Pro:正式说你好,红米Note9Pro:彻底说再见!
  14. linux 迁移类型,迁移到Linux前必须要知道的五个方面
  15. 微型计算机有哪些型号,微型计算机一般按什么进行分类
  16. 如何释放计算机内存吗,教您如何有效释放计算机内存空间!
  17. ubuntu snap 安装的nextcloud 忘记管理员密码,重新设置密码。
  18. 上研动力小课堂丨柴油机启动困难原因大揭秘(上篇)
  19. 盘点适合入门学习的C/C++开源项目
  20. Java读写Excel之HSSFWorkbook、XSSFWorkbook、Workbook

热门文章

  1. 芝大教授: 博士培养正沦为“庞氏骗局”
  2. 光电耦合NEC2051 的输入输出特性
  3. 赛道一出,今后无需再熬夜
  4. python二维游戏编程 超级大脑_超级大脑教练 - 主页
  5. java包装类和基本类型谁先谁后_你知道Java中基本类型和包装类的区别吗
  6. 环境图配置不存在pbr_小米11再曝光,硬件参数不存在短板,完全最高旗舰配置...
  7. 王者争雄服务器维护,王者争雄_王者争雄官网_攻略-第一手游网
  8. 服务器同步什么文件类型,不同服务器同步文件类型
  9. matlab中bitget函数用法_MATLAB中SVM的用法
  10. mysql中数据表如何关联_mysql 如何导入/导出2个关联表中的数据