芯片产品
热点资讯
- FPGA的市场趋势和竞争格局
- 国产FPGA芯片在军民融合和国防科技领域的应用
- Lattice品牌LIF-MD6000-6JMG80I芯片IC FPGA 37 I/O 80CTFBGA的技术和方案介绍
- Lattice品牌LCMXO2-1200HC-6SG32C芯片IC FPGA 21 I/O 32QFNS的技术和方案介绍
- Lattice品牌ICE40LP8K-CM81芯片IC FPGA 63 I/O 81UCBGA的技术和方案介绍
- Intel品牌10CL025YU256C8G芯片IC FPGA 150 I/O 256UBGA的技术和方案介绍
- Efinix品牌T35F324I4芯片IC FPGA TRION T35 130 IO 324FBGA的技术和方案介绍
- Lattice品牌LCMXO2-640UHC-4TG144C芯片IC FPGA 107 I/O 144TQFP的技术和方
- Lattice品牌ICE40HX8K-BG121芯片IC FPGA 93 I/O 121CABGA的技术和方案介绍
- Lattice品牌LCMXO2-4000HC-6FTG256I芯片IC FPGA 206 I/O 256FTBGA的技术
- 发布日期:2024-02-11 10:43 点击次数:144
每个芯片内部都有一个设备标识符。Xilinx称之为DNA。这个DNA是不可改变的,永远存在于芯片中。根据文件,DNA在一个系列中最多有32个芯片。以下是Xilinx的简要介绍 FPGA的DNA,以及如何读取。
XilinxFPGA芯片,在7系列和7系列之前,DNA是57Bit的数据,而在7系列之后,如Ultraslace等新型号,DNA是96Bit。这里有两种阅读方法。
1.通过jtag阅读
以vivado为例,连接下载器后,打开hardware manager,芯片上电连接到芯片后,在hardware上 device REGISTER在properties选项框中找到-EFUSE-DNA_PORT,FPGA,半导体芯片,国产FPGA,FPGA替代,FPGA平台芯片DNA的值如下图所示:
2.通过调用原语读取
我们可以使用代码读取芯片的DNA。以vivado为例,首先根据我们选择的芯片型号找到相应的DNA_PORT原语。如下图所示,
7系列DNA_PORT原语:
Ultrascale系列原语,原语名称有一点变化,请注意
以7系列为例,查看UG470文档,使用原语:
例化原语
DNA_PORT #(
.SIM_DNA_VALUE(57’h123456789abcdef // Specifies a sample 57-bit DNA value for simulation
)
DNA_PORT_inst (
.DOUT(dna_dout), // 1-bit output: DNA output data.
.CLK(sys_clk), // 1-bit input: Clock input.
.DIN(1’b0), // 1-bit input: User data input pin.
.READ(dna_read), // 1-bit input: Active high load DNA, active low read input.
.SHIFT(dna_shift) // 1-bit input: Active high shift enable input.
);
读取代码如下:
首先拉高read信号,寄存器加载DNA值,加载后降低read信号,然后使shift信号,DOUT开始输出DNA数据,移位57小时后取消shift功能。
module DNA_capture(
input i_sys_clk,//时钟,时钟不要太高
input i_dna_rdy,//读取使能信号
output [56:0] o_dna_data,//输出DNA值
output o_dna_valid//输出有效的DNA标志输出有效的DNA标志
);
wire dna_dout;
wire dna_read;
wire dna_shift;
reg [56:0] dna_reg = 0;
reg [7:0] dna_cnt = 0;
DNA_PORT #(
.SIM_DNA_VALUE(57’h123456789abcdef // Specifies a sample 57-bit DNA value for simulation
)
DNA_PORT_inst (
.DOUT(dna_dout), // 1-bit output: DNA output data.
.CLK(i_sys_clk), // 1-bit input: Clock input.
.DIN(1’b0), // 1-bit input: User data input pin.
.READ(dna_read), // 1-bit input: Active high load DNA, active low read input.
.SHIFT(dna_shift) // 1-bit input: Active high shift enable input.
);
always@(posedge i_sys_clk)
if(i_dna_rdy)begin
if(dna_cnt == 7’d103)
dna_cnt <= dna_cnt;
else
dna_cnt <= dna_cnt 1’b1;
end
assign dna_read = dna_cnt == 8’d20;
//
assign dna_shift = (dna_cnt >= 8’d45) && (dna_cnt <= (8’d45 8’d57-1));
always @ (posedge i_sys_clk)
begin
if(dna_shift)begin
dna_reg[56:0] <= {dna_reg[55:0],dna_dout};
end
end
assign o_dna_data= dna_reg;
assign o_dna_valid = dna_cnt == (8’d45 8’d57-1);
endmodule
- Intel品牌EP2C8F256C8N芯片IC FPGA 182 I/O 256FBGA的技术和方案介绍2024-11-21
- Intel品牌10M16SCU169I7G芯片IC FPGA 130 I/O 169UBGA的技术和方案介绍2024-11-20
- Lattice品牌LFXP2-8E-5FTN256I芯片IC FPGA 201 I/O 256FTBGA的技术和方案介绍2024-11-19
- Lattice品牌LFXP2-8E-6FTN256C芯片IC FPGA 201 I/O 256FTBGA的技术和方案介绍2024-11-18
- Intel品牌EP4CE15M8I7N芯片IC FPGA 89 I/O 164MBGA的技术和方案介绍2024-11-17
- AMD品牌XC7A12T-1CSG325I芯片IC FPGA 150 I/O 324CSBGA的技术和方案介绍2024-11-16