国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

K7系列FPGA多重啟動(Multiboot)

這篇具有很好參考價值的文章主要介紹了K7系列FPGA多重啟動(Multiboot)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??Xilinx 家的 FPGA 支持多重啟動功能(Multiboot),即可以從多個 bin 文件中進行選擇性加載,從而實現(xiàn)對系統(tǒng)的動態(tài)更新,或系統(tǒng)功能的動態(tài)調(diào)整。

??這一過程可以通過嵌入在 bit 文件里的 IPROG 命令實現(xiàn)上電后的自動加載。而同時 Xilinx 也提供了 ICAP 原語,給用戶提供了訪問配置功能的權(quán)限(對于 7 series 的芯片,需要使用 ICAPE2 原語),從而獲得更加靈活的多重啟動方式。

??本文即介紹 Multiboot 以及這兩種啟動方式,并對兩種 Multiboot 進行實現(xiàn)。

多重啟動(Multiboot)

??首先對 Multiboot 的流程進行一下介紹,

multiboot多重配置,數(shù)字邏輯,fpga開發(fā),開發(fā)語言,嵌入式硬件

如圖所示,在實現(xiàn)多重啟動時,F(xiàn)LASH 中會保存多個 bin 文件,其中保存在 0 地址的稱為 Golden 鏡像,而其他的被稱為 Multiboot 鏡像(也稱為 Update 鏡像),這里就以 2 個 Image 為例進行說明。

??一般地,對于單個 bin 的情況,可以直接向 FLASH 燒錄 .bin 文件,也可以燒錄對應生成的 .mcs;而如果要燒錄多個版本的鏡像,則可以在生成 .mcs 時在不同地址載入多個不同的 bit 文件,然后下載這個 .mcs 文件。

Golden Image Initial System Setup

??在上圖所示的 Golden Image Initial System Setup 啟動模式下,上電后 FPGA 會自動加載 Golden 鏡像,隨后嘗試加載 Multiboot 鏡像,以重新配置 FPGA,實現(xiàn)代碼的更新/功能的更替。

??在這種啟動方式下:

  • IPROG 命令被嵌入在 Golden Image 里(指將 IPROG 命令嵌在比特流文件里),或者通過 Golden Image 里編寫的 ICAPE2 原語程序啟動對 Multiboot Image 的讀??;
  • Multiboot Image 應當存儲在熱啟動起始地址寄存器( Warm Boot Start Address Register, WBSTAR )指定的地址處;
  • 應當啟動 Watchdog 計時器,以在編程失敗的情況下執(zhí)行恢復操作。

??在回退(fallback)發(fā)生時,嵌入的 IPROG 指令將被忽略,因此不會陷入反復觸發(fā)加載 Multiboot 的死循環(huán)。在回退完成后,WBSTAR 將被 bitstream 重寫。

Initial MultiBoot Image System Setup

??也可以在上電后先啟動 Multiboot 版本鏡像,在啟動失敗的情況下自動回退地址 0 的 Golden 鏡像,流程如下圖所示

multiboot多重配置,數(shù)字邏輯,fpga開發(fā),開發(fā)語言,嵌入式硬件

在在線更新功能的設(shè)計中,Initial MultiBoot Image System Setup 模式是更加常用的。

??在這種啟動方式下,對于 Golden Image:

  • WBSTAR 應當指向 Multiboot Image,同時應當插入一個 IPROG 指令以在上電時觸發(fā)對 Multiboot 的下載(在比特流文件里插入 IPROG 命令);
  • 需要啟動 Configuration Timer;
  • 如果 Golden Image 有能力修復 FLASH,則也可以實現(xiàn) ICAP 原語以重啟啟動 Multiboot 的加載;
  • 對于 SPI 配置模式,在回退 Golden 過程中,始終采用 SPI x1 的模式。

對于 Multiboot Image:

  • 需要啟動 Configuration Timer;
  • Multiboot Image 也可以實現(xiàn) ICAP 原語以實現(xiàn)對其他 Multiboot Image 的重加載,或?qū)?Golden Image 的受控回退。

