新四季網

並行CRC算法VerilogHDL代碼自動生成器及其方法

2023-05-28 21:57:16 3

專利名稱:並行CRC算法Verilog HDL代碼自動生成器及其方法
技術領域:
本發明涉及一種代碼自動生成器及其方法,具體涉及一種並行CRC算法Verilog HDL代碼自動生成器及其方法。
背景技術:
由於在速度方面優於串行CRC算法,並行CRC算法被廣泛地應用在數據傳輸、存 儲、通信、加密和解密等領域中,在用專用集成電路和FPGA實現其算法時,先要得到CRC算 法Verilog HDL代碼,由此代碼進一步通過綜合工具得到CRC算法網表,從而得到CRC算法 的硬體拓撲結構。串行CRC電路結構簡單,運算速度慢;並行CRC電路結構複雜,運算速度快;在串行CRC電路中,如果確定了 G(X)的表達式公式1和電路的初值INT,就可以確 定其電路結構,具體電路用CRCN_A_INT表示;G(X) 二 J] (其中 4 = O 或 1)(0 S 免 S Λ0 (其中 Ak = O 或 1) (O≤k≤ N)(公並行電路中,如果確定了 G(X)的表達式和電路的初值INT和並行數據寬度M,就可 以確定並行CRC電路結構,具體電路用CRCN_DM_A_INT就可以表示,並行CRC電路的核心是 邏輯電路,邏輯電路可以用公式2表示,formula see original document page 4( 公式 2)formula see original document page 4公式中的核心部分是表達式中各項的係數Qj [i], 在現有技術中,如果要得到並行CRC算法Verilog HDL代碼,需要技術人員熟悉並 行CRC算法,並能推導出並行CRC算法的一般表達式,進而人工將表達式轉化為並行CRC算 法Verilog HDL代碼。此方法的缺點如下1)需要技術人員完全理解並行CRC算法;2)需要技術人員會推導並行CRC算法一般表達式;3)需要技術人員人工將並行CRC —般表達式轉化為並行CRC算法VerilogHDL代 碼;4)需要技術人員輸入CRC代碼,輸入時由於相似項繁多,手動輸入費時費力,容易 出錯。

