一直都在System Generator下做圖像處理相關的算法,感覺SysGen挺強大的,前幾天突發奇想,能否直接用SysGen實現數據的通信呢,畢竟一句HDL代碼都不寫對於做FPGA的人來說卻是很有吸引力的。
串口通信協議比較簡單,發送的時候,8位數據的前面加上1位起始位0,在8位數據後加上停止位1,這樣8位數字擴展成10位的數字,再將並行轉化爲串行就可以從GPIO送出。
搭建模型如下:
模型因爲暫時只是包含發送部分,所以不是很複雜,另外加上一個按鍵,每次按下按鍵式就發送數據。
選擇板子型號:
設置時鐘:
點擊Generate,轉化爲HDL Netlist,這是會在文件夾下多出一個文件夾,裏面有一個ISE工程,使用ISE打開,修改UCF文件。
//UCF文件:
NET "clk" LOC = Y9 | IOSTANDARD=LVCMOS33; # "GCLK"
NET "ce" LOC = P16 | IOSTANDARD=LVCMOS18; # "BTNC"
//NET "rxd" LOC = Y11 | IOSTANDARD=LVCMOS33; # "JA1"
NET "gateway_out[0]" LOC = AA11 | IOSTANDARD=LVCMOS33; # "JA2"
NET "gateway_in[0]" LOC = T18 | IOSTANDARD=LVCMOS18; # "BTNU"
綜合佈線生成bitstream文件之後,直接下載。按下BTNU就會有數據發出。我在初始化的時候寫入的是0->255,在串口助手中也能看到連續的數字。
目前只是實現了串口的發送,畢竟這個相對於接收還是比較簡單的,還沒想好接收怎麼寫,先跟大家分享下吧~~