[vhdl] testbench wordt uitgevoerd in 0ps

Pagina: 1
Acties:

  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Topicstarter
Ik heb, om wat uit te proberen, een package gemaakt met daarin een 'en' component. Deze package laad ik in m'n vhd file en vervolgens port map ik het component vier keer. Tot slot laat ik er een korte testbench op los om te zien of het allemaal werkt. Er zit dus nergens een clk of reset in. Want:

uit my_package.vhd:
vhdl:
1
2
3
4
5
6
7
8
9
entity en is port(
  a,b : in  std_logic;
  f   : out std_logic);
end en;

architecture arch_en of en is
begin
  f <= '1' when (a = b) else '0';
end arch_en;


dan en_module.vhd:
vhdl:
1
2
3
4
5
6
7
8
architecture arch_en_module of en_module is
begin
  -- vier and poorten mappen via positional association
  u3: en port map (a(3), b(3), f(3));
  u2: en port map (a(2), b(2), f(2));
  u1: en port map (a(1), b(1), f(1));
  u0: en port map (a(0), b(0), f(0));
end arch_en_module;


en tot slot tb_en_module.vhd:
vhdl:
1
2
3
4
5
6
7
8
9
  tb_input: process
  begin
    a <= "0101";
    b <= "0100";
    wait for 10 ns;
    a <= "1001";
    b <= "0001";
    wait;
  end process;

Compileren en simuleren gaat vloeiend, totdat ik de wave.list wil openen (list.do bevat btw add list /* ). Deze geeft een division by zero. Open ik hem in kladblok dan zie ik het volgende:
code:
1
2
3
4
5
          ps delta    a    b    f
=================================
           0    +0 UUUU UUUU UUUU
           0    +1 0101 0100 1111
           0    +2 0101 0100 1110

Afgezien van dat f gek doet (?) is de tijd erg interessant; alles wordt in 0 ps uitgevoerd! Err... ik heb toch echt wait 10 ns; in de testbench staan. Wat doe ik fout? In eerdere testbenches die ik gemaakt heb werkte het wel :?

-edit-
Het is vreemd, maar als ik de testbench langer maak, dan werkt het wel :? Erg raar gedrag. In ieder geval doet het absoluut niet wat ik verwacht. Ondanks het feit dat er geen clk is, lijkt het me wel synthetiseerbaar. Dat zou logisch zijn, en di tools weet er mee te werken, en galaxy (warp) kan het in een device fitten (22v10). En toch gedraagt f zich erg vreemd.
Ik heb de bestanden even geupload, ze zijn hier te vinden:
mypackage.vhd
en_module.vhd
tb_en_module.vhd
(list.do -> add list /* )

Wat doe ik nu fout? :?

modje, kan titel gewijzigd worden? dank

[ Voor 31% gewijzigd door wacco op 20-01-2004 19:15 . Reden: code van package iets uitgebreid voor de duidelijkheid & vervolgje... ]

Spolap: Interactive webcomic