glbl.v文件 是什么
时间: 2024-05-23 15:13:49 浏览: 159
`glbl.v` 文件是一个 Verilog HDL 的源代码文件,用于实现全局信号模块。该文件中包含了 `glbl` 模块的代码实现,定义了多个信号和寄存器,实现了全局信号的控制和管理功能。`glbl.v` 文件通常被用于 FPGA 和 ASIC 设计中,用于实现全局控制信号,如复位、时钟、配置等信号的控制和管理。
相关问题
vivado的这个文件是干什么用的2021.2/data/verilog/src/glbl.v
glbl.v是Vivado设计工具的全局时钟缓冲模块,用于将全局时钟信号分配到设计中的所有时钟缓冲器中。它是一个Verilog源文件,包含一个顶层模块,该模块通过实例化其他模块来生成全局时钟缓冲器网络。在设计中使用该模块可以保证时钟缓冲器的相位和延迟一致性,并减小时钟抖动,提高设计的时序性能。glbl.v文件通常由Vivado工具自动生成,用户一般不需要手动编辑它。
// $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 这段代码是什么意思,并且给出每一行代码的注释
这段代码是一个 Verilog 语言的模块定义,定义了一个名为 glbl 的模块。下面是每一行代码的注释:
```
// $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
```
注释:定义模块的时钟时间单位为 1ps。
```
module glbl ();
```
注释:定义一个名为 glbl 的模块,没有输入和输出信号。
```
parameter ROC_WIDTH = 100000;
parameter TOC_WIDTH = 0;
```
注释:定义两个模块参数,ROC_WIDTH 表示全局异步复位信号的持续时间,TOC_WIDTH 表示全局时钟使能信号的延迟时间。
```
wire GSR;
wire GTS;
wire GWE;
wire PRLD;
```
注释:定义四个输入信号,分别是全局异步复位信号 GSR、全局时钟使能信号 GTS、全局写使能信号 GWE 和并行加载信号 PRLD。
```
tri1 p_up_tmp;
tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
```
注释:定义一个有向三态缓冲器,用于控制锁相环锁定状态信号的输出。
```
wire PROGB_GLBL;
wire CCLKO_GLBL;
```
注释:定义两个输出信号,分别是编程管脚信号 PROGB_GLBL 和 CCLKO_GLBL。
```
reg GSR_int;
reg GTS_int;
reg PRLD_int;
```
注释:定义三个寄存器,用于存储全局异步复位信号 GSR、全局时钟使能信号 GTS 和并行加载信号 PRLD 的值。
```
wire JTAG_TDO_GLBL;
wire JTAG_TCK_GLBL;
wire JTAG_TDI_GLBL;
wire JTAG_TMS_GLBL;
wire JTAG_TRST_GLBL;
```
注释:定义五个输入信号,分别是 JTAG 测试数据输出信号、JTAG 测试时钟信号、JTAG 测试数据输入信号、JTAG 测试模式选择信号和 JTAG 测试复位信号。
```
reg JTAG_CAPTURE_GLBL;
reg JTAG_RESET_GLBL;
reg JTAG_SHIFT_GLBL;
reg JTAG_UPDATE_GLBL;
reg JTAG_RUNTEST_GLBL;
```
注释:定义五个寄存器,分别用于存储 JTAG 测试模式下的状态转移控制信号。
```
reg JTAG_SEL1_GLBL = 0;
reg JTAG_SEL2_GLBL = 0 ;
reg JTAG_SEL3_GLBL = 0;
reg JTAG_SEL4_GLBL = 0;
```
注释:定义四个寄存器,用于存储 JTAG 测试模式下的选择信号。
```
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;
```
注释:定义四个寄存器,用于存储 JTAG 测试模式下的用户自定义数据输出信号。
```
assign (weak1, weak0) GSR = GSR_int;
assign (weak1, weak0) GTS = GTS_int;
assign (weak1, weak0) PRLD = PRLD_int;
```
注释:使用 assign 语句将全局异步复位信号 GSR、全局时钟使能信号 GTS 和并行加载信号 PRLD 的值通过三态缓冲器输出。
```
initial begin
GSR_int = 1'b1;
PRLD_int = 1'b1;
#(ROC_WIDTH) GSR_int = 1'b0;
#(TOC_WIDTH) GTS_int = 1'b0;
end
```
注释:在模块初始化时,将全局异步复位信号 GSR 和并行加载信号 PRLD 置为高电平,持续时间为 ROC_WIDTH 个时钟周期;将全局时钟使能信号 GTS 置为高电平,延迟时间为 TOC_WIDTH 个时钟周期。
```
initial begin
GTS_int = 1'b1;
#(TOC_WIDTH) GTS_int = 1'b0;
end
```
注释:在模块初始化时,将全局时钟使能信号 GTS 置为高电平,延迟时间为 TOC_WIDTH 个时钟周期。
```
endmodule
```
注释:模块定义结束。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)