期待更广泛的 RTL 查看器

Expected a more extensive RTL Viewer

我合成了我的 VHDL 代码。当我看到 RTL 查看器时,我期待着另一个结果。我用 VHDL 代码构建了一个状态机(见下文)并得到了以下结果(见图片)。有些东西我在这里没有得到:

VHDL代码:

ENTITY state_machine IS
PORT (  clk: IN std_logic;
        reset: IN std_logic;
        X: IN BIT;
        Z: OUT BIT);
END state_machine;

--  Present State   Next State      Output
--                  X       !X
--                                  Z
--  S0              S0      S1      0
--  S1              S0      S11     0
--  S11             S110    S11     0
--  S110            S0      S1101   0
--  S1101           S0      S11     1

ARCHITECTURE behaviour OF state_machine IS
  TYPE states IS (S0, S1, S11, S110, S1101);    
  SIGNAL state : states;                        
BEGIN

next_state : PROCESS(reset, clk)    
BEGIN
    IF reset='0' THEN
        state <= S0;
    ELSIF rising_edge(clk) THEN
        CASE state IS
            WHEN S0 => 
                IF X='0' THEN 
                    state<=S1; 
                END IF;
            WHEN S1 => 
                IF X='0' THEN
                    state<=S11; 
                ELSE 
                    state<=S0;
                END IF;
            WHEN S11 => 
                IF X='0' THEN
                    state<=S11; 
                ELSE 
                    state<=S110;
                END IF;
            WHEN S110 => 
                IF X='0' THEN
                    state<=S1101; 
                ELSE 
                    state<=S0;
                END IF;
            WHEN S1101 => 
                IF X='0' THEN
                    state<=S11; 
                ELSE 
                    state<=S0;
                END IF;
        END CASE;
    END IF;
END PROCESS;

output:PROCESS(state)
BEGIN
    CASE state IS
        WHEN S0 => Z<='0';
        WHEN S1 => Z<='0';
        WHEN S11 => Z<='0';
        WHEN S110 => Z<='0';
        WHEN S1101 => Z<='1';
    END CASE;
END PROCESS;
END behaviour;

RTL 示意图:

查看器对常量使用 Verilog 表示法,Verilog 中的 1'h0 与 VHDL 中的 '0' 相同。

或门简单地命名为state~7,就像黄色框被命名为state一样。所以或门只是一个反相器,所以复位到 state 块是 not reset 用于外部复位输入。

带有状态机的设计的其余部分放在名为 state 的内部块中,因此如果您双击它,它可能会展开。 state 块上的 S1101 输出在状态 S1101 时被断言,因为只有那时 Z 输出 '1'.