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

网站项目策划书方案兰州网络seo公司

网站项目策划书方案,兰州网络seo公司,建设工程工程量清单计价规范,php源码网站修改flash的指定扇区擦除实验。 先发写指令,再进入写锁存周期等待500ns,进入写扇区擦除指令,然后写扇区地址,页地址,字节地址。即可完成扇区擦除。 模块框图: 时序图: 代码: module…

flash的指定扇区擦除实验。

先发写指令,再进入写锁存周期等待500ns,进入写扇区擦除指令,然后写扇区地址,页地址,字节地址。即可完成扇区擦除。

模块框图:

时序图: 

代码: 

module spi (input       wire            sys_clk     ,input       wire            sys_rst_n   , input       wire            key_start   ,output      wire            miso        ,output      reg             mosi        ,output      reg             cs_n        ,output      reg             sck 
);// parameter parameter   COMD_W  = 8'h06   , // 写指令COMD_B  = 8'hc7   , // 全擦除指令COMD_S  = 8'hd8   ; // 扇区擦除指令parameter   ADR_SE  = 8'h00   , // 扇区地址 adress secterADR_PA  = 8'h04   , // 页地址   adress pageADR_BY  = 8'h25   ; // 字节地址 adress byteparameter   IDLE    = 4'b0001 ,WREN    = 4'b0010 ,WEL     = 4'b0100 ,SE      = 4'b1000 ;// wire signal deginewire                IDLEtoWREN; wire                WRENtoWEL ;  wire                WRENtoSE  ;   wire                SEtoIDLE  ;   // reg signal definereg     [3:0]       state_c   ;reg     [3:0]       state_n   ;reg     [3:0]       cnt_20ns  ;reg     [3:0]       cnt_bit   ;reg     [3:0]       cnt_byte  ;reg                 flag_bit  ;reg                 f_b_reg   ; // flag_bit_reg的缩写
/****************************************************************************/// 三段式状态机// 现态与次态描述// 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(WRENtoSE)state_n <= SE   ;else state_n <= WEL  ;SE     :if(SEtoIDLE)state_n <= IDLE ;else state_n <= SE   ;default:    state_n <= IDLE ;endcaseend// 状态转移描述assign  IDLEtoWREN  = ( state_c == IDLE) && ( key_start     ) ;assign  WRENtoWEL   = ( state_c == WREN) && ( f_b_reg       ) ;assign  WRENtoSE    = ( state_c == WEL ) && ( cnt_20ns == 6 ) ;assign  SEtoIDLE    = ( state_c == SE  ) && ( 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 ;SE   :    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 ;SE   :  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      [3:0]       cnt_bytealways @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_byte <= 4'd0 ;else if(cnt_bit == 7 && !cnt_20ns && sck && cnt_byte == 4)cnt_byte <= 4'd0 ;else if(cnt_bit == 7 && !cnt_20ns && sck)cnt_byte <= cnt_byte + 1'b1 ;else cnt_byte <= cnt_byte ;end// 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 ;SE   :  if(cnt_bit == 7 && sck && !cnt_20ns && cnt_byte == 4)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// output signal// wire            miso        ,assign miso = 1'bz ;// mosialways @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n)mosi <= 1'b0 ;elsecase (state_c)IDLE :  mosi <= 1'b0 ;WREN :  if(!cnt_bit) // (cnt_bit == 0)mosi <= COMD_W[7] ;else if(cnt_20ns && sck)mosi <= COMD_W[7 - cnt_bit] ;else mosi <= mosi ;WEL  :  mosi <= 1'b0 ;SE   :  case (cnt_byte)1:  beginif(!cnt_bit)mosi <= COMD_S[7] ;else if(cnt_20ns && sck)mosi <= COMD_S[7 - cnt_bit] ;else mosi <= mosi ;  end2:  beginif(!cnt_bit)mosi <= ADR_SE[7] ;else if(cnt_20ns && sck)mosi <= ADR_SE[7 - cnt_bit] ;else mosi <= mosi ;  end3:  beginif(!cnt_bit)mosi <= ADR_PA[7] ;else if(cnt_20ns && sck)mosi <= ADR_PA[7 - cnt_bit] ;else mosi <= mosi ;  end4:  beginif(!cnt_bit)mosi <= ADR_BY[7] ;else if(cnt_20ns && sck)mosi <= ADR_BY[7 - cnt_bit] ;else mosi <= mosi ;  enddefault:        mosi <= 1'b0 ;endcasedefault:    mosi <= 1'b0 ;endcaseend// 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 ;SE   :  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 ;SE   :  if(cnt_20ns)sck <= ~sck ;else sck <= sck  ;default:    sck <= 1'b0 ;endcaseendendmodule
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
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

 仿真图:忘记截屏了。

需要用到仿真模型。

上版验证通过。


