《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于狀態機的圖像信息提取的FPGA設計及仿真分析
基于狀態機的圖像信息提取的FPGA設計及仿真分析
2015年微型機與應用第8期
錢 鵬1,2,蘇海冰1
(1.中國科學院光電技術研究所,四川 成都 610209;2.中國科學院大學,北京 100190)
摘要: 現場可編程邏輯門陣列(FPGA)應用于圖像處理時,需要對數據中的圖像信息進行準確的提取。設計中,FPGA中解壓縮功能需要對壓縮數據中的圖像信息進行提取。根據壓縮格式,設計了一種基于狀態機的圖像信息提取模塊,并且在XST(Xilinx官方綜合工具)以及Synplify pro兩個綜合環境下進行了仿真驗證。通過對比仿真結果的差異,嘗試分析設計的寄存器傳輸級視圖(RTL視圖),并找出了影響狀態機工作的關鍵要素。強調了代碼風格對FPGA設計的重要性。
Abstract:
Key words :

  摘  要: 現場可編程邏輯門陣列(FPGA)應用于圖像處理時,需要對數據中的圖像信息進行準確的提取。設計中,FPGA中解壓縮功能需要對壓縮數據中的圖像信息進行提取。根據壓縮格式,設計了一種基于狀態機的圖像信息提取模塊,并且在XST(Xilinx官方綜合工具)以及Synplify pro兩個綜合環境下進行了仿真驗證。通過對比仿真結果的差異,嘗試分析設計的寄存器傳輸級視圖(RTL視圖),并找出了影響狀態機工作的關鍵要素。強調了代碼風格對FPGA設計的重要性。
  關鍵詞: 現場可編程邏輯門陣列;狀態機;XST;Synplify pro;代碼風格
0 引言
  狀態機是數字系統設計中的重要組成部分,是FPGA實現高效率高可靠性邏輯控制的重要途徑。在實際工程應用中,狀態機工作是否正常決定著系統能否穩定工作。本文設計了一個基于狀態機的圖像信息提取模塊,通過對該設計的仿真,分析了狀態機設計中的狀態競爭、鎖存器的引入以及綜合工具誤判等常見情況。強調了代碼規范對于FPGA設計的重要性。
1 設計背景及思路
  基于相機的實時圖像目標仿真系統可以產生實時的虛擬目標圖像流,因而被用于光電經緯儀等圖像跟蹤系統的開發調試。目標仿真系統中虛擬目標是經過DSP以一定的壓縮格式壓縮后儲存于DDR中的,FPGA通過SRIO與DSP通信,讀取壓縮后的目標圖形數據,經過FPGA內部解壓縮與現實背景疊加輸出。該系統中使用灰度圖像作為圖像源。其簡化結構圖如圖1所示。

Image 001.png

  目標圖像示意圖如圖2所示,虛擬目標圖形以水平方向的線段形式壓縮,整個壓縮后的目標圖形由n條線段組成,每條線段包含該線段的起始行列號、像素點數以及各像素點的像素值。其中每一幀的第一條線段還包含這幀圖像壓縮后的大小,壓縮大小為32 bit。行列號、像素數以及各像素點的像素值均以16 bit表示。

Image 002.png

  FPGA對虛擬目標圖像進行復原時,最主要的是對壓縮數據中的目標圖形的各類信息進行提取,行列號代表著目標圖形的位置信息,壓縮大小以及像素數表示目標圖形的大小信息,像素值則代表各點的灰度信息。本文以有限狀態機為基礎設計了基于狀態機的壓縮圖像信息提取模塊。
  首先需要確定狀態機的狀態數。壓縮圖像信息提取模塊的目的在于將壓縮圖像的信息進行分別提取,因此根據壓縮的數據格式須將數據分為5塊進行提取,分別為一幀壓縮圖像大?。╢rame_size,32 bit)、每條線段的起始行號(row_no,16 bit)、起始列號(column_no,16 bit)、每條線段的像素數(row_size,16 bit)以及分別的像素值(pic_element,16 bit)??紤]到16 bit的位寬,須將一幀壓縮圖像大?。╢rame_size)進行兩次提取,由于空閑狀態的存在,共設置7個狀態,分別為:wait_state(S0)、frame_s_state1(S1)、frame_s_state2(S2)、row_no_state(S3)、column_no_state(S4)、row_s_state(S5)、pic_element_state(S6)。
  需要注意的是壓縮數據中frame_size只存在于第一條線段,因此frame_size的提取在一幀數據中只進行一次。根據數據大小以及每行像素數,可以設置相應的狀態轉移條件,相應的信號如表1所示。

