1. 程式人生 > >FPGA series # vivado之新增switch和VIO核

FPGA series # vivado之新增switch和VIO核

今天在之前程式碼的基礎上,把兩組置0的高位資料也通過模組跑了一遍,出來效果還可以看。順手添加了個開關,當switch置0時不經過gamma模組,置1時經過。

assign 			addrb_r = s_axis_gamma_tdata[23 : 16]	;
assign 			addrb_g = s_axis_gamma_tdata[15 : 8 ]	;	    
assign 			addrb_b = s_axis_gamma_tdata[7  : 0 ]	;
	
assign			m_axis_gamma_tdata_fifo_in = {8'b0,doutb_r, doutb_g, doutb_b};

assign			m_axis_gamma_tdata	=	(switch == 1)?m_axis_gamma_tdata_fifo_out[23:0]:s_axis_gamma_tdata ;
assign			m_axis_gamma_tlast	=	(switch == 1)?m_axis_gamma_tlast_fifo	 : s_axis_gamma_tlast ;
assign			m_axis_gamma_tuser	=	(switch == 1)?m_axis_gamma_tuser_fifo	 : s_axis_gamma_tuser ;
assign			m_axis_gamma_tvalid	=	(switch == 1)?m_axis_gamma_tvalid_fifo : s_axis_gamma_tvalid;
assign			s_axis_gamma_tready	=	(switch == 1)?s_axis_gamma_tready_fifo : m_axis_gamma_tready;

這裡m_axis_gamma_tdata_fifo_in 的高八位還是要置0 是因為這個fifo的IP核只允許選擇偶數倍的byte0
也就是這裡fifo的輸入輸出資料位沒有24位可選。
要提一點,assign的等式左邊必須得是wire型,reg型會報錯。這一點以前是有注意的,很久沒接觸又忘了,其實wire和reg的用法還是有點混亂,先記下,來日得好好研究研究。

直接在block design裡新增的VIO
1
VIO:virtual input output;其輸出可以控制模組的輸入,輸入可以顯示模組的輸出。input可在chipscope裡當按鍵觸發。具體可以參考官方手冊
輸出接的siwtch,輸入隨手接了個訊號,只要位數對應,並無影響。vio中右鍵訊號進行設定toggle button。
4


value下的值即為button
2
3