writer_pointer.vhd

来自「FIFO的Verilog程序 已在modelsim中编译通过 并且可以通过DC进」· VHDL 代码 · 共 63 行

VHD
63
字号
-- The Writer Pointer will control the Writer operationLIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.numeric_std.ALL;--use IEEE.std_logic_arith.all;ENTITY writer_pointer IS    PORT(        wclk   :   IN   std_logic;        rstb   :   IN   std_logic;        wload  :   IN   std_logic;        wenb   :   IN   std_logic;        wldata :   IN   std_logic_vector(4 DOWNTO 0);                waddr  :   OUT  std_logic_vector(4 DOWNTO 0)        );END writer_pointer;ARCHITECTURE behav OF writer_pointer ISSIGNAL loadflag   :   std_logic;SIGNAL enbflag   :   std_logic;SIGNAL counter   :   unsigned(4 DOWNTO 0);BEGIN    wcounter: PROCESS (rstb, wclk)    BEGIN        IF (rstb /= '1') THEN            counter <= (OTHERS => '0');        ELSIF (wclk'EVENT AND wclk = '1') THEN            IF (loadflag = '1') THEN                --counter <= (OTHERS => '0');                counter <= UNSIGNED(wldata);            ELSIF (enbflag = '1') THEN                counter <= counter + 1;            ELSE                counter <= counter;            END IF;                        waddr <= std_logic_vector(counter);        END IF;    END PROCESS;        wcomb: PROCESS (counter,wload, wenb)    BEGIN         --ALL_ONES(counter'LENGTH - 1 DOWNTO 0)        IF (counter > "11111" OR wload = '1') THEN            loadflag <= '1';        ELSE            loadflag <= '0';        END IF;                IF (wenb = '1') THEN            enbflag <= '1';        ELSE            enbflag <= '0';        END IF;        END PROCESS;        --waddr <= std_logic_vector(counter);    END behav;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?