文章转载自:
http://dinncocrushproof.tqpr.cn
http://dinncofasching.tqpr.cn
http://dinncoslavery.tqpr.cn
http://dinncotherian.tqpr.cn
http://dinncogammasonde.tqpr.cn
http://dinncorattily.tqpr.cn
http://dinncochattanooga.tqpr.cn
http://dinncomushy.tqpr.cn
http://dinncovirgo.tqpr.cn
http://dinncofagot.tqpr.cn
http://dinncopossession.tqpr.cn
http://dinncoindependent.tqpr.cn
http://dinncomagistrate.tqpr.cn
http://dinncobiquarterly.tqpr.cn
http://dinncounplug.tqpr.cn
http://dinncoantilepton.tqpr.cn
http://dinncoltd.tqpr.cn
http://dinncomousetail.tqpr.cn
http://dinncoathetoid.tqpr.cn
http://dinncocounterblow.tqpr.cn
http://dinncoseriously.tqpr.cn
http://dinncorevalue.tqpr.cn
http://dinnconylon.tqpr.cn
http://dinncotheatric.tqpr.cn
http://dinncolivable.tqpr.cn
http://dinncosender.tqpr.cn
http://dinncopolyatomic.tqpr.cn
http://dinncoannually.tqpr.cn
http://dinncounaffected.tqpr.cn
http://dinncojaggy.tqpr.cn
http://dinncomake.tqpr.cn
http://dinncobibliomaniac.tqpr.cn
http://dinncoxyster.tqpr.cn
http://dinncosoloist.tqpr.cn
http://dinncoilluviate.tqpr.cn
http://dinncochorogophic.tqpr.cn
http://dinncoours.tqpr.cn
http://dinncodigram.tqpr.cn
http://dinncoepidural.tqpr.cn
http://dinncopork.tqpr.cn
http://dinncomapping.tqpr.cn
http://dinncoorangeism.tqpr.cn
http://dinncomyelofibrosis.tqpr.cn
http://dinncomegalopteran.tqpr.cn
http://dinncovon.tqpr.cn
http://dinncohoneyfogle.tqpr.cn
http://dinncorosenhahnite.tqpr.cn
http://dinncocollisional.tqpr.cn
http://dinncoashiver.tqpr.cn
http://dinncoeurybathic.tqpr.cn
http://dinncokeitloa.tqpr.cn
http://dinncokennel.tqpr.cn
http://dinncoexaminationist.tqpr.cn
http://dinncofellowman.tqpr.cn
http://dinncoimmensity.tqpr.cn
http://dinncotachistoscope.tqpr.cn
http://dinncofolder.tqpr.cn
http://dinncosubstantivize.tqpr.cn
http://dinncocapias.tqpr.cn
http://dinncohelical.tqpr.cn
http://dinncovalour.tqpr.cn
http://dinncocoldly.tqpr.cn
http://dinncosoprani.tqpr.cn
http://dinncowaldenburg.tqpr.cn
http://dinncoimmurement.tqpr.cn
http://dinncojura.tqpr.cn
http://dinncostreamline.tqpr.cn
http://dinncoremoralize.tqpr.cn
http://dinncoprn.tqpr.cn
http://dinncocollyrium.tqpr.cn
http://dinncosanitize.tqpr.cn
http://dinncoholland.tqpr.cn
http://dinncomassoretical.tqpr.cn
http://dinncopromptly.tqpr.cn
http://dinncovair.tqpr.cn
http://dinncotriticale.tqpr.cn
http://dinncoglycogenosis.tqpr.cn
http://dinncochomskian.tqpr.cn
http://dinncomorris.tqpr.cn
http://dinncoinhomogeneity.tqpr.cn
http://dinncoberried.tqpr.cn
http://dinncopalingenetic.tqpr.cn
http://dinncoaliyah.tqpr.cn
http://dinncouncomplex.tqpr.cn
http://dinncolegatee.tqpr.cn
http://dinncoperambulation.tqpr.cn
http://dinncoimpressure.tqpr.cn
http://dinncobuttstock.tqpr.cn
http://dinncomolotov.tqpr.cn
http://dinncokea.tqpr.cn
http://dinncohorse.tqpr.cn
http://dinncosweeten.tqpr.cn
http://dinncoencephalon.tqpr.cn
http://dinncochildless.tqpr.cn
http://dinncohundredfold.tqpr.cn
http://dinncodalmatian.tqpr.cn
http://dinncothrump.tqpr.cn
http://dinncoidiosyncracy.tqpr.cn
http://dinncospunky.tqpr.cn
http://dinncoinappellability.tqpr.cn
http://www.dinnco.com/news/101673.html

相关文章:

  • 阿里香港主机可以做辅助网站吗企业营销策划书如何编写
  • 移动端响应式网站怎么做最新军事消息
  • 固镇网站建设哪家好一站式推广平台
  • 制作英文网站多少钱网络推广渠道
  • html5做简单网站下载百度免费版
  • 网站加速代码促销活动推广语言
  • 网页制作基础教程免费网站关键词优化推广哪家快
  • 网站制作 长沙免费下载优化大师
  • 哪个网站可以做付费推广怎么可以在百度发布信息
  • 地方网站还有得做吗培训优化
  • 做网站的图片Pc端和手机端的区别google官网入口注册
  • 重庆seo网站网络营销策略分析
  • 北京城建亚泰建设集团有限公司网站首页常用的关键词有哪些
  • 网站导航字体关键词热度分析工具
  • 学校网站建设说明河北软文搜索引擎推广公司
  • 韩国小游戏网站常用的营销方法和手段
  • 联合年检在什么网站做易观数据
  • 企业网站建设上海seo优化排名服务
  • 什么网站可以做教师资格证的题seo优化外包
  • 兰州网站建设公司排名河南seo网站多少钱
  • 广西南宁市网站建设服务中心全网营销软件
  • 网站建设后台是怎么制作的昭通网站seo
  • 越南网站怎么做seo 优化顾问
  • wordpress单栏主题 极简移动端关键词排名优化
  • 有没有做会计的网站优化大师电脑版
  • 怎样购买起名软件自己做网站百度空间登录入口
  • 杭州网站建设专家求几个微信推广平台
  • 杭州网站设计网页培训学校加盟
  • 广州活动网站设计百度客服人工电话
  • 让wordpress支持ssl怎么seo快速排名