fpga中有没有计算向量相乘公式的ip核

君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于FPGA的浮点运算器IP核的设计与实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口& &您现在的位置:&>&&>&正文
赞助商链接
基于FPGA的LDPC编码器设计与实现
  表1中序号2与表2中序号4的操作涉及到下三角矩阵T。由于T-1也是下三角矩阵,为了降低复杂度,可采用前向迭代进行计算。例如:假设Qx=y,Q为下三角矩阵,求x。计算过程如下:
500) this.width=500;'title='基于FPGA的LDPC编码器设计与实现' src="/gzshow?dd39f3ac96fb117d1a98e83a242cafcc86dae971c91ccbcc49a2e3dfda099e16b">
编码器核心模块——矩阵向量乘法器(MVM)的实现
  矩阵与矩阵的乘法运算以及前向迭代运算实质上都是矩阵与向量的乘法。下面举例说明矩阵向量乘法器硬件实现的过程:
假设,500) this.width=500;'title='基于FPGA的LDPC编码器设计与实现' src="/gzshow?dd39f3ac96fb117d1a98e83a242cafcc86dae971c91ccbcc49a2e3dbec8ee8bf9d59bbcb861c4a7a6b3">
  对于LDPC编码器,如何有效率地存储各个矩阵的信息是降低复杂度的关键。下面给出一种矩阵存储的方案:矩阵存储器中记录“1”在行中的位置以及对应行行重,如表3所示。例如矩阵X第3行的“1”元素,在行中的位置为“0”,该行的行重为1。由于LDPC编码过程中使用的矩阵大多是稀疏矩阵,所以采用该矩阵存储方案能比较有效地利用存储的空间并有利于矩阵与向量乘法的快速实现。
500) this.width=500;'title='基于FPGA的LDPC编码器设计与实现' src="/gzshow?dd39f3ac96fb117d1a98e83a242cafcc86dae971c91ccbcc49a2e3dfdda5a8bf9d59bbcb861c4a7a6b3">
  矩阵X每行中“1”的位置可看作选择向量s相应元素的地址索引,将选择的所有元素相加作和,即完成X中某行与向量的运算。由于涉及的运算都是二进制加法,相加作和操作可以作如下简化:根据矩阵每行“1”的位置选择向量s的元素。统计被选择的元素中“1”的个数,若结果为奇数则说明相加的结果为“1”,否则说明相加的结果为“0”。判断结果为奇数或者偶数可由其二进制形式的末位是“1”或者“0”得到。通过设置两个计数器分别计算各行行重和选择的向量s相应位置的元素中“1”的个数,即可实现乘法单元的运算。
矩阵向量乘法器的硬件结构如图4所示。
500) this.width=500;'title='基于FPGA的LDPC编码器设计与实现' src="/gzshow?dd39f3ac96fb117d1a98e83a242cafcc86dae971c91ccbcc49a2e3dbcae178bf9d59bbcb861c4a7a6b3">
图4& 矩阵向量乘法器的硬件结构
  从图4可知矩阵向量乘法器包括以下六个部分:调度单元(Scheduler),产生各模块单元的使能信号;缓存单元(Info_buffer),对输入信息序列进行缓存处理;存储器控制单元(Rom_ctrl),产生存储器的地址信号;“1”位置存储器(Rom_num),存储矩阵各行“1”的位置;行重存储器,存储矩阵相应各行行重;乘法单元(Multipler),进行向量乘法运算,最后输出码字。
矩阵向量乘法器仿真结果验证
在Quartus II环境下,实现output=Xs,得到如图5所示时序图。
500) this.width=500;'title='基于FPGA的LDPC编码器设计与实现' src="/gzshow?dd39f3ac96fb117d1a98e83a242cafcc86dae971c91ccbcc49a2e3dee49de070c8437afd5101afc8e6a9e019bbcb861c4a7a6b3">
图5& output=Xs仿真时序图
  图5中“en”是使能信号,“clock”是时钟信号,addr_num、addr_wei分别为两个存储器的地址信号,info_seq是输入信息信号,rece是信息信号经过缓存后的输出信号,num_t是“1”在各行的位置信息,row_wei_t是相应各行的行重,output是矩阵与向量相乘的结果。由图5可知,output=[1 1 1],信号输出有一个时钟周期的延时,仿真结果正确。
