Hallo!
Wenn ich einen getakteten Prozess erstelle, dann erzeugt mir Xilinx ISE
für alle out Ports meiner Entity immer D-FF.
Dieses Beispiel verdeutlicht dies:
Ich würde gerne folgendes haben: FF für i ==> kombinatorische Logik ==>
Output auf ValOut
Xilinx ISE erzeugt mir aber folgendes:
FF für i ==> kombinatorische Logik ==> FF ==> Output auf ValOut
Mir ist klar, warum hier ein extra FF angelegt wird, jedoch stehe ich
irgendwie auf dem Schlauch und finde keine Möglichkeit diese extra FF zu
eliminieren.
1 | entity x is
|
2 | Port ( Clk : in STD_LOGIC;
|
3 | Reset : in STD_LOGIC;
|
4 | ValOut : out STD_LOGIC_VECTOR(3 downto 0)
|
5 | );
|
6 | end x;
|
7 |
|
8 | architecture Behavioral of x is
|
9 |
|
10 | signal i : integer range 0 to 2;
|
11 |
|
12 | begin
|
13 |
|
14 | process(Clk, Reset) is
|
15 | begin
|
16 | if Reset = '1' then
|
17 | i <= 0;
|
18 | elsif rising_edge(clk) then
|
19 | case i is
|
20 | when 0 => ValOut <= b"1011";
|
21 | when 1 => ValOut <= b"0101";
|
22 | when 2 => ValOut <= b"1101";
|
23 | when others => ValOut <= (others => 'X');
|
24 | end case;
|
25 |
|
26 | if i = 3 then
|
27 | i <= 0;
|
28 | else
|
29 | i <= i + 1;
|
30 | end if;
|
31 |
|
32 | end if;
|
33 | end process;
|
34 |
|
35 | end Behavioral;
|
Danke für eure Hilfe.