Fpga Kuechle wrote:
> Hm, es ist nicht unüblich das locked signal als reset zu verwenden.
> (1)Vielleicht verwendest du den reset synchron aber erzeugst ihn
> asynchron (Locked könnte asynchron sein) und dann passiert das.
Nein, der Reset wird in allen Prozessen ausschliesslich asynchron
verwendet. Eine synchrone Verwendung ist ausgeschlossen. Alle meine
Prozesse fangen so an:
1 | clk_108MHz_cnt : process (clk_108MHz_s, rst_108MHz_s)
|
2 | begin -- process 108MHz_cnt
|
3 | if rst_108MHz_s = '0' then -- asynchronous reset (active low)
|
4 | clk_108MHz_cnt_addr <= (others => '0');
|
5 | elsif clk_108MHz_s'event and clk_108MHz_s = '1' then -- rising clock edge
|
6 | ...
|
7 |
|
8 | end process clk_108MHz_cnt;
|
>
> (2) warum bastelt das tool inverter in den resetpfad?
Gute Frage. Kann man das abstellen? Ist das eine Fehlerursache?
>
> (3) du kannst statt
>
>
1 | > rst_s <= '0' when locked_s = '0' else '1';
|
2 | >
|
>
>
> natürlich auch
>
>
Hab ich probiert. Leider ändert das nichts an der Fehlermeldung von ISE.
>
> schreiben, falls die typen passen.
>
> (4) Legst du locked_s auch auf ein Ausgangspin des FPGA? vielleicht kann
> er das nicht routen. Lass das output-pad testhalber weg.
Ja, das Output Pad wird in dem VHDL Modell instantiiert dass von Xilinx
bereitgestellt wird.
1 | lckpad : OBUF port map (
|
2 | I => LOCKED4X_dll,
|
3 | O => LOCKED);
|
Ich hab die Zeilen mal auskommentiert und durch folgendes ersetzt:
Jetzt tut's. Mir stellt sich aber die Frage, ob der OBUF da nicht ne
feste Bedeutung hatte. Die fügen das Teil da ja nicht umsonst ein. Oder
ist das nur für den Fall vorgesehen, dass jemand den DLL Block nutzt, um
den verdoppelten Takt auf einen Pin zu mappen und das LOCKED signal
ebenso.
Gruß und gute N8,
Hendrik