编码器方案验证与优缺点分析
  本文利用FPGA实现了基于RU算法的编码器设计实现。在Quartus II软件环境下对LDPC编码器进行仿真,使用Stratix系列EP1s25F672I7芯片,对码长为504的码字进行编码。编码器占用约9%的逻辑单元,约5%的存储单元,综合后时钟频率达到120MHz,数据吞吐率达到33Mb/s,基本符合编码器设计的要求。该编码器结构是一种通用的设计方案,可以应用于各种不同的LDPC编码中,但由于其采用通用的编码算法,实现的复杂度高于某些特殊结构的LDPC码编码器,比如准循环LDPC码。另外通过优化时序和编码结构,可以进一步提高本文的编码器的编码速度。
&&&[2]&(北京交通大学 吴祖辉 熊磊 陈霞)
&&会员反馈, 更省时:  
&快速反馈  &
(无须注册,立即填写下列信息,直接回复厂商)
--请选择--
航空航天/军工
机床工具/模具
--请选择--
区号-电话:*-
北京市朝阳区东四环中路58号远洋国际中心C座2402室 电话:010- 反馈留言板 传真:010-
Copyright &. All rights reserved. 国际工业设备在线 版权所有第四部分1:FPGA设计基础_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
第四部分1:FPGA设计基础
上传于||文档简介
阅读已结束,如果下载本文需要使用5下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩82页未读,继续阅读
你可能喜欢基於Altera浮點IP核實現浮點矩陣相乘運算的改進設計
 &>&&>&&>&正文
