这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » CPU总线对FPGA的读写控制

共1条 1/1 1 跳转至

CPU总线对FPGA的读写控制

助工
2014-07-30 22:21:42     打赏
CPU与FPGA的最简单接口就是总线,通常总线包括有:地址总线,数据总线,读控制信号,写控制信号,以及片选信号。 

   在做设计的过程中,看到不少同事在实现FPGA寄存器的过程中,代码显得很混乱。以下是本人的小小经验,抛砖引玉!!


   通常地址译码以及读写控制信号生成:


   aReg <= '1' when Addr=Reg_addr else '0';


   rdReg <= (not rd_n) and wr_n and aReg and (not cs_n);


   wrReg <= (not wr_n) and rd_n and aReg and (not cs_n);


   读寄存器,采取异步读的办法,这个好处就是响应快,而且读不会改写寄存器,不会引起颠覆性错误,因此是不用担心毛刺:


   Data <= Reg when rdReg='1' else (others=>'Z');


   写寄存器就建议采用同步电路,因为出现写控制信号出现毛刺会引起非法改写FPGA片内寄存器,这是很危险的:


   Write_Register:process(clk,rst_n)


   begin


        if rst_n='0' then


            Reg <= (others=>'0');


        elsif rising_edge(clk) then


            if wrReg='1' then


                  Reg <= Data;


            end if;


        end if;


   end process;


以上是采用VHDL编写,当然也是很容易转换成用Verilog描述,这个就留给各位来做了!!




关键词: 读写     总线    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]