Image 008.png

  壓縮數據在幀聲明信號到來之后開始傳輸,當幀聲明信號到來時,狀態機進入等待狀態(S0),隨后便開始依次提取第一條線段中的信息,包括幀大小的前16 bit,幀大小的后16位,行號、列號、像素數(即依次進入S1、S2、S3、S4、S5狀態),接著將r_done信號拉高,并且開始提取像素值數據(即進入S6狀態)直至下一線段到來,第二條線段到來時r_done信號拉低,提取第二條線段的行號(即從S6跳轉到S3狀態),其余步驟與第一條線段相同,直至一幀信號傳輸完成(即f_done拉高),狀態機跳轉置等待狀態(S0)。根據上述分析,狀態轉移圖如圖3所示。

Image 003.png

2 綜合仿真
  總結前面的分析,可以使用VHDL硬件描述語言對狀態機進行描述。在VHDL設計中分3個進程來設計狀態機:(1)主控時鐘進程,負責下一狀態與當前狀態的切換,以及相應狀態條件的邏輯部分;(2)狀態轉移組合邏輯進程,根據當前狀態及狀態條件進行狀態轉移判斷并輸出下一狀態;(3)同步時序狀態輸出,用同步時序邏輯寄存狀態輸出,避免組合邏輯的毛刺與不穩定[1]。
  首先在Modelsim中對設計的代碼進行了功能邏輯仿真。仿真結果與預期結果一致。仿真結果如圖4所示。

Image 004.png

  隨后對設計在XST和Synplify pro兩個綜合環境下進行了編譯下載,并使用ChipScope進行了板級仿真。使用的FPGA是Xilinx生產的Virtex5系列FPGA,型號為XC5VLX110T。圖5是XST綜合后的結果,圖6是Synplify pro綜合的結果。

Image 005.png

  同一個設計在不同綜合環境下出現了差異,XST綜合后的時序波形與預期不符,出現了錯誤,而Synplify pro綜合后的波形則滿足了設計要求。這說明所設計代碼存在著問題。下面將嘗試著分析這些問題。
3 錯誤分析
  通過對代碼的分析,發現代碼存在很明顯的狀態競爭,以下面的代碼為例:
  when S0=>
  if r_done=′0′ and f_done=′0′ then
  Next_S<=S1;
  end if;
  上面的代碼中if條件語句不完備,導致在!(r_done=‘0’and f_done=‘0’)時無法判斷下一狀態,可能導致綜合工具產生誤判,并且可能引入鎖存器(Latch)來鎖存下一狀態[2]。而事實上,XST和Synplify pro的確都在設計中引入了鎖存器來保證狀態的正常切換和保持。這一點從綜合報告中可以看得出來。
  在兩者都生成鎖存器的情況下,認為兩個綜合工具結果的差異,很有可能是因為綜合工具的誤判。為了證實這一結論,本文嘗試著分析了XST和Synplify pro的綜合RTL視圖(寄存器傳輸級)[3-4],找出了兩者出現明顯差異的RTL視圖部分,如圖7、圖8所示。


Image 006.png

  圖7、圖8分別是XST和Synplify pro對下面這段代碼的綜合。
  when S6=>
  if r_done=′0′ and f_done=′0′ then
  Next_S <=S3;
  elsif r_done=′0′ and f_done=′1′ then
  Next_S<=S0;
  end if;
  可以發現前者的判斷邏輯為:!r_done&!f_done 為真時,狀態S6跳轉到S3;為假時,狀態S6跳轉到S0。也就是說,在r_done=‘1’時狀態沒有保持S6,而是跳轉到S0,導致結果錯誤。而后者的判斷邏輯為:!r_done&!f_done為真時,狀態S6跳轉到S3,否則保持S6;f_done=‘1’時,狀態S6跳轉到S0,否則保持S6。這個組合邏輯保證了在正常情況下,狀態機運轉正常,因而得到了所希望的狀態輸出。
  根據上面的分析,找出了兩個潛在的問題,鎖存器的引入以及綜合工具的誤判。顯然真正導致結果差異的是綜合工具對組合邏輯的誤判。但是在同步設計中鎖存器也常是一個潛在的問題。鎖存器不同于寄存器,鎖存器沒有時鐘驅動,對毛刺敏感,上電后處于不確定狀態。它會導致同步設計的時序分析復雜化,甚至出現時序以及穩定性上的問題,通常這些問題都是不可復現的。另外FPGA的基本單元是由查找表和觸發器組成的,生成鎖存器反而需要更多的資源[5]。因此在同步設計中最好不要使用鎖存器[6]。