嵌入式計算作為新一代計算係統的高效運行方式,應用於多個高性能領域,如陣列信號處理、核武器模擬、計算流體動力學等。在這些科學計算中,需要大量的浮點矩陣運算。而目前已實現的浮點矩陣運算是直接使用VHDL語言編寫的浮點矩陣相乘處理單元[1],其關鍵技術是乘累加單元的設計,這樣設計的硬件,其性能依賴於設計者的編程水平。此外,FPGA廠商也推出了一定規模的浮點矩陣運算IP核[2],雖然此IP核應用了本廠家的器件,並經過專業調試和硬件實測,性能穩定且優於手寫代碼,但仍可對其進行改進,以進一步提高運算速度。1 Altera浮點矩陣相乘IP核原理Altera公司推出的浮點矩陣相乘IP核ALTFP_MATRIX_MULT,是在Quartus軟件9.1版本以上的環境中使用,能夠進行一定規模的浮點矩陣相乘運算,包含A、B矩陣數據輸入,數據浮點乘加,數據緩存及相加輸出四大部分。其中最能體現浮點計算性能的是浮點乘加部分,而周圍的控製電路及輸出則影響到係統的最高時鍾頻率,間接地影響係統整體性能。整個矩陣相乘電路原理是將輸入的單路數據(A、B矩陣共用數據線),通過控製器產生A、B矩陣地址信號,控製著A矩陣數據輸出和B矩陣數據輸出,並將數據並行分段輸出到浮點乘加模塊進行乘加運算,之後串行輸出到一個緩存器模塊中,再以並行方式輸出到浮點相加模塊,最後獲得計算結果。從其原理可以看出,在數據輸入輸出方麵仍有許多可改進的地方。2 IP核存在的缺陷及改進2.1 存在缺陷(1)輸入數據帶寬的不均衡性。在矩陣A、B的數據輸入時,Altera的IP核將A矩陣數據存於M144K的Block RAM中,而將B矩陣數據存於M9K的Block RAM中,導致IP核中A矩陣數據的帶寬小於B矩陣數據的帶寬,並需要一定數量的寄存器組使A矩陣數據帶寬能夠匹配於B矩陣數據帶寬。由此可見,A、B矩陣數據的存儲受到器件限製和存儲約束,同時由於在浮點乘加模塊的輸入端(A、B矩陣數據)帶寬不同,造成A矩陣數據的輸入需要額外的處理時間。(2)加載數據的不連貫性。在矩陣數據加載時,IP核通過將數據分段成等分的幾部分,用於向量相乘。由於矩陣A存儲帶寬窄需要4步寄存(由Blocks決定),在第3個周期時才加載數據B用於計算,送到一個FIFO中存儲;在第6個時鍾周期時加載矩陣A分段的第二部分進行各自的第二部分計算,最後當計算到第15個周期時,才可通過浮點相加,計算出矩陣C的第一個值,之後計算出矩陣C的其他值C11。從上述結構可見,在分段相乘之後,采用先對一個FIFO進行存儲,存滿後再對下一個數據FIFO進行存儲,造成時間上浪費過多。2.2 設計改進鑒於上述缺陷,在輸入A、B矩陣的存儲方式上,進行串行輸入到並行輸入的改進,使得兩個矩陣能同步輸入到浮點乘加模塊。在數據加載方式上,將A矩陣用3個周期加載完畢,再處理相乘運算;將分段相乘結果進行直接存儲相加,獲得C矩陣的第一個值,縮減運算時間。設計的改進框圖如圖1所示。&&將A、B矩陣數據加載模塊設計成同步加載的方式,即在loadaa為高電平時,對A的第一組數據進行初始化,加載到雙口RAM模塊存儲;在loadbb為高電平時,加載B矩陣的數據,也進行雙口RAM存儲。然後依據ROM存儲的地址信號表,在控製模塊的控製下輸出A、B矩陣地址相對應的數據,進行浮點乘加運算,之後串行緩存,並行輸出到浮點相加模塊,進行輸出。計算時序如圖2所示。&&在時序上要求初始化加載A矩陣的第一行數據A1、A2、A3之後,加載B矩陣的第一列數據,當分段E1加載後立即進行分段第一組數據相乘A1&E1。以此類推,當加載A的第二行數據時,即可立即與B矩陣的第一列數據相乘。總體而言,隻需要在ROM模塊中存儲一定的地址信號,即可使浮點乘加模塊的輸入端具有並行連貫的數據輸入,縮短了運算時間。3 浮點矩陣相乘實現3.1 模塊總體實現按照上述改進方案,ROM地址表在控製模塊的控製下產生一組地址信號控製雙口RAM組進行並行輸出,保證了浮點乘加模塊計算的準確性。其中控製模塊為設計的關鍵部分,用於產生所有模塊的控製信號,實現同步計算。分為a_cntrl、b_cntrl、cache、outcntrl四部分控製信號以及一路計數信號用於ROM地址查詢,內部由一個狀態機和邏輯單元組成,狀態機用於產生矩陣A、B的read開始、latch鎖存、地址疊加信號的轉換。控製模塊的時序仿真如圖3所示。圖3在全局同步信號時鍾sysclk、複位reset、使能enable的作用下,當calcmatrix信號為&1&時,開始計算並生成輸出控製信號。其中a_cntrl部分用於控製矩陣A數據加載模塊,主要包含地址信號readaa和鎖存信號latchaa,來一個鎖存高電平則存儲A矩陣數據b_cntrl部分則對應於矩陣B的控製,輸入B矩陣數據cache部分用於控製數據緩存部分串行輸入並行輸出,包含著相應的讀地址信號cacherdadd、寫地址信號cachewradd、cache選擇信號cachemesel,三者同步控製並行輸出;outcntrl部分是整個係統的輸出控製部分,在準備信號ready之後,出現outvalid高電平,表示輸出數據有效,同時完成信號done為低電平。為使矩陣A、B數據能同時加載到浮點乘加模塊上,需要使一個readaa值對應於readbb的columnsbb個數據。在本設計中使用的是A9&16數據與B16&8數據進行計算,生成的outvalid有9個脈衝,每個脈衝包含8個矩陣輸出數據。
http://www.autooo.net/icdata/data_58071.html第四部分1:FPGA设计基础_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
第四部分1:FPGA设计基础
上传于||文档简介
&&北​理​F​P​G​A​课​件​ ​详​细​具​体​,​物​超​所​值
阅读已结束,如果下载本文需要使用5下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩82页未读,继续阅读
你可能喜欢}

我要回帖

更多关于 向量坐标相乘 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信