故障积累-cpu操作逻辑的寄存器读写

前情提要:CPU使用loca bus总线访问FPGA寄存器

1.由于外部硬件走线不一致等问题,所以在信号到达逻辑引脚的时候时序可能较差,为了优化时序,在localbus所有信号线都接入逻辑的时候都需要在localbus_clk信号下布局到IOB寄存器,便于后续时序的保证;

2.对逻辑寄存器内部读写操作:

//推荐的写方式
always ( posedge locbus_clk)
  begin
    if (~locbus_wr && ~locbus_cs)
      begin
      case(locbus_adrr[7:0])
        8'd4:test1[7:0] <= locbus_data ;
        8'd5:test2[7:0] <= locbus_data ;
        8'd6:test3[7:0] <= locbus_data ;
      end
    else
      locbus_data <= 16'b0 ; 
  end
//不推荐方式,这里把写使能当作时钟使用,本身信号质量就难以保证,时序也会容易有问题。
always ( posedge locbus_clk or posedge locbus_wr )
  begin
    if (~locbus_cs)
      begin
      case(locbus_adrr[7:0])
        8'd4:test1[7:0] <= locbus_data ;
        8'd5:test2[7:0] <= locbus_data ;
        8'd6:test3[7:0] <= locbus_data ;
      end
    else
      ocbus_data <= 16'b0 ; 
  end
//推荐读的方式,还是不要使用组合逻辑,感觉还是使用时序逻辑好点
always ( posedge locbus_clk)  //不要用always (*)
  begin
    if(~locbus_wr && ~locbus_cs)
      begin
      case(locbus_adrr[7:0])
        8'd0:locbus_data <= YEAR  ;
        8'd1:locbus_data <= MONTH ;
        8'd3:locbus_data <= DAY   ;
      end
  end

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值