4 完善設計
  根據先前的仿真與分析,對代碼中的狀態轉移條件判斷進行了改進和完備。解決的方式很簡單,就是完備if條件判斷語句,不至于讓綜合工具去猜測缺省的部分,從而避免綜合工具的誤判,同時也避免了鎖存器的引入。例如:
  when S0=>
  if r_done=′0′ and f_done=′0′ then
  Next_S<=S1;
  else
  Next_S<=S0;
  end if;
  將修改后的代碼再次綜合,分別查看RTL視圖,發現XST和Synplify pro的RTL視圖中分別生成了XST和Synplify pro中表示有限狀態機的標準模塊[3-4],說明本文設計的狀態機是符合兩者要求的。對完善后的設計進行了板級仿真,仿真結果與預期一致。
  對比了修改前后Synplify pro綜合結果的時鐘性能和資源使用的情況,如表2所示。

Image 007.png

5 結論
  本文提出了一種基于狀態機的圖像信息提取模塊的設計,并進行了仿真分析。從上面的仿真分析可以看出代碼的設計風格對于綜合結果的影響,綜合器作為設計工具,它的綜合優化結果是依賴于代碼的。同一個邏輯,不同的代碼在綜合工具中可能產生不同的綜合結果,有的如同上面分析的Synplify pro,結果一致,但是性能差距很大;或者有些在結果上都不一致,如同上面分析XST一樣。因此對于一個FPGA設計,初始設計思路是實現設計的關鍵,同樣實現設計的代碼語言風格也對設計的結果有著重要的影響[7]。
  參考文獻
  [1] JAMES A R, GARY F G.VHDL設計表示和綜合[M].李宗伯,王蓉暉,王蕾,等譯.北京:機械工業出版社2008.
  [2] 張巍,白天明,孟士超.XST綜合中的器件冗余及其程序優化[J].計算機與數字工程,2009,37(5):181-184.
  [3] Synopsys. Synopsys FPGA synthesis user guide[Z]. 2013.
  [4] Xilinx. XST user guide for Virtex-4, Virtex-5, Spartan-3,and newer CPLD devices[Z]. 2008.
  [5] Xilinx.Virtex-5 FPGA user guide[Z]. 2008.
  [6] 王誠,薛小剛,鐘信潮,等.為什么XST與Synplify的綜合結果不一樣[J].中國集成電路,2003(50):54-61.
  [7] LAU N. FPGA時序收斂一流設計讓您高枕無憂[J].賽靈思中國通訊,2010(35):15-18.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          模特精品在线| 国产欧美91| 亚洲精品久久久久久久久| 激情综合网激情| 欧美视频一二三区| 国产精品腿扒开做爽爽爽挤奶网站| 国产精品一区毛片| 亚洲视频精选在线| 免费视频亚洲| 亚洲欧美综合v| 欧美一区二区三区久久精品茉莉花| 亚洲一区欧美| 亚洲专区在线| 一本色道久久综合亚洲精品高清| 国产亚洲欧美日韩日本| 欧美三级日韩三级国产三级| 在线综合亚洲| 亚洲电影观看| 性色av香蕉一区二区| 亚洲在线观看免费| 亚洲在线免费观看| 亚洲动漫精品| 在线看片日韩| 欧美日韩免费观看中文| 精品69视频一区二区三区| 久久人91精品久久久久久不卡| 亚洲一区二区免费视频| 久久精品日韩| 国产精品麻豆成人av电影艾秋| 亚洲一区二区三| 亚洲一区免费视频| 久久久噜噜噜久久中文字幕色伊伊| 日韩西西人体444www| 一区二区精品在线观看| 欧美激情亚洲另类| 黄色一区二区三区| 快射av在线播放一区| 久久久一区二区| 欧美色欧美亚洲另类二区| 在线色欧美三级视频| 欧美成人一区二区在线| 亚洲伊人网站| 欧美韩国在线| 亚洲精品久久久蜜桃| 一本一本久久a久久精品牛牛影视| 亚洲高清123| 老巨人导航500精品| 欧美精品在欧美一区二区少妇| 国内成+人亚洲+欧美+综合在线| 99热精品在线观看| 黄色影院成人| 欧美日韩国产一级| 欧美日韩国产色站一区二区三区| 欧美在线亚洲在线| 欧美精品一区视频| 欧美亚洲日本网站| 国产伦理精品不卡| 国产日韩一区二区三区在线播放| 亚洲一区免费观看| 亚洲欧洲在线观看| 欧美精品高清视频| 久久国产精品电影| 韩日精品在线| 国产欧美一区二区精品忘忧草| 好看的日韩视频| 国产拍揄自揄精品视频麻豆| 美女脱光内衣内裤视频久久网站| 国内外成人免费激情在线视频| 亚洲摸下面视频| 国产亚洲欧美另类一区二区三区| 久久嫩草精品久久久久| 欧美影片第一页| 久久久国产精品亚洲一区| 久久亚洲私人国产精品va媚药| 欧美在线综合| 久久高清免费观看| 一本大道久久a久久精二百| 亚洲女人天堂成人av在线| 美日韩精品免费| 国产精品二区影院| 欧美亚洲一级| 欧美大片免费看| 欧美亚洲第一区| 性亚洲最疯狂xxxx高清| 亚洲在线中文字幕| 久久成人免费日本黄色| 久久久av网站| 男男成人高潮片免费网站| 欧美极品一区二区三区| 在线视频你懂得一区二区三区| 最新日韩中文字幕| 一区二区三区视频免费在线观看| 欧美成人一品| 99热在这里有精品免费| 亚洲一区影院| 国产偷自视频区视频一区二区| 午夜日韩在线观看| 欧美久久久久久久久久| 国产亚洲欧美日韩在线一区| 欧美一区永久视频免费观看| 久久精品视频免费| 欧美偷拍一区二区| 黄色成人在线网址| 国产欧美va欧美va香蕉在| 欧美成人精品三级在线观看| 日韩视频免费| 欧美高清自拍一区| 欧美一区二区三区日韩| 国产精品一级久久久| 在线精品一区二区| 狠狠爱www人成狠狠爱综合网| 国产一区在线看| 午夜日韩视频| 欧美1区2区视频| 欧美一级欧美一级在线播放| 日韩亚洲欧美精品| 国产精品一区视频网站| 欧美日韩不卡| 一本色道久久综合狠狠躁篇怎么玩| 免费短视频成人日韩| 国产伦精品一区二区三| 欧美日韩专区| 黄色资源网久久资源365| 亚洲日本va午夜在线影院| 久久成人av少妇免费| 亚洲私人影院| 欧美日韩一区自拍| 欧美日韩在线另类| 性8sex亚洲区入口| 久久一本综合频道| 欧美日本亚洲韩国国产| 在线一区日本视频| 另类人畜视频在线| 国产欧美日韩在线视频| 欧美日韩国产999| 欧美日韩久久不卡| 亚洲国产精品悠悠久久琪琪| 亚洲午夜极品| 久久久久国产一区二区三区| 欧美本精品男人aⅴ天堂| 国内精品久久久久伊人av| 国产精品久久久久久久久免费桃花| 免费观看日韩| 欧美成人有码| 欧美日韩一区二区在线播放| 欧美一区不卡| 国产亚洲精品bt天堂精选| 国产一区二区三区四区五区美女| 美女图片一区二区| 国产日产精品一区二区三区四区的观看方式| 日韩午夜视频在线观看| 国产综合欧美| 一区二区在线免费观看| 亚洲蜜桃精久久久久久久| 亚洲二区在线视频| 欧美精品一区在线发布| 国产自产高清不卡| 在线日韩视频| 先锋资源久久| 国产精品久久久久永久免费观看| 欧美日韩蜜桃| 一本久久a久久免费精品不卡| 亚洲国产精品免费| 欧美激情第二页| 欧美成人综合| 欧美日韩大陆在线| 久久综合99re88久久爱| 亚洲一区欧美| 国产主播喷水一区二区| 亚洲高清激情| 亚洲国产美女| 美女在线一区二区| 亚洲一区区二区| 99精品视频一区| 国产精品一区视频| 一本色道久久综合精品竹菊| 亚洲精品综合| 亚洲欧美三级伦理| 欧美jizz19性欧美| 国产精品久久一卡二卡| 欧美大片在线观看| 国产视频久久久久| 久久久久久伊人| 亚洲欧美中文日韩v在线观看| 国产一区二区三区久久精品| 国产欧美午夜| 欧美亚洲免费电影| 一区二区三区国产在线| 欧美日本一区| 欧美高清不卡| 欧美**人妖| 国产午夜精品一区二区三区视频| 久久久久久成人| 国产日韩欧美综合精品| 亚洲黄色有码视频| 亚洲综合欧美| 制服丝袜激情欧洲亚洲| 欧美性大战久久久久久久| 最新国产乱人伦偷精品免费网站| 亚洲剧情一区二区| 99成人精品| 可以看av的网站久久看| 免费看亚洲片| 性刺激综合网| 久久久噜噜噜久噜久久| 久久久蜜桃一区二区人| 欧美日韩另类国产亚洲欧美一级| 夜夜精品视频一区二区| 激情欧美丁香| 亚洲免费视频成人| 亚洲欧美日韩电影| 亚洲午夜精品一区二区| 亚洲免费一在线| 亚洲国产天堂久久综合网| 亚洲天堂网在线观看| 欧美日韩三级视频| 欧美视频一区在线观看| 久久成人综合网| 亚洲欧美日韩天堂一区二区| 99视频在线精品国自产拍免费观看| 国产日产欧美一区| 欧美亚洲一区三区| 午夜精品久久久久久久99黑人| 亚洲高清不卡| 亚洲精品123区| 亚洲美洲欧洲综合国产一区| 欧美影片第一页| 亚洲国产精品va在线观看黑人| 欧美日韩国产小视频在线观看| 国产九区一区在线| 亚洲欧美在线免费| 欧美日本在线一区| 一区二区三区成人| 开元免费观看欧美电视剧网站| 国产一区亚洲一区| 亚洲性人人天天夜夜摸| 国产综合色产| 欧美久久久久久久久| 亚洲精一区二区三区| 在线电影欧美日韩一区二区私密| 久久国产精品99国产精| 亚洲欧洲午夜| 欧美成人午夜激情在线| 国产精品一卡| 欧美激情aaaa| 亚洲免费视频观看| 国产精品欧美日韩一区二区| 激情欧美一区二区| 欧美成人精品在线观看| 亚洲麻豆视频| 亚洲午夜女主播在线直播| 中文亚洲视频在线| 久久伊伊香蕉| 国产欧美日本一区二区三区| 在线精品国产成人综合| 欧美一区二粉嫩精品国产一线天| 欧美日韩欧美一区二区| 午夜视频在线观看一区二区三区| 亚洲性视频h| 欧美日韩三级在线| 亚洲欧美久久久久一区二区三区| 久久精品久久99精品久久| 欧美fxxxxxx另类| 男人的天堂亚洲| 国产亚洲午夜高清国产拍精品| 久久精品成人一区二区三区| 欧美经典一区二区三区| 这里只有精品视频在线| 亚洲高清一区二| 午夜精品久久一牛影视| 亚洲最新在线| 麻豆亚洲精品| 亚洲性线免费观看视频成熟| 亚洲欧美一级二级三级| 国产香蕉久久精品综合网| 亚洲欧美日本国产有色| aa成人免费视频| 亚洲韩国精品一区| 久久久久久久成人| 国内精品视频666| 国产精品区一区二区三| 亚洲女人av| 欧美高清视频一区二区三区在线观看| 国产一区再线| 久久亚洲色图| 精品成人乱色一区二区| 欧美色欧美亚洲另类二区| 在线观看中文字幕亚洲| 亚洲已满18点击进入久久| 亚洲国产黄色片| 一本色道久久综合亚洲精品婷婷| 国产亚洲精久久久久久| 国模私拍一区二区三区| 欧美大片国产精品| 亚洲国产美国国产综合一区二区| 一区二区三区四区蜜桃| 国产精品免费电影| 国产精品普通话对白| 欧美日韩精品一区二区天天拍小说| 久久精品女人的天堂av| 国产亚洲综合在线| 在线播放亚洲一区| 亚洲在线一区二区三区| 亚洲欧美国产三级| 亚洲一区二区久久| 亚洲高清免费| 欧美电影免费观看网站| 欧美电影美腿模特1979在线看| 欧美日韩在线高清| 久久中文久久字幕| 国产曰批免费观看久久久| 美女黄色成人网| 日韩视频免费在线观看| 亚洲精一区二区三区| 国产喷白浆一区二区三区| 国产精品羞羞答答| 欧美一级片久久久久久久| 国产主播精品在线| 狠狠久久五月精品中文字幕| 久久九九99| 欧美国产日韩亚洲一区| 国产亚洲精品福利| 一区二区免费在线视频| 午夜在线观看欧美| 国产亚洲欧美另类中文| 欧美国产欧美亚州国产日韩mv天天看完整| 国产午夜精品理论片a级大结局| 欧美日韩一区二区三区在线视频|