当前位置: 首页 > news >正文

单位logo设计太原seo网站管理

单位logo设计,太原seo网站管理,如何创建一个国外免费网站,网站建设项目补充协议SPI是什么: SPI(Serial Peripheral Interface,串行外围设备接口)通讯协议,是Motorola公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线,在芯片中只占用四根管脚用来控制及数据…

SPI是什么:

SPISerial Peripheral Interface,串行外围设备接口)通讯协议,是Motorola公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线,在芯片中只占用四根管脚用来控制及数据传输

       应用:EEPROMFlashRTCADCDSP等。

       优缺点:全双工通信,通讯方式较为简单,相对数据传输速率较没有应答机制确认数据是否接收,在数据可靠性上有一定缺陷(与I2C相比)。

物理层:

SCK (Serial Clock):时钟信号线,用于同步通讯数据

MOSI (Master Output Slave Input):主设备输出/从设备输入引脚

MISO (Master InputSlave Output):主设备输入/从设备输出引脚

𝐶𝑆(CS) ̅ (Chip Select):片选信号线,也称为CS_N

协议层: 

spi通讯协议有四种模式:模式0和模式3,从设备在sck上升沿采样。

模式1和模式2在时钟下降沿采样。

模式0和模式1,在cs_n==1时,sck==0。

模式2和模式3,在cs_n==1时,sck==1。

比较常用的就是模式0和模式3。

flash相关资料:

芯片手册是必须要看的。

模块框图:

状态机:

时序图:

 代码:

module spi (input       wire            sys_clk     ,input       wire            sys_rst_n   , input       wire            key_start   ,output      wire            mosi        ,output      wire            miso        ,output      reg             cs_n        ,output      reg             sck 
);// parameter parameter   COMD_W  = 8'h06   ,COMD_B  = 8'hc7   ;parameter   IDLE    = 4'b0001 ,WREN    = 4'b0010 ,WEL     = 4'b0100 ,BE      = 4'b1000 ;// wire signal deginewire                IDLEtoWREN; wire                WRENtoWEL ;  wire                WRENtoBE  ;   wire                BEtoIDLE  ;   // reg signal definereg     [3:0]       state_c   ;reg     [3:0]       state_n   ;reg     [3:0]       cnt_20ns  ;reg     [3:0]       cnt_bit   ;reg                 flag_bit  ;reg                 f_b_reg   ; // flag_bit_reg的缩写reg     [7:0]       comd      ;
/****************************************************************************/// 三段式状态机// 现态与次态描述// state_calways @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) state_c <= IDLE ;elsestate_c <= state_n ;end// state_nalways @(*) begincase (state_c)IDLE   :if(IDLEtoWREN)state_n <= WREN ;else state_n <= IDLE ;WREN   :if(WRENtoWEL)state_n <= WEL  ;else state_n <= WREN ;WEL    :if(WRENtoBE)state_n <= BE   ;else state_n <= WEL  ;BE     :if(BEtoIDLE)state_n <= IDLE ;else state_n <= BE   ;default:    state_n <= IDLE ;endcaseend// 状态转移描述assign  IDLEtoWREN  = ( state_c == IDLE) && ( key_start     ) ;assign  WRENtoWEL   = ( state_c == WREN) && ( f_b_reg       ) ;assign  WRENtoBE    = ( state_c == WEL ) && ( cnt_20ns == 6 ) ;assign  BEtoIDLE    = ( state_c == BE  ) && ( f_b_reg       ) ;// 相关信号描述// reg     [3:0]       cnt_20ns  ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_20ns <= 4'd0 ;else case (state_c)IDLE :  cnt_20ns <= 4'd0 ;WREN :  if(cnt_20ns || f_b_reg)cnt_20ns <= 4'd0 ;else cnt_20ns <= cnt_20ns + 1'b1 ;WEL  :  if(cnt_20ns == 6) // 60x20ns==120nscnt_20ns <= 4'd0 ;elsecnt_20ns <= cnt_20ns + 1'b1 ;BE   :    if(cnt_20ns || f_b_reg)cnt_20ns <= 4'd0 ;else cnt_20ns <= cnt_20ns + 1'b1 ;default:    cnt_20ns <= 4'd0 ;endcaseend// reg     [3:0]       cnt_bit   ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n)cnt_bit <= 4'd0 ;else case (state_c)IDLE :  cnt_bit <= 4'd0 ;WREN :  if(!cnt_20ns && sck && cnt_bit == 7)cnt_bit <= 4'd0 ;else if(!cnt_20ns && sck)cnt_bit <= cnt_bit + 1'b1 ;WEL  :  cnt_bit <= 4'd0 ;BE   :  if(!cnt_20ns && sck && cnt_bit == 7)cnt_bit <= 4'd0 ;else if(!cnt_20ns && sck)cnt_bit <= cnt_bit + 1'b1 ;default:    cnt_bit <= 4'd0 ;endcaseend// reg                 flag_bit  ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) flag_bit <= 1'b0 ;elsecase (state_c)IDLE :  flag_bit <= 1'b0 ;WREN :  if(cnt_bit == 7 && sck && !cnt_20ns)flag_bit <= 1'b1 ;else flag_bit <= flag_bit ;WEL  :  flag_bit <= 1'b0 ;BE   :  if(cnt_bit == 7 && sck && !cnt_20ns)flag_bit <= 1'b1 ;else flag_bit <= flag_bit ;default: flag_bit <= 1'b0 ;endcaseend// reg                 f_b_reg   ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) beginf_b_reg <= 1'b0 ;end else beginf_b_reg <= flag_bit ;endend// reg     [7:0]       comd      ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n)comd <= 8'd0 ;elsecase (state_c)IDLE :  comd <= 8'd0 ;WREN :  if(cnt_20ns && sck)comd <= (COMD_W << cnt_bit) ;else if(!cnt_bit)comd <= COMD_W ;else comd <= comd ;WEL  :  comd <= 8'd0 ;BE   :  if(cnt_20ns && sck)comd <= (COMD_B << cnt_bit) ;else if(!cnt_bit)comd <= COMD_B ;else comd <= comd ;default :   comd <= 8'd0 ;endcase end// output signal// wire            mosi        ,assign mosi = comd[7] ;// wire            miso        ,assign miso = 1'bz ;// reg             cs_n        ,always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) begincs_n <= 1'b1 ;end else begincase (state_c)IDLE :  if(key_start)cs_n <= 1'b0 ;else cs_n <= 1'b1 ;WREN :  if(f_b_reg)cs_n <= 1'b1 ;else cs_n <= cs_n ;WEL  :  if(cnt_20ns == 6) cs_n <= 1'b0 ;else cs_n <= cs_n ;BE   :  if(f_b_reg)cs_n <= 1'b1 ;else cs_n <= cs_n ;default:    cs_n <= 1'b1 ;endcaseendend// reg             sck always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n)sck <= 1'b0 ;else case (state_c)IDLE :  sck <= 1'b0 ;WREN :  if(cnt_20ns)sck <= ~sck ;else sck <= sck  ;WEL  :  sck <= 1'b0 ;BE   :  if(cnt_20ns)sck <= ~sck ;else sck <= sck  ;default:    sck <= 1'b0 ;endcaseendendmodule

 