IPROG 說明

??IPROG(Internal PROGRAM)命令是 PROGRAM_B 引腳功能的一個子集,該命令可以從 ICAP 原語發(fā)出,也可以直接嵌入到比特流里。當為后者時,WBSTAR 和 IPROG 應當位于 Golden bit file 的開頭,此時在上電后會觸發(fā)從新地址加載 multiboot Image 的事件;如果加載失敗,則將返回地址 0 重新加載比特流,此時會忽略 IPROG,因此加載到的程序?qū)⑹?Golden Image。

WBSTAR 寄存器

??WBSTAR 寄存器保存了 IPROG 命令配置的啟動地址,該寄存器的值可以由嵌入在 bitstream 的 IPROG 配置,也可以由 ICAPE2 發(fā)出的 IPROG 配置。如果 bitstream 中沒有配置 WBSTAR,則地址默認為 0,因此如果從 Golden Image 觸發(fā)了多重啟動,則在加載完 Multiboot Image 后,WBSTAR 將被設(shè)置為 0。

??上電后,設(shè)備將從地址 0 開始讀取 FLASH,在加載了 WBSTAR 并發(fā)出 IPROG 后,將重定向到 WBSTAR 指定地址讀取 Imaeg。

multiboot多重配置,數(shù)字邏輯,fpga開發(fā),開發(fā)語言,嵌入式硬件

Watchdog 計數(shù)器

??看門狗有兩種模式:配置監(jiān)視器模式、用戶邏輯監(jiān)視器模式。在配置監(jiān)視器模式下,Timer Register 通過比特流設(shè)置,需要在所有 bit File 中啟用這個計數(shù)器。Watchdog 由 FPGA 內(nèi)部鎖相環(huán)產(chǎn)生的 65MHz 時鐘驅(qū)動(這一描述和下表中的描述相悖),當計數(shù)器回到 0 時,將觸發(fā)回退。該計數(shù)器從比特流起始開始計數(shù),在啟動序列結(jié)束時被禁用。

multiboot多重配置,數(shù)字邏輯,fpga開發(fā),開發(fā)語言,嵌入式硬件

從 ICAPE2 原語啟動 Multiboot 介紹

??當從 ICAPE2 原語觸發(fā) Multiboot 時,命令序列為:1. 發(fā)送同步碼;2. 設(shè)置 WBSTAR;3. 發(fā)送 IPROG 命令。一個通過 ICAPE2 發(fā)送的命令序列如下

multiboot多重配置,數(shù)字邏輯,fpga開發(fā),開發(fā)語言,嵌入式硬件

multiboot多重配置,數(shù)字邏輯,fpga開發(fā),開發(fā)語言,嵌入式硬件

ICAPE2 原語

multiboot多重配置,數(shù)字邏輯,fpga開發(fā),開發(fā)語言,嵌入式硬件

??ICAPE2 原語接口如圖,調(diào)用格式如下

// 7 Series
// Xilinx HDL Language Template, version 2023.2
ICAPE2 #(
     .DEVICE_ID			(32'h3651093),	// Specifies the pre-programmed Device ID value to be used for simulation purposes.
     .ICAP_WIDTH		("X32"),		// Specifies the input and output data width.
     .SIM_CFG_FILE_NAME	("NONE")		// Specifies the Raw Bitstream (RBT) file to be parsed by the simulation model.
)
ICAPE2_inst(
     .O					(O),			// 32-bit output: Configuration data output bus
     .CLK				(CLK),			// 1-bit input: Clock Input
     .CSIB				(CSIB),			// 1-bit input: Active-Low ICAP Enable
     .I					(I),			// 32-bit input: Configuration data input bus
     .RDWRB				(RDWRB)			// 1-bit input: Read/Write Select input
);

其中 DEVICE_ID 是設(shè)備 ID,與芯片型號有關(guān),譬如對于 K7-325T,ID 如下

multiboot多重配置,數(shù)字邏輯,fpga開發(fā),開發(fā)語言,嵌入式硬件

