新聞中心

EEPW首頁 > 網絡與存儲 > 設計應用 > Vivado HLS推動協(xié)議處理系統(tǒng)蓬勃發(fā)展(下)

Vivado HLS推動協(xié)議處理系統(tǒng)蓬勃發(fā)展(下)

作者:KimonKarras JamesHrica 時間:2015-04-29 來源:電子產品世界 收藏

  7 用多級層級創(chuàng)建系統(tǒng)

本文引用地址:http://www.2s4d.com/article/273295.htm

  上文討論了如何使用 HLS實現簡單的三級流水線。但是一般的包處理系統(tǒng)可能會包含分布在層級結構中多個層面的多個模塊。圖2即是這種系統(tǒng)的示例。在本例中,層級結構的第一層由兩個模塊組成,每個模塊下面包括三個子模塊。這個示例中的頂層模塊與前面介紹的簡單系統(tǒng)中頂層模塊相似。但包含有三個子模塊的較低層模塊使用INLINE編譯指令來解析函數,將其子模塊推送到頂層,如例6所示。

  例6: HLS中的中間模塊

  1 void module2 (stream < axiWord > &inData,
  stream&outData) {
  2 #pragma HLS INLINE
  3
  4 ………

  因此在 HLS完成綜合后,系統(tǒng)基本如圖3所示。這樣Vivado HLS就能正確地根據這些模塊創(chuàng)建數據流架構,完成模塊的流水線化,然后同步執(zhí)行。在嵌入該函數后,各模塊和信號保持原來的名稱不變。

  8 使用高級語言結構

  高層次綜合的主要優(yōu)勢之一在于可以使用高級語言結構來表達復雜對象,與傳統(tǒng)RTL設計相比,顯著提高了抽象水平。下面的例子是描述一個小型查找表。

  例7中的代碼用于內容可尋址(CAM)類定義,它使用類對象創(chuàng)建一個表,供存儲和恢復上述原型系統(tǒng)的ARP數據。該類有一個私有成員,這個私有成員是一個由“noOfArpTableEntries”條“arpTableEntry”類型記錄組成的陣列。這種類型屬于一種數據結構,包括MAC地址、對應的IP地址和用于說明該條記錄是否包含有效數據的一個數位。

  例7:CAM類定義

  1 class cam {
  2 private:
  3 arpTableEntry filterEntries[noOfArpTableEntries];
  4 public:
  5 cam();
  6 bool write(arpTableEntry writeEntry);
  7 bool clear(ap_uint<32> clearAddress);
  8 arpTableEntry compare(ap_uint<32>
  searchAddress);
  9 };

  這個類也包括四種在這個表上運算方法(其中一個是構造器)。其中的一個,即比較法,用于實現真正的查找功能。本例通過提供IP地址來返回相應的MAC地址。處理的方法是使用“for”循環(huán)查找表中的每一條記錄,搜索有相同IP地址的有效記錄。然后完整地返回這條記錄。如果沒有找到,就返回無效記錄。為讓設計實現II=1的目標,必須完全展開這個循環(huán)。

  例8:用于CAM類的比較法

  1 arpTableEntry cam::compare(ap_uint<32> searchAddress)
  {
  2 for (uint8_t i=0; i
  3 if (this->filterEntries[i].valid == 1 &&
  searchAddress == this->filterEntries[i].ipAddress)
  4 return this->filterEntries[i];
  5 }
  6 arpTableEntry temp = {0, 0, 0};
  7 return temp;
  8 }

  上述經驗和示例明確說明,用戶可以使用Vivado HLS充分發(fā)揮高級編程結構的作用,用類似軟件的方法描述包處理系統(tǒng)。采用RTL是難以實現的。

  9 10GBps速率下的協(xié)議處理

  與傳統(tǒng)RTL相比,Vivado HLS可使用在FPGA上迅速方便地實現協(xié)議處理設計,充分發(fā)揮高級語言帶來的效率提升優(yōu)勢。另外還具有下列優(yōu)點:使用C函數輕松完成系統(tǒng)構建;數據通過流交換,提供類似的標準化接口;靈活的流控制和HLS編譯指令,便于使用該工具實現需要的架構。借助這些功能,用戶無需重寫源代碼就能夠迅速判研多種不同設計方案的利弊。

  出于解釋這類設計的基本概念的目的,上文討論了一種能夠應答ping和ARP請求,解析IP地址查詢的簡單ARP服務器。結果證明用Vivado HLS設計的模塊能夠以10Gbp乃至更高的線速完成協(xié)議處理。

c++相關文章:c++教程



上一頁 1 2 3 下一頁

關鍵詞: Vivado FIFO 存儲器 RAM C/C++

評論


相關推薦

技術專區(qū)

關閉