名稱:QuartusSPI接口設(shè)計(jì)verilog代碼ARTIX-7開發(fā)板
軟件:Quartus
語言:Verilog
代碼功能:SPI接口設(shè)計(jì)
目標(biāo):
設(shè)計(jì)一個(gè)基于FPGA的SPI接囗
要求:
1)在FPGA上完成一個(gè)基于SpI的收發(fā)模塊;
2)能夠執(zhí)行對板上 EEROM讀寫;
3)使用撥碼開關(guān)控制SPI工作方式,讀或?qū)懀?/p>
4)時(shí)鐘信號為開發(fā)板上時(shí)鐘信號;
5)計(jì)算SPI工作時(shí)的有效帶寬。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在ARTIX-7開發(fā)板驗(yàn)證,ARTIX-7開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. 管腳分配
5. Testbench
6. 仿真圖
部分代碼展示:
//SPI使能 module?spi_en ( ClkIn,//50K StartEwen,//低電平啟動(dòng) SK,//spi信號 CS,//spi信號 DI?//spi信號 ); input?ClkIn,StartEwen; output?SK,CS,DI; reg?SK,CS,DI; reg?[3:0]?Cnt; //組合生產(chǎn)SK always?@?(StartEwen,Cnt,ClkIn) if(StartEwen)//1--復(fù)位 SK=1'b0; else? if(Cnt>=0?&&?Cnt<11) SK=ClkIn; else SK=1'b0; //使能擦寫指令1-00-11xxxxx always?@?(negedge?ClkIn?or?posedge?StartEwen) if(StartEwen) begin Cnt<=4'd0; CS<=1'b0; end else begin Cnt<=Cnt+1'b1; case(Cnt) 4'd0: begin CS<=1'b1; DI<=1'b1; end 4'd1: DI<=1'b0; 4'd2: DI<=1'b0; 4'd3: DI<=1'b1; 4'd4: DI<=1'b1; 4'd5,4'd6,4'd7,4'd8,4'd9: DI<=1'b0; 4'd10: begin CS<=1'b0; DI<=1'b0; end 4'd11: Cnt<=4'd11; endcase end endmodule
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=394