亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

在C/C++算法設計中使用任意位寬

2019-11-17 05:00:48
字體:
來源:轉載
供稿:網友
  開發定點(fixed-point)算法時,通常需要在設計功能性、數字精度建模、及驗證(仿真)速度之間取得一個平衡?,F在,一種新的數據類可使此過程簡單化,由此得到更簡單精確的建模精度、更好的數字求精、及更快的驗證周期,而ANSI C/C++正是開發這種數字求精算法的最佳語言?! ∧炒怂惴ㄌ焐瓦m用于操作整數,或那些理想中的實數(如數字濾波器的系數),它們也可能會使用浮點或定點類型。一般而言,在算法開發的早期階段,會經常用到C語言的float或double浮點類型,因為它們可提供一個非常大的動態數據范圍,且對大多數程序來說都是適用的。見圖1:  點擊放大此圖片  使用C內置的float類型來建模一個FIR濾波器  算法可進行數字求精,以便使用定點算術來降低最終硬件或軟件實現的復雜性。在硬件方面,將整數或定點算術限制為最小位寬,可在本質上滿足性能、空間、能耗的需要;假如實現中用到了DSP處理器,那么把算法限制為整數或定點算術,就可為特定程序使用盡可能便宜的處理器?! 《c算術的建??赏ㄟ^C語言內置的浮點或整數類型來完成,這做的話,需要顯式編碼并受限于C中浮點數及整數可表示的最大數:64位整數或53位尾數;這些都會給操作數的位寬帶來更多的限制,例如,2個33位的數相乘,會超過64位C整數可表示的范圍。圖2演示了一個FIR濾波器的例子,但temp變量限制為15位的定點精度,其中10位用于整數位。在這個實現中,LSB的右部位被舍棄(量化模型的截斷),而MSB的左部位也被舍棄(包裝的溢出模型),應該意識到,使用float(或double)的模型在精度上是受限的,且不能再次合成(synthesis)。同樣,由于有取整模型的嚴格位精度定義有先,又由于內置浮點類型的取整將會先被應用,所以對除法這樣的操作來說,就非常難實現了。點擊放大此圖片
  使用float建模定點行為  當許多算法都能依靠本地C數據類型的精度來編寫時,對支持任意長度的整數及定點算法,大家就會抱有極大的期望,而硬件描述語言(HDL)如VHDL,走的也是同一條路。隨著C/C++越來越多地被用于高級合成與驗證工具(High-Level Synthesis and Verification tools),也證實了這種語言本質上有一個足以滿足當前及未來程序需要的數據類型庫。任意長度類型的支持,也可使數據類型的行為有一個統一的定義,而統一的語義則避免了人工實現上的一些限制?! ?STRONG>算法C數據類型  算法C數據類型是一種基于類的C++庫,其實現了任意長度的整數及定點類型,而這些可自由訪問的類型有一系列好處,包括統一及良好定義的語義,還有媲美C/C++內置數據類型的運行時速度,對比SystemC中相應的類型,其運行速度也超過10倍以上。這些數據類型能用于任何符合C++或SystemC規范標準的程序中,并擁有高度可合成的語義?! ?STRONG>語義  語義的統一性與一致性是避免在算法中,發生功能性錯誤的要害,以下的例子,也說明了這點:  眾所周知,變量ActLength的范圍為1至255,萬一編譯器的合成不知道其范圍,就不能進行相應的優化,它的聲明就會從int變為更嚴格的sc_uint<8>類型;雖然合成會得到更好的結果,但設計就仿真得不正確了。在經過一番調試之后,找到了問題的源頭:在比較表達式k >= ActLength中,兩個操作數變成了一個signed int與一個unsigned long long(為64位無符號整數,其是sc_uint類型的基類型)之間的比較。對此的解釋是:C/C++整數提升規則指定了在進行比較之前,會把操作數int提升為一個unsigned long long,例如,假如k的值為 -1,在提升為unsigned long long之后,它會變成2^64 – 1?! ∠襁@樣語義中的問題一般會非常難以察覺,且是與位寬相關的,例如,可能有人想擴大某個現有算法的位寬,只有看到結果時,才知道是行不通的;這個問題也可能是與特定平臺相關的,例如,對1 << 32(兩個操作數都是int類型,結果也是int類型)大家期望返回0,但在大多數平臺(或編譯器)上,它都會返回1(沒有移位,只因為第二個操作數較低的五位被計算進來了);當第一個操作數是一個64位整數時,平臺依靠性會表現得更加明顯及頻繁。主要的問題是C/C++標準沒有指定在32位整數情況下移位值(第二個操作數)超出0至31范圍、或在64位整數情況下移位值超出0至63范圍時的行為。不幸的是,像sc_int、sc_uint這樣的數據類型也不能為用戶避免這類平臺依靠性的問題。  算法C數據類型被設計用于提供統一且一致的語義,因此,它們是可猜測的,例如,對有符號數混用一個無符號操作數仍會產生期望的結果;這些類型的長度不受限制,所以就不存在所謂的精度問題。所有的操作——包括移位和除法——都有完整且一致性的定義,混合不同的類型也能得到期望的結果,如,當x為一個C內置類型,而y是一個算法C類型時,表達式x+y和y+x均能返回相同的結果。
  運行時間  我們的目的是為了在支持任意長度類型及避免用戶碰到前述語義問題的前提下,得到使用內置類型(位寬不超過64位)手工C/C++編碼優化過的運行時間。算法C類型是為快速執行及易于合成的語義而設計及實現的,所有操作的位寬由C++編譯器靜態確定,這就避免了動態內存分配,減少了運行時間,也使得語義更加易于合成。另外,實現也為速度進行了優化,因此可能會調用更多的專用及高效代碼,充分利用了當今編譯器的優化特性。  表1:規格化為ac_fixed的運行時間比較  表1是當定點算術用算法C定點類型ac_fixed來建模時,各種不同的運行時比較;float的實現在圖2中,sc_fixed_fast為SystemC中精度受限的定點數據類型,sc_fixed為任意精度的定點類型。實際中對FIR濾波器進行10^8次調用,TRN/WRAP的運行時間為6.5秒,RND/SAT為29秒。其他類型的運行時間也能從這張表中依次推出,如sc_fixed TRN/WRAP將花費6.5s × 227 = 1476s(將近25分鐘)。作為參考,圖1中的算法(使用無定點建模的float)花費時間為3.5s(比起使用定點建模的ac_fixed,慢了近兩倍)?! ∩鲜龅倪\行時間數據,均由GCC 4.1.1測量得來,而在之前版本的GCC或Visual C++ 2005中得到的數據大致接近?! ×硗猓\行時間也能通過整型數據類型或位操作進一步縮短。表2為一個DCT算法的相應結果,它由一個每次讀寫2位的移位操作得來,與此對比的運行時間為SystemC精度受限的sc_int與任意長度的sc_bigint。    表2:規格化為ac_int的運行時間比較  結論  基于通用標準ANSI C++,這種新的整數與定點算法C類型答應算法及系統設計者指定任意位寬,從而提供比傳統數據類型高200倍的仿真效率。這些新數據類型可成為C-to-RTL設計鏈中非常有價值的一環,及在整個實現流程中保證了任意位寬的精度。

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91亚洲精品一区二区| 狠狠久久亚洲欧美专区| 青青久久av北条麻妃海外网| 欧美一级淫片aaaaaaa视频| 欧美精品免费在线观看| 日韩av观看网址| 韩国精品美女www爽爽爽视频| 亚洲欧美激情精品一区二区| 日韩欧美在线一区| 久久99久国产精品黄毛片入口| 日韩高清av在线| 国产中文日韩欧美| 亚洲综合一区二区不卡| 2019中文字幕全在线观看| 青青草成人在线| 国产精品视频地址| 北条麻妃在线一区二区| 成人妇女淫片aaaa视频| 国产精品久久不能| 日韩不卡中文字幕| 久久的精品视频| 好吊成人免视频| 国产精品成人一区二区| 久久伊人色综合| 国产精品久久久久久久久久久久久久| 裸体女人亚洲精品一区| 中文在线资源观看视频网站免费不卡| 国产婷婷成人久久av免费高清| 亚洲成av人影院在线观看| 日韩视频在线免费| 久久精品国产2020观看福利| 性色av一区二区咪爱| 4438全国成人免费| 久久精品福利视频| 日韩电影中文 亚洲精品乱码| 51视频国产精品一区二区| 欧美国产日韩一区二区在线观看| 国产福利成人在线| 成人激情免费在线| 777777777亚洲妇女| 亚洲黄页网在线观看| 欧美午夜宅男影院在线观看| 免费av一区二区| 欧美黑人巨大xxx极品| 久久久国产在线视频| 揄拍成人国产精品视频| 日韩成人在线视频| 国产精品va在线播放| 亚洲精品99999| 亚洲精品欧美日韩专区| 一本一本久久a久久精品牛牛影视| 亚洲精品国产suv| 国产日韩欧美影视| 国产成人精彩在线视频九色| 美女扒开尿口让男人操亚洲视频网站| 亚洲高清免费观看高清完整版| 色综合天天综合网国产成人网| 清纯唯美亚洲综合| 中文字幕日韩精品有码视频| 日韩精品中文在线观看| 日韩电影在线观看永久视频免费网站| 国产精品久久久久99| 久久不射热爱视频精品| 国产97免费视| 久久伊人精品视频| 亚洲电影成人av99爱色| 欧美久久久精品| 一本色道久久综合狠狠躁篇的优点| 国产精品自产拍高潮在线观看| 亚洲天堂免费在线| 日韩av电影国产| 日韩美女福利视频| 国产欧美精品va在线观看| 欧美在线观看网址综合| 日韩欧美在线视频日韩欧美在线视频| 国产成人+综合亚洲+天堂| 高清欧美电影在线| 欧美一区二区色| 精品久久久久久中文字幕大豆网| 亚洲午夜未满十八勿入免费观看全集| 亚洲影院污污.| 国产精品av在线播放| 国产成人精品视频在线| 在线性视频日韩欧美| 亚洲国产黄色片| 国产精品ⅴa在线观看h| 青青草一区二区| 91国产美女在线观看| 亚洲福利视频在线| 欧美精品日韩www.p站| 激情成人中文字幕| 久久久人成影片一区二区三区观看| 欧美与欧洲交xxxx免费观看| 欧美日韩在线另类| 国产精品va在线播放我和闺蜜| 一区二区三区无码高清视频| 亚洲天堂网站在线观看视频| 久久久久久com| 久久久女人电视剧免费播放下载| 日日狠狠久久偷偷四色综合免费| 亚洲黄一区二区| 午夜精品一区二区三区在线视频| 成人性生交大片免费看小说| 91精品国产乱码久久久久久蜜臀| 国产91在线视频| 久久婷婷国产麻豆91天堂| 性欧美在线看片a免费观看| 成人在线视频网| 高清一区二区三区日本久| 国产亚洲aⅴaaaaaa毛片| 亚洲一区二区在线播放| 亚洲欧美在线一区二区| 成人久久久久久久| 国产精品久久久久91| 国产精品九九久久久久久久| 亚洲精品免费网站| 91免费视频国产| 亚洲精品免费在线视频| 中文一区二区视频| 欧美精品久久久久久久| 欧美成aaa人片免费看| 秋霞av国产精品一区| 日韩精品视频在线观看免费| 国产精品视频免费在线观看| 国产精品看片资源| 日韩精品极品在线观看| 日韩欧美国产高清91| 538国产精品视频一区二区| 亚洲综合精品伊人久久| 成人在线播放av| 欧美成人小视频| 久久久久久久久久久人体| 亚洲午夜av电影| 欧美性一区二区三区| 69视频在线播放| 在线播放日韩专区| 中文字幕亚洲无线码a| 97精品国产97久久久久久春色| 国产精品一二三视频| 97超视频免费观看| 国产精品伦子伦免费视频| 97精品国产97久久久久久| 亚洲aa在线观看| 在线观看欧美www| 中文字幕亚洲激情| 日韩性xxxx爱| 久久天天躁狠狠躁夜夜爽蜜月| 日韩免费观看视频| 在线视频欧美性高潮| 国产69精品久久久久99| 日韩资源在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 韩国一区二区电影| 国产精品自产拍在线观看中文| 久久久久久国产精品三级玉女聊斋| 国产精品嫩草影院一区二区| 亚洲理论电影网| 日韩电影免费观看在线观看| 亚洲新中文字幕| 精品国产乱码久久久久酒店| 91在线无精精品一区二区| 久久免费视频这里只有精品| 亚洲欧美日韩精品久久| 日韩欧美在线第一页|