欢迎来到天天文库
浏览记录
ID:22549318
大小:88.00 KB
页数:5页
时间:2018-10-30
《用verilog语言写的cpld和mcu通讯的spi接口程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、用Verilog语言写的CPLD和MCU通讯的SPI接口程序2010-04-1221:32近H,在调试Altera的MAXII系列的-款CPLD,做了一个SPI接门同MCU通讯,MCU做主机通过SPI对CPLD做读写操作,经过测试验证,效果不错。程序代码如下,独立模块,可以根据实际应用直接实例化使用。说明:代码屮的*"注释不能在网页上显示出来,源文件可在链接博客屮直接下载.rjwrjwrj*rjwrj*rj^rj^rj^rj^rj^rj^rj^rj^rj^rj^rj^rj^rj*rj*rj^rj*rj*rj%rj*rj*rj%rj*rj^rj*rj*rj^rj^rj^rj^rj^
2、rj^rj^rj^rj^rj^rj^rj^rj^rj^rj^rj^rj^rj^rj^rj^*spi氺*Filename:spi.v*Programmer:jose.huang*Project:*Version:VI.0*TOPMODULE:SpiModule.v*Describel:spi总线,数据移位处理模块;*发送,接收均为8位数据;*接收时,上升沿移入数据;*发送时,上升沿来之前放上数据*用于SPI从动模式•£>•丄••£>•tf•又扇^2^•又扇•又扇•又扇«(>•又扇•又扇•又扇«(>*t>麝«(>•上••丄••丄••**•**•**^T*^T*^T*^T*^T*^
3、T*^T**T^*T>^T**T>*y**T»<1^>2^•丄'•!*<1^<1^<1^<1^^Tw^Tw^Tw^Tw^Tw^Tw^7w^7w^7w^7w^7w^Tw^Tw^Tw^T、^T、^T、^T、^T、modulespi(rst,clk,sdi,sd
4、o,sck,cs,ODataJData,ReceiveFlag,TransFlag,TransEndFlag);inputrst;//异步清零inputsdi;//spidatainputinputsck;//spiclk,MAX25MHzinputcs;//spienableinputelk;//cpldmainelk,MIN50MHzinput[7:0]IData;//Input8bitDatawanttotransmittomeuinputTransFlag;//发送标志outputreg$do;//spidataoutputoutputreg[7:0]OData;//Rec
5、eive8bitData命令字或数据outputregReceiveFlag;//收到8bitData标志outputregTransEndFlag;//发送结束林志reg[2:0]CPLDPort;reg[2:0]TempPort;reg[2:0JBufferPort;//samplingCPLDIODatatoBufferPortreg[7:01samplnum;always@(posedgeelk)beginCPLDPortLOJ<=sdi;CPLDPortllJ<=sck;CPLDPort[21<=cs;endalways@(posedgeelkornegedgerst)b
6、eginif(!rst)//异步清零beginsamplnum<=8*b0;endelseif(TempPort==CPLDPort)beginsamplnum<=samplnum+l’bl;endelsebeginsamplnum<=8'bO;TempPort<=CPLDPort;endendalways@(posedgeelkornegedgerst)beginif(!rst)//异步清零beginBufferPort[0]<=1'bO;//CPLDPort[0]<=sdi;BufferPort[l]<=FbO;//CPLDPortllJ<=sck;BufferPort[2]<
7、=l'bl;//CPLDPort[2]<=cs;endelsebeginif(samplnum>10)//setbycpldmainelkandspielkbeginBufferPort<=TempPort;endelseBufferPort<=BufferPort;endendwirew$di;wirewsck;wirewes;assignwsdi=BufferPortfO];//CPLDPort[0]<=sdi;assignwsck=BufferPort[l];/
此文档下载收益归作者所有