嵌入 IPROG 命令啟動 Multiboot 介紹

multiboot多重配置,數(shù)字邏輯,fpga開發(fā),開發(fā)語言,嵌入式硬件

??WBSTAR 和 IPROG 命令可以嵌入到一個位流中,如圖所示。在 7 系列 FPGA 的 bitstream 中,WBSTAR 默認填入空白,同時保留了 IPROG 的占位符。我們打開一個 .bin 文件,看看到底是如何組織的

multiboot多重配置,數(shù)字邏輯,fpga開發(fā),開發(fā)語言,嵌入式硬件

可以看到,在地址 0x30 開始的四個字節(jié),為同步碼 AA995566,隨后是一個 NO OP(20000000),然后是一些其他的命令;在 0x54 開始的 4 個字節(jié),為 Write 1 Word to WBSTAR 命令(30020001),隨后四個字節(jié)為要寫入 WBSTAR 的地址,這里默認是 0;隨后緊跟著 Write 1 Word to CMD 命令(30008001),隨后四字節(jié)為寫入的命令,這里默認是占位符 00000000,可以修改為 IPROG (0000000F)以實現(xiàn) IPROG 命令的嵌入。

??這里我們只是觀察一下 .bin/.bit 文件中 IPROG 是如何嵌入的,通過直接修改 .bit/.mcs 實現(xiàn) Multiboot 理論上也是可行的,但實際上我們不會這么做。在實際操作中我們可以通過在 xdc 中增加約束,生成需要的 .bit,然后再組合成 .mcs,下一節(jié)就介紹如何通過添加約束實現(xiàn)這一過程。

嵌入 IPROG 的操作流程

??在編譯 Golden Image 時,需要在 xdc 中增加如下約束

set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design]
set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 0x01000000 [current_design]
set_property CONFIG_MODE SPIX1 [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 1 [current_design]
#由于fallback使用SPIx1,因此請確定一定有此配置

# 如果 FLASH 大小大于等于 256Mb,要增加如下約束,否則高于24位的地址會被忽略,導致無法啟動對應的 update 鏡像
set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design]

在編譯 Multiboot Image 時,需要在 xdc 中使用如下約束

set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design]
set_property CONFIG_MODE SPIX1 [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 1 [current_design]
#由于fallback使用SPIx1,因此請確定一定有此配置

# 如果 FLASH 大小大于等于 256Mb,要增加如下約束,否則高于24位的地址會被忽略,導致無法啟動對應的 update 鏡像
set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design]

??上述約束中,BITSTREAM.CONFIG.CONFIGFALLBACK 用于啟用回退(Fallback)功能,BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 用于設(shè)置 WBSTAR 寄存器,由于 Fallback 要求 SPIx1,因此 BITSTREAM.CONFIG.SPI_BUSWIDTH 要設(shè)為 1。

??編譯完成后,我們還是打開 .bit 看一下,Golden Image 的如下

multiboot多重配置,數(shù)字邏輯,fpga開發(fā),開發(fā)語言,嵌入式硬件

可以看到 WBSTAR 和 IPROG 命令已經(jīng)被嵌入比特流。

??將兩個 .bit 文件分別載入地址 0 和高位地址,生成 .mcs,注意 Multiboot Image 所載入的高位地址應當與前面 xdc 配置的 NEXT_CONFIG_ADDR 相同。燒錄后,可以看到 update Image 被啟動。

ICAPE2 啟動 Multiboot 代碼示例

Multiboot_ctrl.v

??對于 SPI 設(shè)備,WBSTAR 地址有如下描述,即 Master SPI 模式下,WBSTAR 只會使用低 24 位,這 24 位為 FLASH 地址的 31:8 bits,在實現(xiàn)時應當注意

multiboot多重配置,數(shù)字邏輯,fpga開發(fā),開發(fā)語言,嵌入式硬件

代碼如下

