文章搬遷搬遷~~

因為自己弄了HEXO將來文章會放到那,這裡將停止更新,而文章也會慢慢更新到那裏去,歡迎大家來看與指教。 網址:https://donggualemon.github.io/

專題 FPGA Zynq7000 RSA篇 1

這次老師想對sensor傳輸過來的資料放到硬體做加解密,之後還要擴展成使用PR(Reconfigurable Partitioning)部分可重組技術,來自動判斷要使用哪種加解密方式,這次選則RSA32位元 AES128位元 DES64位元 Triple_DES64位元。執行環境為Xilinx vivado2016 SDK2016運行板子為Zynq7000。先只是standalone測試正式會做成PR並在xilinx linux3.14下環境執行,所以還有kernel和driver QQ死去~~

分別使用VHDL檔來製作出我們的ip。
RSA  最TOP部分程式碼檔案:
有了vhdl檔我們就能著手做IP了!!!
打開vivado 2016 併選擇manage ip 然後新增IP (檔名我們就取個RSA吧)
建立完成(附註請選擇創造AXI IP 然後透過VHDL我們可以知道需要7個暫存器 clk有系統內建)
然後就把RSA的相關程式碼用add source加進去吧~
加進去了就開始撰寫IP得配置和暫存器劃分吧!
告訴上層的AXI_inst有什麼配置然後所需的位元大小等等...
然後我將2個out設2個訊號接點(signal)

然後就該來分配暫存器囉,還有加上自己的訊號接點,還有user logic並結合上圖的配置。
結束存檔會發現一開始匯入的source檔和我們的接線殼合併了!!

然後就跑個合成(run synthesis)看看有沒有問題ㄅ
沒問題之後就能來打包IP(package ip)惹YA~ (記得merge哦~~~)

既然完成IP那我們就來放進去我們的block design吧
新建一個檔案並選擇我們的Zedboard (xc7z020clg484-1)板子吧
然後匯入我們的做好的IP
創造一個block design然後把他丟進去加上主控(PS)
建好之後就來Generate Output Products(生成HDL源文檔和相應端口的約束檔) 和 Create HDL wrapper(生成整個工程的文檔)吧
然後就開始Run Synthesis -> Run Implemented -> Generate Bitstream
跑完就export Hardware-> launch sdk 轉戰SDK囉~
SDK左上角應該就會跑出你剛剛做完的底層
我單純只是Standalone測試ip是否真的能跑起來,所以新增一個hello word project,並改寫裡面的程式碼。
並透過testbench和程式碼判斷哪個暫存器要給什麼值。下面是測資

寫完就來測試看看吧!拿出我們貴貴的板子吧~~然後請調jump讓他知道只是下板子不是跑SD卡哦!打開後燒錄我們的底層資訊吧,然後打開putty連進去看狀態並run一下剛剛寫的測試資料。

成功之後大該4這樣,這篇先寫RSA吧之後得再放其他加解密。如果有錯的觀念或地方歡迎開噴,小菜雞需要多多指導。

留言

這個網誌中的熱門文章

第一次用Phaser.js做2D遊戲

Vue-CLI 2 => Vue-CLI 3 升級囉~~