1、JTAG连接设备,之后查找得到DNA
2、原语读出DNA
7系的是57bit ,ultra 架构的是96bit
移位读出DNA
module dna_read(
input sys_clk,
input dna_read_rdy,
output [95:0] dna_read_dat,
output dna_read_vld);
wire dna_dout;
wire dna_read;
wire dna_shift;
DNA_PORTE2 #(
.SIM_DNA_VALUE (96'd0)
)DNA_PORTE2_inst(
.DOUT (dna_dout),
.CLK (sys_clk),
.DIN (dna_dout),
.READ (dna_read),
.SHIFT (dna_shift)
);
reg [95:0] dna_reg = 0;
reg [7:0] dna_cnt = 0;
always @ (posedge sys_clk)
begin
if(dna_read_rdy) begin
dna_cnt <= dna_cnt + 1;
end
else begin
dna_cnt <= 0;
end
end
// load dna data from the fuse dna register
assign dna_read = dna_cnt == 8'd63;
// for ultrascale
assign dna_shift = (dna_cnt >= 8'd100) && (dna_cnt <= 195);
always @ (posedge sys_clk)
begin
dna_reg <= {dna_dout,dna_reg[95:1]};
end
assign dna_read_dat = dna_reg;
assign dna_read_vld = dna_cnt == 8'd196;
endmodule