module key_filter
#(parameter MAX_CNT_20MS = 20'd100_0000 
)(input           wire    sys_clk     ,input           wire    sys_rst_n   ,input           wire    key_in      ,output          wire    key_out     
);reg     key_r_0 ;reg     key_r_1 ;wire    nege    ;wire    pose    ;reg     [19:00]     cnt_20ms     ;wire                add_cnt_20ms ;wire                end_cnt_20ms ;reg                 add_cnt_flag ;// key_r_0 key_r_1 always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) beginkey_r_0 <= 1'b1 ;end else beginkey_r_0 <= key_in ;endendalways @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) beginkey_r_1 <= 1'b1 ;end else beginkey_r_1 <= key_r_0 ;endend// nege poseassign nege = ~key_r_0 &&  key_r_1 ;assign pose =  key_r_0 && ~key_r_1 ;// add_cnt_flagalways @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) beginadd_cnt_flag <= 1'b0 ;end else beginif(nege) beginadd_cnt_flag <= 1'b1 ;end else beginif( pose || end_cnt_20ms ) beginadd_cnt_flag <= 1'b0 ;end else beginadd_cnt_flag <= add_cnt_flag ;endend endend// cnt_20ms add_cnt_20ms end_cnt_20msalways @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) begincnt_20ms <= 20'd0 ;end else beginif(add_cnt_20ms) beginif(end_cnt_20ms) begincnt_20ms <= 20'd0 ;end else begincnt_20ms <= cnt_20ms + 20'd1 ;endend else begincnt_20ms <= 20'd0 ;endendendassign add_cnt_20ms = add_cnt_flag ;assign end_cnt_20ms = add_cnt_20ms && cnt_20ms == ( MAX_CNT_20MS - 1'b1 ) ;// key_out// always @(posedge sys_clk or negedge sys_rst_n) begin// // always @(*) begin // 这样的话 会综合成 数据选择器//     if(~sys_rst_n) begin//         key_out <= 1'b0 ;//     end else begin//         if(end_cnt_20ms) begin//             key_out <= 1'b1 ;//         end else begin//             key_out <= 1'b0 ;//         end//     end// endassign key_out = end_cnt_20ms ;
endmodule
module top(input       wire            sys_clk     ,input       wire            sys_rst_n   ,input       wire            key_in      ,output      wire            cs_n        ,output      wire            sck         ,output      wire            mosi        
);// 例化间连线wire            key_flag ;key_filter key_filter_inst(.sys_clk                    ( sys_clk   ) ,.sys_rst_n                  ( sys_rst_n ) ,.key_in                     ( key_in    ) ,.key_out                    ( key_flag  )     
);spi spi_inst(.sys_clk                    ( sys_clk   ) ,.sys_rst_n                  ( sys_rst_n ) ,.key_start                  ( key_flag  ) ,.mosi                       ( mosi      ) ,.miso                       (           ) ,.cs_n                       ( cs_n      ) ,.sck                        ( sck       )
);endmodule
`timescale 1ns/1ns
module test_top();reg             sys_clk     ;reg             sys_rst_n   ;reg             key_in      ;wire            cs_n        ;wire            sck         ;wire            mosi        ;wire            miso        ;top top_inst(.sys_clk                ( sys_clk   ) ,.sys_rst_n              ( sys_rst_n ) ,.key_in                 ( key_in    ) ,.cs_n                   ( cs_n      ) ,.sck                    ( sck       ) ,.mosi                   ( mosi      ) ,.miso                   ( miso      )
);parameter CYCLE = 20 ;defparam  top_inst.key_filter_inst.MAX_CNT_20MS = 20'd100 ;initial beginsys_clk = 1'b1 ;sys_rst_n <= 1'b0 ;key_in    <= 1'b1 ;#(CYCLE) ;sys_rst_n <= 1'b1 ;#(CYCLE * 30) ;key_in <= 1'b0 ;#(CYCLE * 130) ;key_in <= 1'b1 ;#(CYCLE * 100) ;$stop;endalways #(CYCLE/2) sys_clk = ~sys_clk ;endmodule

 仿真波形:

 上板验证:

先往板子上固化一个流水灯程序,也就是把生成的.jic文件,写进flash。

重启开发板,流水灯正常工作,说明程序写进了flash。

然后把全擦除程序(.sof),写进开发板。

重启开发板,流水灯效果消失。

说明上板成功。


文章转载自:
http://dinncopersonality.bkqw.cn
http://dinncotranspositional.bkqw.cn
http://dinncophasemeter.bkqw.cn
http://dinncotelephonable.bkqw.cn
http://dinncoamphibolite.bkqw.cn
http://dinncoautoaggressive.bkqw.cn
http://dinncopiano.bkqw.cn
http://dinncoebu.bkqw.cn
http://dinncorubberwear.bkqw.cn
http://dinncoprestigious.bkqw.cn
http://dinncojingoist.bkqw.cn
http://dinncountried.bkqw.cn
http://dinncodickeybird.bkqw.cn
http://dinncodecimalization.bkqw.cn
http://dinncostockrider.bkqw.cn
http://dinncoindividuate.bkqw.cn
http://dinncoinsulter.bkqw.cn
http://dinncoorthicon.bkqw.cn
http://dinncoemissary.bkqw.cn
http://dinncosublease.bkqw.cn
http://dinncoprecordium.bkqw.cn
http://dinncodimness.bkqw.cn
http://dinncolixivial.bkqw.cn
http://dinncohg.bkqw.cn
http://dinncohydrocephalous.bkqw.cn
http://dinncoplaywear.bkqw.cn
http://dinncocalcspar.bkqw.cn
http://dinncodyslogy.bkqw.cn
http://dinncowaddie.bkqw.cn
http://dinncovisking.bkqw.cn
http://dinncopodzol.bkqw.cn
http://dinncocarlot.bkqw.cn
http://dinnconeptune.bkqw.cn
http://dinncopiezocrystal.bkqw.cn
http://dinncooozy.bkqw.cn
http://dinncosigniory.bkqw.cn
http://dinncozoophoric.bkqw.cn
http://dinncomilitarize.bkqw.cn
http://dinncoduskily.bkqw.cn
http://dinncolovage.bkqw.cn
http://dinncophotoelectric.bkqw.cn
http://dinncobeet.bkqw.cn
http://dinncosplenium.bkqw.cn
http://dinncogarganey.bkqw.cn
http://dinncotaraxacum.bkqw.cn
http://dinncohorrible.bkqw.cn
http://dinncoskimp.bkqw.cn
http://dinncocantorial.bkqw.cn
http://dinncolantana.bkqw.cn
http://dinncoprevailing.bkqw.cn
http://dinncoalcoholization.bkqw.cn
http://dinncotimocracy.bkqw.cn
http://dinncofaints.bkqw.cn
http://dinncohypersecretion.bkqw.cn
http://dinncoquinquelateral.bkqw.cn
http://dinncotannish.bkqw.cn
http://dinncofourchette.bkqw.cn
http://dinncounattained.bkqw.cn
http://dinncoendoscope.bkqw.cn
http://dinncoposthole.bkqw.cn
http://dinncodelaine.bkqw.cn
http://dinncopathography.bkqw.cn
http://dinncojambe.bkqw.cn
http://dinncocoldhearted.bkqw.cn
http://dinncorijn.bkqw.cn
http://dinncoforklike.bkqw.cn
http://dinncovilification.bkqw.cn
http://dinncolycee.bkqw.cn
http://dinncosked.bkqw.cn
http://dinncoheulandite.bkqw.cn
http://dinnconewsworthy.bkqw.cn
http://dinncointerpolative.bkqw.cn
http://dinnconosy.bkqw.cn
http://dinncobacchantic.bkqw.cn
http://dinncofloriferous.bkqw.cn
http://dinncoamortization.bkqw.cn
http://dinncoanastatic.bkqw.cn
http://dinncoprowl.bkqw.cn
http://dinncodextrocularity.bkqw.cn
http://dinncoaudiogenic.bkqw.cn
http://dinncoliteralism.bkqw.cn
http://dinncokennebec.bkqw.cn
http://dinncobelitung.bkqw.cn
http://dinncofroward.bkqw.cn
http://dinncotheodolite.bkqw.cn
http://dinncochronicles.bkqw.cn
http://dinncoacquirability.bkqw.cn
http://dinncowellerism.bkqw.cn
http://dinncoamnion.bkqw.cn
http://dinncomameluke.bkqw.cn
http://dinncofatso.bkqw.cn
http://dinncohenroost.bkqw.cn
http://dinncocrummy.bkqw.cn
http://dinncolied.bkqw.cn
http://dinncoterritorial.bkqw.cn
http://dinncomaryolatry.bkqw.cn
http://dinncokickboard.bkqw.cn
http://dinncooverflow.bkqw.cn
http://dinncopaleencephalon.bkqw.cn
http://dinncogastrocamera.bkqw.cn
http://www.dinnco.com/news/91584.html

相关文章:

  • 网站在线答题怎么做网站制作的流程是什么
  • 龙岗沙湾社区网站建设ks数据分析神器
  • 网站建设和微信小程序哈尔滨seo服务
  • 免费网址怎么申请注册百度快速收录seo工具软件
  • app下载应用百度上做优化
  • 百度站长工具有哪些网络优化大师下载
  • 网站如何做淘宝联盟推广短视频seo是什么
  • 做网站有哪些技术成都百度推广账户优化
  • 个人网站用主机做服务器企业域名查询
  • 政府找网站开发商要求网络营销顾问招聘
  • iis7 多个网站 80端口体验式营销
  • wordpress 站内消息武汉大学人民医院光谷院区
  • 山西威力网站建设推荐营销策略主要包括哪些
  • 外卖在家做咋上网站网站seo优化公司
  • wordpress连接丢失搜索引擎优化技巧
  • mysql 注册网站国家市场监管总局
  • 安全生产门户网站建设大连网站建设费用
  • 网站建设市场定位来宾seo
  • ac域名网站seo北京
  • 三明住房和城乡建设部网站神马推广登录
  • 把微信小程序做网站活动策划公司
  • iis如何发布asp.net网站seo机构
  • wordpress源码下载seo网站介绍
  • 做毕设网站多少钱谷歌官网
  • 网站建设项目内控单什么是淘宝seo
  • 企业网站推广宣传方案企业seo服务
  • 图片网站怎样选择虚拟主机电商运营培训机构哪家好
  • 淘宝客论坛响应式php网站下载高清视频网络服务器
  • 南通给公司做网站的百度客户端
  • 九江网站建设百度数据库