http://skycanny.21ic.org

 
载入中...

他们彼此深信,是瞬间迸发的热情让他们相遇。这样的确定是美丽的,但变幻无常更为美丽
载入中...

留言簿

公告

2007-2-4 0:08:00
同步FIFO之VHDL描述3

同步FIFOVHDL描述3

       今天又重新安装了UltraEdit, Quartus II6.0Modelsim SE 6.0,这次安装以后系统没有发现什么异常。另外还安装了紫光的拼音输入法,用习惯了这个,微软呀,智能ABC这些都用不太习惯。最后把系统备份了一下,以免将来出了什么问题还可以还原一下,呵呵。

 

           还是接着昨天的《同步FIFOVHDL描述》。突然发现用于实现FIFORAM必须是真正意义上的双口RAM,也就是读写可以同时进行的,以前只是用VHDL描述过单端口的RAM,双口RAM还没有描述过,不过曾经看到过Xilinx FPGA/CPLD的开发工具ISECore Genertor好像提供双口RAM的软核,所以我想用HDL语言也就应该可以描述从而调用双口RAM,这个等到具体写双口RAMRTL代码的时候再研究。还有一个问题就是FIFO的读写请求控制信号必须要控制FIFO读写指针的产生电路,只有读写信号信号有效的时候,FIFO读写指针才能是有效的,负责是无效而且要保持不变,这个容易理解。

              今天,就先完成写指针产生和管理电路的RTL代码吧,其实很简单,就是一个二进制计数器。下面就是VHDL的代码,大家看看有没有什么问题。

-----------------------------------------------------------------------------------------------------------

-- Designer            :      skycanny

-- Date                  :      2007-2-2

-- Description :      write_pointer is created

-- Modification       :      add  FIFO status full judge  2007-2-3 skycanny

 

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

 

entity write_pointer is

       generic

       (

              depth      :      positive  

       );

       port

       (

              clk          :      in     std_logic;

              rst          :      in     std_logic;

              wq          :      in     std_logic;

              full          :      in     std_logic;

              wr_pt      :      out   std_logic_vector(depth - 1 downto 0)         

       );

end entity;

 

architecture RTL of write_pointer is

signal      wr_pt_t   :      std_logic_vector(depth - 1 downto 0);  -- writer pointer counter

 

begin

       process(rst, clk)

       begin

              if rst = '0' then

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

              elsif clk'event and clk = '1' then

                     if wq = '0' and full = '0' then

                            wr_pt_t <= wr_pt_t + 1;

                     end if;

       end process;

       wr_pt <= wr_pt_t;

end RTL;

------------------------------------------------------------------------------------------------------------

       今天就到这里吧,欢迎大家访问skyanny的笔记(副站),最后还是希望大家能投宝贵的一票,谢谢!

posted @ 2007-2-4 0:08:00 skycanny 阅读全文 | 回复(0) | 引用通告 | 编辑
  • 标签:FIFO VHDL 
  • 发表评论:
    载入中...