亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于雙口ram的fpga內(nèi)部硬核與軟核通信的方法

文檔序號:9887578閱讀:1053來源:國知局
一種基于雙口ram的fpga內(nèi)部硬核與軟核通信的方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及一種基于雙口 RAM的FPGA內(nèi)部硬核與軟核通信的方法。
【背景技術(shù)】
[0002] 當(dāng)前電力電子領(lǐng)域的FPGA中硬核與軟和的交換數(shù)據(jù),一般使用總線地址映射的方 法傳遞數(shù)據(jù)有一定的局限性;所以采用雙口ram通信方式越來越多的被使用,但是缺少一種 合理的通信協(xié)議;現(xiàn)有的通信方式,由于存儲過程同步,因此,需要實(shí)時(shí)的中斷來處理收到 的信息,CPU是使用率過高,對硬件要求也高。

【發(fā)明內(nèi)容】

[0003] 本發(fā)明要解決的技術(shù)問題是現(xiàn)有的雙口 ram通信方式,需要實(shí)時(shí)的中斷來處理收 到的信息,CPU是使用率過高,對硬件要求也高,導(dǎo)致成本高昂。
[0004] 為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案是:一種基于雙口 RAM的FPGA內(nèi)部硬 核與軟核通信的方法,在雙口 RAM中開辟數(shù)據(jù)狀態(tài)區(qū)域RAM#1、數(shù)據(jù)狀態(tài)區(qū)域RAM#2、數(shù)據(jù)狀 態(tài)區(qū)域RAM#3、數(shù)據(jù)狀態(tài)區(qū)域RAM#4、數(shù)據(jù)狀態(tài)區(qū)域RAM#5和數(shù)據(jù)狀態(tài)區(qū)域RAM#6;所述RAM# 1 用于描述電氣量、參數(shù)、命令數(shù)據(jù)的讀寫狀態(tài);硬核、軟核通過交互讀取這些讀寫狀態(tài)來控 制雙方數(shù)據(jù)的交換;所述RAM#2用于寫入RAM#1中硬核收集的數(shù)據(jù),當(dāng)硬核寫入數(shù)據(jù)到相關(guān) RAM#2中,并置位RAM#1中的標(biāo)志狀態(tài)后,軟核根據(jù)RAM#1中的狀態(tài)讀取RAM#2中的數(shù)據(jù),并處 理此數(shù)據(jù);所述RAM#3用于寫入軟核的命令,并置位RAM#1中的標(biāo)志狀態(tài);硬核根據(jù)RAM#1中 的狀態(tài)讀取RAM#3中的命令,并執(zhí)行;所述RAMM,用于軟核硬核信息的修改;1)軟核把參數(shù) 寫入RAM#4中,并置位RAM# 1中的標(biāo)志狀態(tài);硬核根據(jù)RAM# 1中的狀態(tài)讀取RAM#4中的參數(shù), 并修改參數(shù);2)硬核把參數(shù)寫入RAM#4中,并置位RAM#1中的標(biāo)志狀態(tài);軟核根據(jù)RAM#1中的 狀態(tài)讀取RAMM中的參數(shù),查看此參數(shù)是否正確,可靠;所述RAM#5,用于寫入硬核的故障信 息,并置位RAM#1中的標(biāo)志狀態(tài);軟核根據(jù)RAM#1中的狀態(tài)讀取RAM#5中的故障代碼并存儲顯 示;所述RAM#6,用于寫入硬核故障發(fā)生時(shí)的波形信息,并置位RAM#1中的標(biāo)志狀態(tài);軟核根 據(jù)RAM#1中的狀態(tài)讀取RAM#6中的故障代碼并存儲顯示。
[0005] 本發(fā)明的優(yōu)點(diǎn)是:利用雙口 ram的特性,在FPGA的軟核硬核之間用一種高效,異步, 占用資源少的通信方式實(shí)現(xiàn),提供了一種可靠并高效的通信協(xié)議,硬核軟核只需經(jīng)常讀取 RAM#1里面很少的幾個(gè)標(biāo)志位,就可以知道整個(gè)通信的情況。整個(gè)存儲過程是一個(gè)異步的過 程,不需要像其他的通信方式那樣,需要實(shí)時(shí)的中斷來處理收到的信息。大大降低了 CPU是 使用率,節(jié)省了更多寶貴的硬件資源。
【具體實(shí)施方式】
[0006] 本發(fā)明一種基于雙口 RAM的FPGA內(nèi)部硬核與軟核通信的方法,具體步驟如下:
[0007] 在雙口 RAM中開辟了 一塊數(shù)據(jù)狀態(tài)的區(qū)域RAM# 1,用來描述電氣量,參數(shù),命令等數(shù) 據(jù)的讀寫狀態(tài);硬核,軟核能否方便的讀取這些狀態(tài)來控制雙方數(shù)據(jù)的交換;
[0008] RAM#1的地址定義
[0009]
[0(
[0011] 1 · 1 · lRAM2_state(硬核讀/寫,軟核讀/寫)
[0012] RAM2_state:分為三個(gè)狀態(tài)0,1,2,3。0:軟核空閑;1:硬核正在寫RAM#2; 2:硬核寫 完RAM#2; 3:軟核正在讀RAM#2;
[0013] 當(dāng)硬核200ms發(fā)送周期時(shí)間到的時(shí)候,檢測到RAM2_state! = 3,就可以向RAM2中寫 [0014] 數(shù)據(jù),寫之前把RAM2_state設(shè)置為1;全部寫完后把RAM2_state值2;
[0015] 軟核循環(huán)讀取RAM2_state,如果RAM2_state為2;則開始讀取RAM#2中的數(shù)據(jù);讀之 前把RAM2_state設(shè)置為3;全部讀完后把RAM2_state設(shè)置為0;
[0016] 軟核可以通過判斷RAM2_state狀態(tài)是否能從狀態(tài)0變成2,判斷通信是否中斷; [0017] 硬核可以通過判斷RAM2_state狀態(tài)是否能從狀態(tài)2變成0,判斷通信是否中斷; [0018] 1.1.2RAM2_ID(硬核讀,軟核寫)
[0019] RAM2_ID里面為某個(gè)從模塊ID的值;
[0020]當(dāng)硬核向RAM#2中寫數(shù)據(jù)之前需要判斷RAM2_ID的值;
[0021] 1 · 1 · 3RAM3_W_ord(硬核讀,軟核讀/寫)和RAM3_R_ord(硬核讀/寫,軟核讀)RAM3_ W_ord,RAM3_R_ord范圍就是RAM#3緩沖區(qū)大小(0~31);
[0022] RAM3_W_ord:命令寫指針;
[0023] RAM3_R_ord:命令讀指針;偏移量:0x300;
[0024] 具體應(yīng)用(RAM3_W_ord,RAM3_R_ord):
[0025] ①注會的當(dāng)顯示下發(fā)一個(gè)命令時(shí)
[0026] ②判斷RAM3_W_ord的范圍是不是在(0~31)之間,如果不是則RAM3_W_ord = 0 ; RAM3_R_ord = 0;
[0027] ③把命令寫入RAM3_W_ord+0x300地址中,讓RAM3_W_ord指向下一個(gè)區(qū)域;
[0028] 讀命令:
[0029] (1)硬核循環(huán)讀取 RAM3_W_ord,RAM3_R_ord;
[0030] (2)如果他們的范圍不在(0 ~31)之間則RAM3_W_or d = 0; RAM3_R_or d = 0;
[0031] (3)如果 RAM3_W_ord! = RAM3_R_ord;則讀取 RAM3_R_ord+0x300 中的命令,并執(zhí)行; 讓RAM3_R_ord指向下一個(gè)區(qū)域;
[0032] 1.1.4RAM4_ord,RAM4_ID,RAM4_addr,RAM4_EN0B,
[0033] RAM4_ord分別為三個(gè)狀態(tài)0,1,2,3; 0:空閑;1:軟核申請主板參數(shù);2:主板參數(shù)上 傳完畢,軟核可以讀取;3:軟核修改參數(shù),等待主板修改;
[0034] RAM4_ID:模塊的ID (根據(jù)實(shí)際情況定義)
[0035] RAM4_addr:傳遞的數(shù)據(jù)的地址,詳見參數(shù)表
[0036] RAM4_EN0B:有效數(shù)據(jù)位(000000000) 2~(1 111 111 11) 2;軟核傳上來的數(shù),只有數(shù) 據(jù)的有效數(shù)據(jù)位為1時(shí),硬核才能修改此參數(shù);
[0037] 讀參數(shù):
[0038] (1)軟核需要讀取某一頁數(shù)據(jù);
[0039] (2)軟核把RAM4_ID寫入模塊ID;
[0040] (3)軟核把RAM4_addr寫入傳遞頁的數(shù)據(jù)地址;
[0041] (4)RAM4_ord = 1 ;
[0042] (5)表示軟核需要讀取模塊ID為RAM4_ID;數(shù)據(jù)地址為RAM4_addr的數(shù)據(jù);
[0043] (6)硬核準(zhǔn)備好數(shù)據(jù)寫入到0x340~0x342區(qū)域;并且RAM4_ord = 0x02;
[0044] (7)軟核循環(huán)讀取RAM4_ord如果RAM4_ord= =0x02;則開始讀取0x340~0x342區(qū) 域的內(nèi)容,顯示到界面;讀取完畢后,RAM4_ord==0;
[0045] 寫參數(shù):
[0046] (1)當(dāng)人機(jī)界面發(fā)送修改參數(shù)命令;
[0047
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1