發明內容
本發明的目的在於提供一種並行CRC算法Verilog HDL代碼自動生成器及其方法,其解決了背景技術中並行CRC算法Verilog HDL代碼生成複雜的技術問題。本發明的技術解決方案是一種並行CRC算法Verilog HDL代碼自動生成器,其特殊之處在於提供係數產生 電路拓撲結構,其包括基於modelsim仿真平臺上係數產生電路代碼原型,所述係數產生電 路代碼CG. ν在modelsim仿真平臺上運行產生的係數文件C. txt,所述Verilog代碼產生文 件VG. ν在modelsim仿真平臺上再運行,並自動調用CG. ν生成的係數文件C. txt產生得到 並行CRC電路Verilog代碼文件F. txt。上述係數產生電路包括產生代表輸入數據的二進位代碼D[2N_1:0]的2N-1位移 位寄存器組(DFFS),產生時鐘(elk)、復位(reset)以及M個elk時鐘長度的使能信號(en_ Μ)的控制信號發生器(CSG)和產生並行CRC計算公式的係數的係數產生模塊(CGB)。上述係數產生模塊(CGB)包括反饋環路(FL),串行模塊(SB)和產生復位時Q端的 初值的復位值(RV)電路。一種並行CRC算法Verilog HDL代碼自動生成方法,其特殊之處在於,該方法包 括1)提取設計參數N,M,A,INT,得到並行CRC算法係數產生電路的一般表達式CRCN_ DM_A_INT ;所述並行CRC算法係數產生電路的一般表達式CRCN_DM_A_INT的邏輯電路用公 式2表不,formula see original document page 5formula see original document page 52)把設計參數N,Μ, A, INT按照係數產生電路設計步驟得到並行CRC算法係數產 生電路;3)將係數產生電路用verilog代碼表示為CG. ν ;4)在modelsim上運行CG. ν得到係數文件C. txt ;5)在modelsim上運行VG. ν得到並行CRC電路Verilog代碼F. txt。上述設計參數提取方法為1)根據串行CRC電路結構得到公式一
k^NG(X) = J^(AkXk)(其中 Ak = O或 1) (O < k<N)(公式 1)和 CRCN—A—INT,
fc=02) N的值等於k的最大值,即N ;3) A為N+1位二進位數,Ak為一位二進位數,取值只能為O或1,在verilogHDL代 碼中可以表示為 Α[Ν:0] = {An,An_i; . . . , A0};4) INT為串行CRC電路中觸發器DFFtl至DFF1^1中Q端的初值,DFFi (O彡i彡N-1) 的值可以用Ci (O彡i彡N-1)來表示,此Ci就是公式2中的Ci, Ci為一位二進位數,取值只 能為 O 或 1 ;在 verilog HDL 代碼中可以表示為 INT[N_1:0] = IC1^1,CN_2,. . .,C。}。上述設計參數提取方法還可為若並行CRC的數據輸入端D的位寬為M,在verilogHDL代碼中可以表示為 D[M-1:0] = {DN_i,Dn_2,...,Dq} ;Df(0 ^ f ^M-I)為串行 CRC 運算中第 f 次輸入的數據,此0〃就是公式2中的Df。上述按照係數產生電路設計步驟包括1)提供一個產生代表輸入數據的二進位代碼D[2N_1:0]的2N_1位移位寄存器組 (DFFS);2)提供一個產生時鐘(elk)、復位(reset)以及M個elk時鐘長度的使能信號(en_ Μ)的控制信號發生器(CSG)
3)提供一個產生並行CRC計算公式的係數的係數產生模塊(CGB)。上述係數產生模塊(CGB)中的串行模塊(SB)由N-I個模塊組成,其中任意一個模 塊j (1 <= j <=n-l)對應的電路結構都是反饋異或電路(FXOR)或無反饋電路(NF)中 的一種。上述A的二進位表示為An. · .A1Atl, Al到AN表示為A [1:N_1];當^為0時,(1彡j彡N-1)模塊j對應的電路結構為反饋異或電路(FXOR)。當Aj為1時,(1彡j彡N-1)模塊j對應的電路結構為無反饋電路(NF)。本發明的優點在於並行CRC算法Verilog HDL代碼生成迅速,且直接可以使用。