/* 
 * file			: multiboot_ctrl.v
 * author		: 今朝無言
 * Lab			: WHU-EIS-LMSWE
 * date			: 2023-11-30
 * version		: v1.0
 * description	: ICAP 原語實現(xiàn)程控 multiboot(多重啟動),K7需要使用 ICAPE2 原語
 * Copyright ? 2023 WHU-EIS-LMSWE, All Rights Reserved.
 */
`default_nettype none
module multiboot_ctrl(
input	wire			clk,
input	wire			rst_n,

input	wire			multiboot_start,	//觸發(fā)Multiboot, 上升沿有效
input	wire	[31:0]	multiboot_addr,		//要啟動的Muliboot Image的起始地址

output	reg				busy
);

//-------------------ICAPE2原語-----------------------------
wire			ICAPE2_CLK;
wire	[31:0]	ICAPE2_O;
reg				ICAPE2_CSIB;
wire	[31:0]	ICAPE2_I;
reg				ICAPE2_RDWRB;

assign	ICAPE2_CLK	= clk;

ICAPE2 #(
     .DEVICE_ID			(32'h3651093),	// Specifies the pre-programmed Device ID value to be used for simulation purposes. K7-325T的為32'h3651093
     .ICAP_WIDTH		("X32"),		// Specifies the input and output data width.
     .SIM_CFG_FILE_NAME	("NONE")		// Specifies the Raw Bitstream (RBT) file to be parsed by the simulation model.
)
ICAPE2_inst(
     .O					(ICAPE2_O),		// 32-bit output: Configuration data output bus
     .CLK				(ICAPE2_CLK),	// 1-bit input: Clock Input
     .CSIB				(ICAPE2_CSIB),	// 1-bit input: Active-Low ICAP Enable
     .I					(ICAPE2_I),		// 32-bit input: Configuration data input bus
     .RDWRB				(ICAPE2_RDWRB)	// 1-bit input: Read/Write Select input    1對應rd,0對應wr
);

wire	[31:0]	Dummy		= 32'hFFFFFFFF;
wire	[31:0]	Sync_Word	= 32'hAA995566;
wire	[31:0]	NOOP		= 32'h20000000;
wire	[31:0]	WR_WBSTAR	= 32'h30020001;

/*When using ICAPE2 to set the WBSTAR address, the 24 most significant address bits should be written
  to WBSTAR[23:0]. For SPI 32-bit addressing mode, WBSTAR[23:0] are sent as address bits [31:8]. The
  lower 8 bits of the address are undefined and the value could be as high as 0xFF. Any bitstream
  at the WBSTAR address should contain 256 dummy bytes before the start of the bitstream.*/
wire	[31:0]	WBSTAR		= {3'b000, 5'h0, multiboot_addr[31:8]};

wire	[31:0]	WR_CMD		= 32'h30008001;
wire	[31:0]	IPROG		= 32'h0000000F;

//ICAPE2位翻轉(zhuǎn)
reg		[31:0]	wrdat;
assign	ICAPE2_I	= {wrdat[24], wrdat[25], wrdat[26], wrdat[27], wrdat[28], wrdat[29], wrdat[30], wrdat[31], 
					   wrdat[16], wrdat[17], wrdat[18], wrdat[19], wrdat[20], wrdat[21], wrdat[22], wrdat[23], 
					   wrdat[8], wrdat[9], wrdat[10], wrdat[11], wrdat[12], wrdat[13], wrdat[14], wrdat[15], 
					   wrdat[0], wrdat[1], wrdat[2], wrdat[3], wrdat[4], wrdat[5], wrdat[6], wrdat[7]};

//------------------------FSM----------------------------------
localparam	S_IDLE			= 16'h0001;
localparam	S_DUMMY			= 16'h0002;
localparam	S_SYN_WORD		= 16'h0004;
localparam	S_NOOP1			= 16'h0008;
localparam	S_WR_WBSTAR		= 16'h0010;
localparam	S_WBSTAR		= 16'h0020;
localparam	S_WR_CMD		= 16'h0040;
localparam	S_IPROG			= 16'h0080;
localparam	S_NOOP2			= 16'h0100;
localparam	S_STOP			= 16'h0200;

wire	multiboot_start_pe;
reg		multiboot_start_d0;
reg		multiboot_start_d1;

assign	multiboot_start_pe	= multiboot_start_d0 & (~multiboot_start_d1);

always @(posedge clk) begin
	multiboot_start_d0		<= multiboot_start;
	multiboot_start_d1		<= multiboot_start_d0;
end

reg		[15:0]	state		= S_IDLE;
reg		[15:0]	next_state;

always @(posedge clk) begin
	if(~rst_n) begin
		state	<= S_IDLE;
	end
	else begin
		state	<= next_state;
	end
end

always @(*) begin
	case(state)
	S_IDLE: begin
		if(multiboot_start_pe) begin
			next_state	<= S_DUMMY;
		end
		else begin
			next_state	<= S_IDLE;
		end
	end
	S_DUMMY:		next_state	<= S_SYN_WORD;
	S_SYN_WORD:		next_state	<= S_NOOP1;
	S_NOOP1:		next_state	<= S_WR_WBSTAR;
	S_WR_WBSTAR:	next_state	<= S_WBSTAR;
	S_WBSTAR:		next_state	<= S_WR_CMD;
	S_WR_CMD:		next_state	<= S_IPROG;
	S_IPROG:		next_state	<= S_NOOP2;
	S_NOOP2:		next_state	<= S_STOP;
	S_STOP:			next_state	<= S_IDLE;
	default:		next_state	<= S_IDLE;
	endcase
end

always @(posedge clk) begin
	case(state)
	S_IDLE: begin
		wrdat			<= 32'd0;
		ICAPE2_CSIB		<= 1'b1;
		ICAPE2_RDWRB	<= 1'b1;
	end
	S_DUMMY: begin
		wrdat			<= Dummy;
		ICAPE2_CSIB		<= 1'b0;
		ICAPE2_RDWRB	<= 1'b0;
	end
	S_SYN_WORD: begin
		wrdat			<= Sync_Word;
		ICAPE2_CSIB		<= 1'b0;
		ICAPE2_RDWRB	<= 1'b0;
	end
	S_NOOP1: begin
		wrdat			<= NOOP;
		ICAPE2_CSIB		<= 1'b0;
		ICAPE2_RDWRB	<= 1'b0;
	end
	S_WR_WBSTAR: begin
		wrdat			<= WR_WBSTAR;
		ICAPE2_CSIB		<= 1'b0;
		ICAPE2_RDWRB	<= 1'b0;
	end
	S_WBSTAR: begin
		wrdat			<= WBSTAR;
		ICAPE2_CSIB		<= 1'b0;
		ICAPE2_RDWRB	<= 1'b0;
	end
	S_WR_CMD: begin
		wrdat			<= WR_CMD;
		ICAPE2_CSIB		<= 1'b0;
		ICAPE2_RDWRB	<= 1'b0;
	end
	S_IPROG: begin
		wrdat			<= IPROG;
		ICAPE2_CSIB		<= 1'b0;
		ICAPE2_RDWRB	<= 1'b0;
	end
	S_NOOP2: begin
		wrdat			<= NOOP;
		ICAPE2_CSIB		<= 1'b0;
		ICAPE2_RDWRB	<= 1'b0;
	end
	S_STOP: begin
		wrdat			<= 32'd0;
		ICAPE2_CSIB		<= 1'b1;
		ICAPE2_RDWRB	<= 1'b1;
	end
	default: begin
		wrdat			<= 32'd0;
		ICAPE2_CSIB		<= 1'b1;
		ICAPE2_RDWRB	<= 1'b1;
	end
	endcase
end

always @(*) begin
	case(state)
	S_IDLE:		busy	<= 1'b0;
	default:	busy	<= 1'b1;
	endcase
end

endmodule

測試

??創(chuàng)建兩個工程如下

  • Prj_1
//生成2個點燈的程序,使用ICAP來回切換這兩個Image
//本工程作為 Golden Image 存入地址 0
`default_nettype none
module Prj_1(
input	wire			clk_sys,	//OXCO_10M

input	wire	[3:0]	Key,
output	wire	[3:0]	LED
);

