文章搬遷搬遷~~

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

專題 FPGA Zynq7000 DES篇 3



一陣子沒更新了~~這次來講DES加解密吧!
我是利用Xilinx官方提供的xapp270文件來做改寫,原本的文件的DES是利用vhdl的to語法,一開始很順利做成功了Ya~~但是在我準備做PR發現了一件事情!!!!!!!!!!!

Port出問題啦!!

我們前面的AES RSA皆是用downto的寫法來寫所需的bits數,但是DES是用to的方式這造就了一開始儲存位置不同,所以port會無法相用,有幾種方法做選擇,那一些方法在做PR的時候再來講吧,我目前用的方法是直接改DES官方文件的Code,全部改成downto雖然聽起來很簡單,但是要改地方超多QQ因為很多讀值起始就出問題了,所以改了一段時間和測試。
改完部分程式碼大概是這樣~
改的那部分有興趣者再來交流吧~雖然不難但麻煩哈哈
接下來老樣子,一樣創一個新的IP空殼來做IP吧!!
一樣吧~把port打上去囉
就像之前所說最大傳輸值為32bits,而這裡需64所以要自己接訊號然後合併暫存器囉!
這裡我遇到一個小問題,也是一個小粗心,在暫存器7 8的時候寫反了,因為之前是使用to的方式來撰寫,所以順序和現在倒反了,然後沒注意沒有換過來,到最後在解密之時一開始解值的地方解錯,造成後續的解密都失敗。
就和之前差不多啦~~
好了就開始跑合成,再來就merge和打包成IP吧~詳情請看前面嚕!
過來創建project來把IP放進去吧

過來就是老樣子囉~
Generate Output Products->Create HDL warpper
Run Synthesis -> Run Implemented -> Generate Bitstream
export Hardware-> launch sdk


接下來就是SDK的Standalone測試把值賦予進去吧!!

第一個加解密失敗的原因,就是我剛剛上面所說的暫存器寫反了,to和downto的差別就是起始位置不同,所以造就這些問題,但解決囉~~又完成一個囉!!

留言

這個網誌中的熱門文章

專題 FPGA Zynq7000 RSA篇 1

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

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