圖1為本發明設計流程示意圖;圖2為CRCN_DM_A_INT並行算法係數產生電路;圖3為係數產生模塊(CGB);圖4為反饋環路(FL);圖5為串行模塊(SB);圖6為反饋異或電路(FXOR);圖7為無反饋電路(NF)。
具體實施例方式本發明是將串行CRC電路轉化為並行CRC電路,即根據串行CRC電路的結構或者 表達式(公式一),得到並行CRC電路。並行CRC電路可以用Verilog代碼(F.txt)表示; 其一般形式用公式2表示,具體的代碼將會產生在文件F. txt中;公式2中的核心問題是各項的係數Qj[i],具體的係數會產生在文件C. txt中;文件C. txt可以在modelsim中運行CG. ν產生;CG. ν是並行CRC係數產生電路CRCN_DM_A_INT的veriIogHDL代碼表示方法;CRC 係數產生電路是本專利保護的核心,其設計方式由係數產生電路設計步驟(附件三)給 出;設計步驟要用到的參數為N,M,A,INT參數N,A,INT可由公式1得到,具體方法見設計參數提取方法一(附件一);參數M為並行CRC數據data的寬度,具體方法見設計參數提取方法二(附件二);因此本發明的設計流程概要為見圖11 按附件一,二提取設計參數 N,M,A,INT,得到 CRCN_DM_A_INT ;2 把設計參數N,M,A,INT按照附件二中所提供的係數產生電路設計步驟得到圖--;3 將圖二用verilog代碼表示為CG. ν ;4 在modelsim上運行CG. ν得到係數文件C. txt ;5 在 modelsim 上運行 VG. ν 得到並行 CRC 電路 Verilog 代碼(F. txt)附件一設計參數提取方法一1 根據串行CRC電路結構得到公式一
k-NG(X) = Yu (AkXk)(其中 Ak = O 或 1) (O 彡 k 彡 N)(公式 1)和 CRCN_A_INT,2 =N的值等於k的最大值,即N ;3 =A為N+1位二進位數,Ak為一位二進位數,取值只能為0或1,在verilogHDL代 碼中可以表示為 Α[Ν:0] = {An,An_i; . . . , A0};4 :INT為串行CRC電路中觸發器DFFtl至DFF1^1中Q端的初值,DFFi (0彡i彡N-1) 的值可以用Ci (0彡i彡N-1)來表示,此Ci就是公式2中的Ci, Ci為一位二進位數,取值只 能為 0 或 1 ;在 verilogHDL 代碼中可以表示為 INT[N_1:0] = (Cn^1 , CN_2,· · ·,Cj ;附件二 設計參數提取方法二1 若並行CRC的數據輸入端D的位寬為M,在verilogHDL代碼中可以表示為 D[M-1:0] = {DN_i,Dn_2,...,Dq} ;Df(0 ^ f ^M-I)為串行 CRC 運算中第 f 此輸入的數據,此 0〃就是公式2中的Df。附件三係數產生電路設計步驟電路結構由圖(2-7)和步驟(1-9)來闡述步驟1 :CRCN_DM_A_INT並行算法係數產生電路(圖2)主要由三個部分組成2N_1 位移位寄存器組(DFFS)、控制信號發生器(CSG)、係數產生模塊(CGB)(圖3);步驟2 =DFFS的作用是產生代表輸入數據的二進位代碼D [2N-1 0];步驟3 =CSG的作用是產生時鐘(elk)、復位(reset)、M個elk時鐘長度的使能信 號(en_M);步驟4 =CGB的作用是產生並行CRC計算公式的係數,其由反饋環路(FL)(圖4), 串行模塊(SB)(圖5)和復位值(RV)電路組成;步驟5 :SB由N-I個模塊組成,其中任意一個模塊j (1 < = j < = n-1)對應的電 路結構都是反饋異或電路(FXOR)或無反饋電路(NF)中的一種,具體對應方式由7、8說明;步驟6:A的二進位表示為AN…A1A(1,Al到AN表示為A[l:N-l];步驟7 ^.為0時,(l^j ^N-I)模塊j對應的電路結構為反饋異或電路(FX0R(圖 6);步驟8 -.Aj為1時,(1彡j彡N-1)模塊j對應的電路結構為無反饋電路(NF)(圖 7);步驟9 復位值(RV)電路是產生復位時Q端的初值。
權利要求
一種並行CRC算法Verilog HDL代碼自動生成器,其特徵在於包括基於modelsim仿真平臺上係數產生電路,所述係數產生電路在modelsim仿真平臺上運行產生的係數文件C.txt,所述係數產生電路在modelsim仿真平臺上再運行,並自動調用用verilog代碼表示為CG.v的係數文件C.txt產生得到並行CRC電路Verilog代碼文件F.txt。
2.根據權利要求1所述並行CRC算法VerilogHDL代碼自動生成器,其特徵在於所 述係數產生電路包括產生代表輸入數據的二進位代碼D[2N-1:0]的2N-1位移位寄存器組 (DFFS),產生時鐘(elk)、復位(reset)以及M個elk時鐘長度的使能信號(en_M)的控制信 號發生器(CSG)和產生並行CRC計算公式的係數的係數產生模塊(CGB)。
3.根據權利要求2所述並行CRC算法VerilogHDL代碼自動生成器,其特徵在於所 述係數產生模塊(CGB)包括反饋環路(FL),串行模塊(SB)和產生復位時Q端的初值的復位 值(RV)電路。
4.一種並行CRC算法Verilog HDL代碼自動生成方法,其特徵在於,該方法包括1)提取設計參數N,M,A,INT,得到並行CRC算法係數產生電路的一般表達式CRCN_DM_ A_INT ;所述並行CRC算法係數產生電路的一般表達式CRCN_DM_A_INT的邏輯電路用公式2 表不,formula see original document page 22)把設計參數N,Μ,A, INT按照係數產生電路設計步驟得到並行CRC算法係數產生電路;3)將係數文件C.txt用verilog代碼表示為CG. ν ;4)在modelsim上運行CG.ν得到係數文件C. txt ;5)在modelsim上運行VG.ν得到並行CRC電路Verilog代碼F. txt。
5.根據權利要求4所述並行CRC算法VerilogHDL代碼自動生成方法,其特徵在於 所述設計參數提取方法為1)根據串行CRC電路結構得到公式一formula see original document page 22)N的值等於k的最大值,即N;3)A為N+1位二進位數,Ak為一位二進位數,取值只能為O或1,在verilogHDL代碼中 可以表示為 Α[Ν:0] = {An,An_1 · · ·,AJ ;4)INT為串行CRC電路中觸發器DFFtl至DFF1^1中Q端的初值,DFFi (O彡i彡N-1)的值 可以用Ci(C)彡i彡N-1)來表示,此Ci就是公式2中的CpCi為一位二進位數,取值只能為 O 或 1 ;在 verilog HDL 代碼中可以表示為 INT[N_1:0] = (Cn^1 , CN_2,· · ·,C0}。
6.根據權利要求4所述並行CRC算法VerilogHDL代碼自動生成方法,其特徵在於 所述設計參數提取方法還可為若並行CRC的數據輸入端D的位寬為M,在verilogHDL代碼 中可以表示為D[M-1:0] = {Dn_1 Dn_2, ... , D0} ;Df(0^ f ^M-D為串行CRC運算中第f此 輸入的數據,此Df就是公式2中的Df。
7.根據權利要求4 6所述並行CRC算法VerilogHDL代碼自動生成方法,其特徵在 於所述按照係數產生電路設計步驟包括1)提供一個產生代表輸入數據的二進位代碼D[2N-1:0]的2N-1位移位寄存器組 (DFFS);2)提供一個產生時鐘(elk)、復位(reset)以及M個elk時鐘長度的使能信號(en_M) 的控制信號發生器(CSG);3)提供一個產生並行CRC計算公式的係數的係數產生模塊(CGB)。
8.根據權利要求7所述並行CRC算法VerilogHDL代碼自動生成方法,其特徵在於所 述係數產生模塊(CGB)中的串行模塊(SB)由N-I個模塊組成,其中任意一個模塊j(l < = j <= n-1)對應的電路結構都是反饋異或電路(FXOR)或無反饋電路(NF)中的一種。
9.根據權利要求8所述並行CRC算法VerilogHDL代碼自動生成方法,其特徵在於 所述A的二進位表示為AN. .. A1Atl, Al到AN表示為A [1: N-1];當^為O時,(1≤j≤N-1)模塊j對應的電路結構為反饋異或電路(FXOR)。
10.根據權利要求8所述並行CRC算法VerilogHDL代碼自動生成方法,其特徵在於 所述A的二進位表示為AN. .. A1Atl, Al到AN表示為A [1: N-1];當Aj為1時,(1≤j≤N-1)模塊j對應的電路結構為無反饋電路(NF)。
全文摘要
一種並行CRC算法Verilog HDL代碼自動生成器及其方法,其生成器包括基於modelsim仿真平臺上係數產生電路,係數產生電路代碼CG.v運行產生的係數文件C.txt,Verilog代碼產生文件VG.v再運行,產生得到Verilog代碼文件F.txt;其方法包括1)提取設計參數N,M,A,INT;2)把設計參數N,M,A,INT按照係數產生電路設計步驟得到係數產生電路;3)將係數產生電路用verilog代碼表示為CG.v;4)運行CG.v得到係數文件C.txt;5)運行VG.v得到並行CRC電路Verilog代碼F.txt。本發明將並行CRC算法Verilog HDL代碼生成簡單化。
文檔編號G06F9/44GK101826011SQ20091021935
公開日2010年9月8日 申請日期2009年12月7日 優先權日2009年12月7日
發明者黨君禮, 劉升 申請人:西安奇維測控科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