verilog常用語法一讓您的FPGA設計更輕鬆
一個信號的多拍處理也就是在時鐘上將信號連續打多拍,這個處理在時序對齊和防止亞穩態有著十分重要的意義。將信號打多拍是比較簡單的事情,利用移位寄存器即可。
代碼示例:
仿真平臺:
仿真波形:
得到數據的多拍後可以在不同的街拍進行不同的算法處理,這適用於某個需要n拍才能完成的算法。
示例:
如上所示,首先對信號TFT_VS_rise打多拍,然後在節拍上做算法處理。
有時候我們需要把仿真的數據提取出來,生成一個txt文檔或者其他格式的文檔放到matlab或其他軟體裡面進行分析仿真數據(例如我們將圖片數據轉化成二進位文件,然後使用仿真軟體直接讀入數據,將處理過的數據重新生成二進位文件,再還原成圖片),我們可以直接對比前後的圖片或者前後的數據,就可以知道我們的代碼是否正確或者是否達到處理預期,在仿真的時候儘量達到預期。這時候verilog的文件操作函數就很有用。
6.1文件打開函數$fopen和文件關閉函數$fclose
用法:
Integer fp;//定義變量
fp =$fopen(「file_name」);//打開文件
$fclose(fp); //關閉文件
6.2 寫文件$fdisplay,$fwrite
用法:
$fwrite(fb,"%d\n",signal);
$fdisplay(fb,"%d",signal);
我們將cordic算法的輸出的正玄波數位訊號生成11.txt文本文件。
示例:
結果:
我們用j來控制需要的數據個數,當達到我們所需要的數據時,仿真自動完成($finish)。
推薦閱讀:
送人玫瑰,手留餘香