Thông báo

Collapse
No announcement yet.

Giúp em với đoạn code này sai ở đâu?????

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Giúp em với đoạn code này sai ở đâu?????

    Em có viết đoạn code sau mô tả register files( em ko biết dịch là gì):
    có 1 đầu vào 8bit, 2 đầu ra 8bit, có 2 thanh ghi RF0va RF1
    Em dùng DXP 2004 để mô phỏng thì thấy RF0,RF1 chỉ có giá trị ?????
    Các pác giúp em xem có sai sót gì không
    Em chân thành cảm ơn

    --------------RegisterFile -2x8bit--------------------
    lIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.ALL;
    ENTITY regfile IS PORT(
    clk:IN STD_LOGIC;
    WE:IN STD_LOGIC;--write enable
    WA:IN STD_LOGIC;--write andress
    input:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
    RAE:IN STD_LOGIC;--read enable cổng A
    RAA:IN STD_LOGIC;--read andress
    RBE:IN STD_LOGIC;--read enable Cổng B
    RBA:IN STD_LOGIC;--read andress
    Aout,Bout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
    END regfile;
    ARCHITECTURE Behavioral OF regfile IS
    SUBTYPE reg IS STD_LOGIC_VECTOR(7 DOWNTO 0);
    TYPE regArray IS array(0 TO 1) OF reg;
    SIGNAL RF:regArray ;
    BEGIN
    WritePort:PROCESS(clk)
    BEGIN
    IF (clk'EVENT AND clk='1') THEN
    IF (WE='1') THEN
    if (WA='1') then
    RF(1)<=input;
    else RF(0)<=input;
    end if;
    END IF;
    END IF;
    END PROCESS;
    ReadPortA:PROCESS(RAE,RAA)
    BEGIN
    IF (RAE='1') then
    if (RAA='1') then
    Aout<=RF(1);
    else Aout<=RF(0);
    end if;
    ELSE
    Aout<=(others=>'0');
    END IF;
    END PROCESS;
    ReadPortB:PROCESS(RBE,RBA)
    BEGIN
    IF (RBE='1') then
    if (RBA='1') then
    Bout<=RF(1);
    else Bout<=RF(0);
    end if;
    ELSE
    Bout<=(others=>'0');
    END IF;
    END PROCESS;
    END Behavioral;
    ------------------------------------------

  • #2
    @phidoigabay1: Bạn post code thì nên để trong tag code cho dễ đọc.

    Nguyên văn bởi phidoigabay1 Xem bài viết
    Em có viết đoạn code sau mô tả register files( em ko biết dịch là gì):
    có 1 đầu vào 8bit, 2 đầu ra 8bit, có 2 thanh ghi RF0va RF1
    Em dùng DXP 2004 để mô phỏng thì thấy RF0,RF1 chỉ có giá trị ?????
    Các pác giúp em xem có sai sót gì không
    Em chân thành cảm ơn

    --------------RegisterFile -2x8bit--------------------
    Code:
    lIBRARY  IEEE;
    USE  IEEE.STD_LOGIC_1164.ALL;
    ENTITY  regfile  IS  PORT(
       clk:IN  STD_LOGIC;
       WE:IN  STD_LOGIC;--write enable
       WA:IN  STD_LOGIC;--write andress
       input:IN  STD_LOGIC_VECTOR(7  DOWNTO  0);
       RAE:IN  STD_LOGIC;--read enable cổng A
       RAA:IN  STD_LOGIC;--read andress 
       RBE:IN  STD_LOGIC;--read enable Cổng B
       RBA:IN  STD_LOGIC;--read andress
       Aout,Bout:OUT  STD_LOGIC_VECTOR(7 DOWNTO  0));
    END  regfile;
    ARCHITECTURE Behavioral OF regfile IS
        SUBTYPE reg IS STD_LOGIC_VECTOR(7 DOWNTO 0);
        TYPE regArray IS array(0 TO 1) OF reg;
        SIGNAL RF:regArray ;
    BEGIN
    WritePort:PROCESS(clk)
       BEGIN
        IF (clk'EVENT AND clk='1') THEN
          IF (WE='1') THEN
            if (WA='1') then
            RF(1)<=input;
            else RF(0)<=input;
            end if;
          END IF;
        END IF;
       END PROCESS;
    ReadPortA:PROCESS(RAE,RAA)
      BEGIN
        IF (RAE='1') then
          if (RAA='1') then
          Aout<=RF(1);
          else Aout<=RF(0);
          end if;
        ELSE
         Aout<=(others=>'0');
        END IF;
      END PROCESS;
    ReadPortB:PROCESS(RBE,RBA)
    BEGIN
      IF (RBE='1') then
        if (RBA='1') then
        Bout<=RF(1);
        else Bout<=RF(0);
        end if;
      ELSE
       Bout<=(others=>'0');
      END IF;
     END PROCESS;
    END Behavioral;
    ------------------------------------------

    Comment

    Về tác giả

    Collapse

    phidoigabay1 Tìm hiểu thêm về phidoigabay1

    Bài viết mới nhất

    Collapse

    Đang tải...
    X