assign	LED		= 4'b0001;

multiboot_ctrl multiboot_ctrl_inst(
	.clk				(clk_sys),
	.rst_n				(1'b1),

	.multiboot_start	(~Key[0]),
	.multiboot_addr		(32'h01000000),		//加載0x01000000處的Multiboot Image

	.busy				()
);

endmodule
  • Prj_2
//生成2個點燈的程序,使用ICAP來回切換這兩個Image
//本工程作為 Update Image 存入高位地址
`default_nettype none
module Prj_2(
input	wire			clk_sys,	//OXCO_10M

input	wire	[3:0]	Key,
output	wire	[3:0]	LED
);

assign	LED		= 4'b0010;

multiboot_ctrl multiboot_ctrl_inst(
	.clk				(clk_sys),
	.rst_n				(1'b1),

	.multiboot_start	(~Key[1]),
	.multiboot_addr		(32'h00000000),		//加載0x00000000處的Golden Image

	.busy				()
);

endmodule

燒錄后,通過按鍵可以來回切換兩個工程,讀者可自行驗證。

??一個注意事項,在燒錄完成后,必須拔掉 JTAG 再掉電重啟,ICAP 才可以正確啟動 Multiboot Image,如果是不拔掉 JTAG 掉電重啟,ICAP 觸發(fā)后只會加載 Golden Image。(真坑人啊,因為這個調(diào)了好久 (??へ??╬) )文章來源地址http://www.zghlxwxcb.cn/news/detail-765311.html

參考文獻

  • ug470_Config.pdf
  • ug953-vivado-7series-libraries.pdf

到了這里,關(guān)于K7系列FPGA多重啟動(Multiboot)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 數(shù)字電路硬件設(shè)計系列(六)之FPGA配置引腳的設(shè)計

    數(shù)字電路硬件設(shè)計系列(六)之FPGA配置引腳的設(shè)計

    不同的FPGA種類,配置的方式可能有稍許的差別。此處我們主要以7系列中 XC7A200TFBG676 為例,講解FPGA的主要配置引腳。 工具制程工藝的不同,F(xiàn)PGA主要可以分為16nm、20nm、28nm。不停的制程工藝下,有不同的產(chǎn)品,詳細將下: 在FPGA的設(shè)計過程中,將FPGA的IO口劃分為不同的BANK,常見

    2024年02月06日
    瀏覽(23)
  • Xilinx FPGA ICAP原語實現(xiàn)多重配置

    1. FPGA可以運行幾個固件 眾所周知,常見的FPGA通常為SRAM結(jié)構(gòu),固件程序一般存放在外置的串行Flash中,比如SPI Flash,M25P16或N25Q128等。 FPGA啟動時,一般先從SPI起始地址開始加載數(shù)據(jù)到內(nèi)部的SRAM,加載完成、校驗通過則會直接運行。 那么有沒有可能在SPI Flash中存放兩個或多個

    2024年02月02日
    瀏覽(154)
  • linux 多重啟動grub2詳解

    linux 多重啟動grub2詳解

    https://www.gnu.org/software/grub/manual/grub/grub.pdf

    2024年02月09日
    瀏覽(13)
  • Xilinx 7系列 FPGA硬件知識系列(九)——FPGA的配置

    Xilinx 7系列 FPGA硬件知識系列(九)——FPGA的配置

    目錄 1 .1配置模式 1.1.1??主模式 1.1.2??從模式 1.2??7種配置模式 1.2.1??主串配置模式 1.2.2??從串配置模式 ?編輯1.2.3??主并配置模式 1.2.4??從并配置模式 1.2.5??JTAG配置模式 ?編輯1.2.6??主SPI配置模式 ?編輯1.2.7??主BPI配置模式 1.2.8??FPGA BPI加載時間(參考xapp587) 2、BPI

    2024年03月13日
    瀏覽(94)
  • 基帶信號處理設(shè)計原理圖:2-基于6U VPX的雙TMS320C6678+Xilinx FPGA K7 XC7K420T的圖像信號處理板

    基帶信號處理設(shè)計原理圖:2-基于6U VPX的雙TMS320C6678+Xilinx FPGA K7 XC7K420T的圖像信號處理板

    基于6U VPX的雙TMS320C6678+Xilinx FPGA K7 XC7K420T的圖像信號處理板 ?????????綜合圖像處理硬件平臺包括圖像信號處理板2塊,視頻處理板1塊,主控板1塊,電源板1塊,VPX背板1塊。 一、板卡概述 ?????????圖像信號處理板包括2片TI 多核DSP處理器-TMS320C6678,1片Xilinx FPGA XC7K420T-

    2024年03月15日
    瀏覽(104)
  • 圖像信號處理板設(shè)計原理圖:2-基于6U VPX的雙TMS320C6678+Xilinx FPGA K7 XC7K420T的圖像信號處理板

    圖像信號處理板設(shè)計原理圖:2-基于6U VPX的雙TMS320C6678+Xilinx FPGA K7 XC7K420T的圖像信號處理板

    ?????????綜合圖像處理硬件平臺包括圖像信號處理板2塊,視頻處理板1塊,主控板1塊,電源板1塊,VPX背板1塊。 一、板卡概述 ?????????圖像信號處理板包括2片TI 多核DSP處理器-TMS320C6678,1片Xilinx FPGA XC7K420T-1FFG1156,1片Xilinx FPGA XC3S200AN。實現(xiàn)四路千兆以太網(wǎng)輸出,兩路

    2024年02月04日
    瀏覽(90)
  • xilinx 7系列fpga上電配置

    xilinx 7系列fpga上電配置

    Xilinx FPGA通過加載比特流到內(nèi)部存儲單元來進行配置。 Xilinx FPGA存在兩種數(shù)據(jù)配置路徑,一種是滿足最小引腳需求的串行路徑,一種是可用8位、16位或32位來連接到行業(yè)的高性能通用接口,如處理器,8位或者16位并行的閃存。與處理器和處理器外圍設(shè)備一樣, FPGA可以在系統(tǒng)中

    2024年04月14日
    瀏覽(368)
  • Xilinx 7系列FPGA配置(ug470)

    Xilinx 7系列FPGA配置(ug470)

    如果 M[2:0] 為 ”101“,則該FPGA 只支持 JTAG 進行配置。處于其余配置模式下時,依舊可以使用 JTAG 模式進行調(diào)試,并且優(yōu)先級最高。 串行配置模式 接口 從-連接方式 主-連接方式 除了CCLK 連接不同,其他都和從串行模式一樣 串行菊花鏈(非同時配置) 上升沿采樣DIN數(shù)據(jù),下降

    2024年03月22日
    瀏覽(93)
  • Xilinx(AMD) 7系列FPGA——主BPI配置模式

    主BPI配置模式用于對啟動加載時間有要求的情況下使用,因為BPI模式為并行加載,加載時間較短,適用于需要快速加載的場景;主BPI模式,M[2:0] = 3’b010。主BPI模式進行讀寫操作時,分為同步與異步兩種,對于同步讀取,F(xiàn)PGA的CCLK管腳輸出必須連接到Flash的CLK引腳;對于異步讀

    2024年03月17日
    瀏覽(92)
  • [FPGA IP系列] BRAM IP參數(shù)配置與使用示例

    [FPGA IP系列] BRAM IP參數(shù)配置與使用示例

    FPGA開發(fā)中使用頻率非常高的兩個IP就是FIFO和BRAM,上一篇文章中已經(jīng)詳細介紹了Vivado FIFO IP,今天我們來聊一聊BRAM IP。 本文將詳細介紹Vivado中BRAM IP的配置方式和使用技巧。 1、打開BRAM IP核 在Vivado的IP Catalog中找到Block Memory Generator IP核,雙擊打開參數(shù)配置界面。 2、配置BRAM I

    2024年02月04日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包