JTAG的TMS_RPU
时间: 2024-06-18 21:05:49 浏览: 18
JTAG (Joint Test Action Group) 是一种测试和调试的标准,TMS (Test Mode Select) 是 JTAG 中的一种信号,用于选择测试模式。RPU (Reset Pull-Up) 是 TMS 信号的一个特殊状态,它是在 JTAG 接口未连接时 TMS 信号的默认状态,也是在设备未被复位时 TMS 信号的默认状态。当设备复位时,TMS 信号将变为其它状态,用于选择进入不同的测试模式。因此,TMS_RPU 是指 TMS 信号在设备未被复位时的状态。
相关问题
// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.15 2011/08/25 22:54:30 fphillip Exp $ `timescale 1 ps / 1 ps module glbl (); parameter ROC_WIDTH = 100000; parameter TOC_WIDTH = 0; //-------- STARTUP Globals -------------- wire GSR; wire GTS; wire GWE; wire PRLD; tri1 p_up_tmp; tri (weak1, strong0) PLL_LOCKG = p_up_tmp; wire PROGB_GLBL; wire CCLKO_GLBL; reg GSR_int; reg GTS_int; reg PRLD_int; //-------- JTAG Globals -------------- wire JTAG_TDO_GLBL; wire JTAG_TCK_GLBL; wire JTAG_TDI_GLBL; wire JTAG_TMS_GLBL; wire JTAG_TRST_GLBL; reg JTAG_CAPTURE_GLBL; reg JTAG_RESET_GLBL; reg JTAG_SHIFT_GLBL; reg JTAG_UPDATE_GLBL; reg JTAG_RUNTEST_GLBL; reg JTAG_SEL1_GLBL = 0; reg JTAG_SEL2_GLBL = 0 ; reg JTAG_SEL3_GLBL = 0; reg JTAG_SEL4_GLBL = 0; reg JTAG_USER_TDO1_GLBL = 1'bz; reg JTAG_USER_TDO2_GLBL = 1'bz; reg JTAG_USER_TDO3_GLBL = 1'bz; reg JTAG_USER_TDO4_GLBL = 1'bz; assign (weak1, weak0) GSR = GSR_int; assign (weak1, weak0) GTS = GTS_int; assign (weak1, weak0) PRLD = PRLD_int; initial begin GSR_int = 1'b1; PRLD_int = 1'b1; #(ROC_WIDTH) GSR_int = 1'b0; PRLD_int = 1'b0; end initial begin GTS_int = 1'b1; #(TOC_WIDTH) GTS_int = 1'b0; end endmodule 给这段代码每一行注释
```
// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.15 2011/08/25 22:54:30 fphillip Exp $
// 该行为文件头注释,显示了文件的版本信息和修改日期
`timescale 1 ps / 1 ps
// 定义了时间刻度,1 ps / 1 ps 表示每个时钟周期为1 ps
module glbl ();
// 定义了一个名为 glbl 的模块
parameter ROC_WIDTH = 100000;
// 定义了一个名为 ROC_WIDTH 的参数并赋值为 100000
parameter TOC_WIDTH = 0;
// 定义了一个名为 TOC_WIDTH 的参数并赋值为 0
wire GSR;
// 定义了一个名为 GSR 的线型信号
wire GTS;
// 定义了一个名为 GTS 的线型信号
wire GWE;
// 定义了一个名为 GWE 的线型信号
wire PRLD;
// 定义了一个名为 PRLD 的线型信号
tri1 p_up_tmp;
// 定义了一个名为 p_up_tmp 的三态缓冲器
tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
// 定义了一个名为 PLL_LOCKG 的三态缓冲器,并将其输出连接到 p_up_tmp
wire PROGB_GLBL;
// 定义了一个名为 PROGB_GLBL 的线型信号
wire CCLKO_GLBL;
// 定义了一个名为 CCLKO_GLBL 的线型信号
reg GSR_int;
// 定义了一个名为 GSR_int 的寄存器型信号
reg GTS_int;
// 定义了一个名为 GTS_int 的寄存器型信号
reg PRLD_int;
// 定义了一个名为 PRLD_int 的寄存器型信号
wire JTAG_TDO_GLBL;
// 定义了一个名为 JTAG_TDO_GLBL 的线型信号
wire JTAG_TCK_GLBL;
// 定义了一个名为 JTAG_TCK_GLBL 的线型信号
wire JTAG_TDI_GLBL;
// 定义了一个名为 JTAG_TDI_GLBL 的线型信号
wire JTAG_TMS_GLBL;
// 定义了一个名为 JTAG_TMS_GLBL 的线型信号
wire JTAG_TRST_GLBL;
// 定义了一个名为 JTAG_TRST_GLBL 的线型信号
reg JTAG_CAPTURE_GLBL;
// 定义了一个名为 JTAG_CAPTURE_GLBL 的寄存器型信号
reg JTAG_RESET_GLBL;
// 定义了一个名为 JTAG_RESET_GLBL 的寄存器型信号
reg JTAG_SHIFT_GLBL;
// 定义了一个名为 JTAG_SHIFT_GLBL 的寄存器型信号
reg JTAG_UPDATE_GLBL;
// 定义了一个名为 JTAG_UPDATE_GLBL 的寄存器型信号
reg JTAG_RUNTEST_GLBL;
// 定义了一个名为 JTAG_RUNTEST_GLBL 的寄存器型信号
reg JTAG_SEL1_GLBL = 0;
// 定义了一个名为 JTAG_SEL1_GLBL 的寄存器型信号,并将其初始值赋为 0
reg JTAG_SEL2_GLBL = 0;
// 定义了一个名为 JTAG_SEL2_GLBL 的寄存器型信号,并将其初始值赋为 0
reg JTAG_SEL3_GLBL = 0;
// 定义了一个名为 JTAG_SEL3_GLBL 的寄存器型信号,并将其初始值赋为 0
reg JTAG_SEL4_GLBL = 0;
// 定义了一个名为 JTAG_SEL4_GLBL 的寄存器型信号,并将其初始值赋为 0
reg JTAG_USER_TDO1_GLBL = 1'bz;
// 定义了一个名为 JTAG_USER_TDO1_GLBL 的寄存器型信号,并将其初始值赋为 1'bz
reg JTAG_USER_TDO2_GLBL = 1'bz;
// 定义了一个名为 JTAG_USER_TDO2_GLBL 的寄存器型信号,并将其初始值赋为 1'bz
reg JTAG_USER_TDO3_GLBL = 1'bz;
// 定义了一个名为 JTAG_USER_TDO3_GLBL 的寄存器型信号,并将其初始值赋为 1'bz
reg JTAG_USER_TDO4_GLBL = 1'bz;
// 定义了一个名为 JTAG_USER_TDO4_GLBL 的寄存器型信号,并将其初始值赋为 1'bz
assign (weak1, weak0) GSR = GSR_int;
// 将 GSR_int 信号与 GSR 信号进行连接
assign (weak1, weak0) GTS = GTS_int;
// 将 GTS_int 信号与 GTS 信号进行连接
assign (weak1, weak0) PRLD = PRLD_int;
// 将 PRLD_int 信号与 PRLD 信号进行连接
initial begin
// 初始化块
GSR_int = 1'b1;
// 将 GSR_int 的值赋为 1'b1
PRLD_int = 1'b1;
// 将 PRLD_int 的值赋为 1'b1
#(ROC_WIDTH) GSR_int = 1'b0;
// 在 ROC_WIDTH 的时间后,将 GSR_int 的值赋为 1'b0
PRLD_int = 1'b0;
// 将 PRLD_int 的值赋为 1'b0
end
initial begin
// 初始化块
GTS_int = 1'b1;
// 将 GTS_int 的值赋为 1'b1
#(TOC_WIDTH) GTS_int = 1'b0;
// 在 TOC_WIDTH 的时间后,将 GTS_int 的值赋为 1'b0
end
endmodule
// 模块定义结束
JTAG TMS信号为高时代表什么
当 JTAG TMS 信号为高电平时,其所代表的具体含义取决于当前的 JTAG 状态和操作。根据 JTAG 协议规范,TMS 信号在 JTAG 状态转换时使用。
在一般情况下,当 TMS 为高电平时,它可以表示以下几种情况之一:
1. 从 Run-Test/Idle 状态切换到 Select-DR 状态:这是从闲置状态切换到数据寄存器(Data Register)选择状态。
2. 从 Select-DR 状态切换到 Select-IR 状态:这是从数据寄存器选择状态切换到指令寄存器(Instruction Register)选择状态。
3. 在 Shift-DR 或 Shift-IR 状态下,表示继续推入或推出数据或指令位。
需要注意的是,TMS 信号的状态转换是根据 JTAG 协议规范定义的,具体的状态转换序列和含义可能会因不同的操作和目标设备而有所不同。因此,在具体应用中,您应该参考相关的 JTAG 协议规范或目标设备的文档,以了解准确的状态转换序列和含义。
希望这个解答对您有所帮助。如果您还有其他问题,请随时提问。