一種提升asic算法精度的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明公開一種提升ASIC算法精度的方法,屬于計(jì)算機(jī)技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] ASIC,是一種為專門目的而設(shè)計(jì)的集成電路。是指應(yīng)特定用戶要求和特定電子系 統(tǒng)的需要而設(shè)計(jì)、制造的集成電路。AS IC的特點(diǎn)是面向特定用戶的需求,AS IC在批量生產(chǎn)時(shí) 與通用集成電路相比具有體積更小、功耗更低、可靠性提高、性能提高、保密性增強(qiáng)、成本降 低等優(yōu)點(diǎn)。隨著科技發(fā)展,出現(xiàn)數(shù)字ASIC,數(shù)字ASIC實(shí)現(xiàn)加減乘除等運(yùn)算的算法時(shí),需要小 心處理,因?yàn)閿?shù)字ASIC中用來代表高低電平,不可能出現(xiàn)小數(shù),尤其是對除法的處 理,不當(dāng)?shù)乃惴?,將?dǎo)致最終運(yùn)算結(jié)果的巨大偏差,從而影響整個(gè)ASIC設(shè)計(jì)。本發(fā)明針對數(shù) 字ASIC中加減乘除等運(yùn)算的高精度實(shí)現(xiàn),提出了一種提升ASIC算法精度的方法,可用于半 導(dǎo)體領(lǐng)域,可以減小算法中間過程帶來的精度損耗,而且可以實(shí)現(xiàn)向下取整、向上取整、四 舍五入或者根據(jù)實(shí)際情況自設(shè)定的取整規(guī)則。該方法具有通用性強(qiáng)、實(shí)施簡便等特點(diǎn),具有 廣闊的應(yīng)用前景。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明針對現(xiàn)有技術(shù)中數(shù)字ASIC的不當(dāng)算法,將導(dǎo)致最終運(yùn)算結(jié)果的巨大偏差, 從而影響整個(gè)ASIC設(shè)計(jì)的問題,提供一種提升ASIC算法精度的方法,具有通用性強(qiáng)、實(shí)施簡 便等特點(diǎn),具有廣闊的應(yīng)用前景。
[0004] 本發(fā)明提出的具體方案是:
[0005] -種提升ASIC算法精度的方法:
[0006] 在針對ASIC設(shè)計(jì)進(jìn)行中間運(yùn)算過程中,設(shè)置算法減損模塊和取整運(yùn)算模塊;
[0007] 算法減損模塊用于算法中間過程中保留更多的有效位數(shù),取整運(yùn)算模塊根據(jù)實(shí)際 情況采取整規(guī)則對結(jié)果進(jìn)行取整;
[0008] 具體過程為在針對ASIC設(shè)計(jì)進(jìn)行中間運(yùn)算之前對分子部分的數(shù)據(jù)利用算法減損 模塊進(jìn)行減損因子S調(diào)整,使得在做除法之前提高分子的有效位數(shù),進(jìn)而除法之后的結(jié)果保 留更多的有效位數(shù),并利用取整運(yùn)算模塊根據(jù)實(shí)際情況采取的取整規(guī)則來對結(jié)果進(jìn)行取整 處理,以減少運(yùn)算中間過程帶來的精度損耗。
[0009] 所述減損因子δ根據(jù)在ASIC設(shè)計(jì)中計(jì)算的需要,在21,22,23,24,25,···,2n中選取, 通過移位來實(shí)現(xiàn)乘法。
[0010] 所述取整運(yùn)算模塊采取的取整規(guī)則為向下取整、向上取整、四舍五入或者根據(jù)實(shí) 際情況自設(shè)定的取整規(guī)則。
[0011] -種提升ASIC算法精度的系統(tǒng),用于所述的方法,包括算法減損模塊和取整運(yùn)算 模塊,算法減損模塊用于算法中間過程中保留更多的有效位數(shù),取整運(yùn)算模塊根據(jù)實(shí)際情 況采取整規(guī)則對結(jié)果進(jìn)行取整;
[0012] 具體過程為在針對ASIC設(shè)計(jì)進(jìn)行中間運(yùn)算之前對分子部分的數(shù)據(jù)利用算法減損 模塊進(jìn)行減損因子S調(diào)整,使得在做除法之前提高分子的有效位數(shù),進(jìn)而除法之后的結(jié)果保 留更多的有效位數(shù),并利用取整運(yùn)算模塊根據(jù)實(shí)際情況采取的取整規(guī)則來對結(jié)果進(jìn)行取整 處理,以減少運(yùn)算中間過程帶來的精度損耗。
[0013] 所述取整運(yùn)算模塊采取的取整規(guī)則為向下取整、向上取整、四舍五入或者根據(jù)實(shí) 際情況自設(shè)定的取整規(guī)則。
[0014] 本發(fā)明的有益之處是:
[0015] 本發(fā)明針對數(shù)字ASIC中加減乘除等運(yùn)算的高精度實(shí)現(xiàn),提出了一種提升ASIC算法 精度的方法,可用于半導(dǎo)體領(lǐng)域,可以減小算法中間過程帶來的精度損耗,而且可以實(shí)現(xiàn)向 下取整、向上取整、四舍五入或者根據(jù)實(shí)際情況自設(shè)定的取整規(guī)則。該方法具有通用性強(qiáng)、 實(shí)施簡便等特點(diǎn),具有廣闊的應(yīng)用前景。
【附圖說明】
[0016] 圖1是本發(fā)明方法算法減損過程示意圖。
【具體實(shí)施方式】
[0017] 一種提升ASIC算法精度的方法:
[0018] 在針對ASIC設(shè)計(jì)進(jìn)行中間運(yùn)算過程中,設(shè)置算法減損模塊和取整運(yùn)算模塊;
[0019] 算法減損模塊用于算法中間過程中保留更多的有效位數(shù),取整運(yùn)算模塊根據(jù)實(shí)際 情況采取整規(guī)則對結(jié)果進(jìn)行取整;
[0020] 具體過程為在針對ASIC設(shè)計(jì)進(jìn)行中間運(yùn)算之前對分子部分的數(shù)據(jù)利用算法減損 模塊進(jìn)行減損因子S調(diào)整,使得在做除法之前提高分子的有效位數(shù),進(jìn)而除法之后的結(jié)果保 留更多的有效位數(shù),并利用取整運(yùn)算模塊根據(jù)實(shí)際情況采取的取整規(guī)則來對結(jié)果進(jìn)行取整 處理,以減少運(yùn)算中間過程帶來的精度損耗。
[0021] 利用上述方法,根據(jù)
【發(fā)明內(nèi)容】
及附圖,對本發(fā)明做進(jìn)一步說明。
[0022] 以實(shí)現(xiàn)一個(gè)的算法做例子。
[0023] 假設(shè)& = 514 = 18,=11,那么_圍__議__^1(:設(shè)計(jì)中,如果僅僅用___|_ ^.................................. ? 來實(shí)現(xiàn),ASIC的運(yùn)算結(jié)果默認(rèn)是向下取整的,y = 83。
[0024] 用本發(fā)明一種提升ASIC算法精度的方法來實(shí)現(xiàn)的話,假設(shè)減損因子δ = 16,經(jīng)過算 法減損模塊得到的運(yùn)算結(jié)果1 1335;:在取整運(yùn)算模塊中可以實(shí)現(xiàn)向上取 整,四舍五入或者根據(jù)實(shí)際情況自設(shè)定的取整規(guī)則,最終結(jié)果y = z[m,n]+f(z[n-l:0]),其 中,m為z的最高比特位,η取值與減損因子有關(guān),2η= δ。
[0025] 若是采用向上取整,根據(jù)ζ[3:0]是否為0來判定最終運(yùn)算結(jié)果是否加1:非0,則加 1;否則舍棄。在此 ^ = 1335,2[3:0]=4'13〇111=4'(17,最終運(yùn)算結(jié)果7 = 2[10:4]+;1;'(2[3:0]) = 83+1=84。
[0026] 若是采用四舍五入,根據(jù)ζ[3:0]是否為不小于8來判定最終運(yùn)算結(jié)果是否加1:不 小于8,則加1;否則舍棄。在此ζ = 1335,ζ[3:0] =4'bOll 1 = 4'd7,最終運(yùn)算結(jié)果y = z[ 10:4] +f(z[3:0])=83+0 = 83。
[0027] 若是根據(jù)實(shí)際情況自設(shè)定的取整規(guī)則,比如二舍三入,根據(jù)z[3:0]是否為不小于4 來判定最終運(yùn)算結(jié)果是否加1:不小于4,則加1;否則舍棄。在此z = 1335,z[3:0]=4'b0111 =4'd7,最終運(yùn)算結(jié)果y = z[ 10:4]+f(z[3:0]) = 83+1=84。
[0028] 假設(shè)減損因子δ = 32,經(jīng)過算法減損模塊得到的運(yùn)算結(jié)果Z = 二:267i;在 取整運(yùn)算模塊中可以實(shí)現(xiàn)向上取整,四舍五入或者根據(jù)實(shí)際情況自設(shè)定的取整規(guī)則,最終 結(jié)果7 = 2[111,11]+;^[11-1:0]),其中,1]1為2的最高比特位,11取值與減損因子有關(guān),211=5。
[0029] 若是采用向