SOC电路如何进行软硬件交互

2019-08-08  本文已影响0人  罐头说

软件通过C语言将要写的数据写入相应的地址中,硬件是如何获取的呢?

硬件通过AMBA总线,用写入的方式,将haddr相应的hwdata写入某个寄存器中,然后硬件就可以用该寄存器中的值进行计算。

always@(posedgehclk or negedge hresetn)

begin

   begin

      case(haddr_r[7:0])

       PE_CONFIG_ADDR :        pe_en_r <= hwdata[0];//软件启动,软件置位

      endcase

   end

end

硬件将某个控制寄存器置位,软件是如何得到该控制寄存器的变化?

硬件通过AMBA总线,用读出的方式,将该控制寄存器附给haddr相应的hrdata,然后cpu就知道控制寄存器的值发生了改变。

always(*)

begin

  if(ahb_rd_en && reg_sel)

  begin

  case(haddr_r[7:0])

PE_CONFIG_ADDR :  hrdata={31'h0,pe_en_r};

endcase

end

end

上一篇下一篇

猜你喜欢

热点阅读