Forum: FPGA, VHDL & Co. Pin-Fehlermeldung beim DE0.


von Peter B. (funkheld)


Lesenswert?

Hallo, guten Tag.
Wer kennt bitte das DE0-Board ?

Es ist bei mir Cyclone III : EPC16F484C6

Es kommt diese Fehlermeldung:
Error (176310): Can't place multiple pins assigned to pin location 
Pin_K22 (IOPAD_X41_Y19_N14)
Info (176311): Pin blue_out[0] is assigned to pin location Pin_K22 
(IOPAD_X41_Y19_N14)
Info (176311): Pin ~ALTERA_nCEO~ is assigned to pin location Pin_K22 
(IOPAD_X41_Y19_N14)

Wenn ich die Demo laufen lassen von der DE0-CD mit VGA dann wird dieser 
Pin_K22 nicht angemeckert obwohl er im Pinpalner geschaltet ist.

Wird der hier irgendwie gebunden, das ich da nicht rankomme bzw den 
irgendwie freischalten muss?

Mit dem De1 läuft das Programm.

Danke.
Gruss
1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3
use ieee.numeric_std.ALL;
4
5
entity vga_timing1 is
6
port(
7
  clk50_in  : in std_logic;
8
  hs_out    : out std_logic;
9
  vs_out    : out std_logic;
10
  
11
  red_out   : OUT STD_LOGIC_VECTOR(3 downto 0);
12
  green_out : OUT STD_LOGIC_VECTOR(3 downto 0);
13
  blue_out  : OUT STD_LOGIC_VECTOR(3 downto 0)
14
  ); 
15
end vga_timing1;
16
17
architecture behavioral of vga_timing1 is
18
19
signal clk25    : std_logic:='0';
20
signal hcounter : integer := 0;
21
signal vcounter : integer := 0;
22
23
begin
24
25
process (clk50_in)
26
begin
27
  if rising_edge(clk50_in) then
28
    clk25 <= not clk25;
29
  end if;
30
end process;
31
32
process (clk25)
33
begin
34
  if rising_edge(clk50_in) then
35
    if vcounter<480 then
36
      if (hcounter >=  0 and hcounter < 160) then
37
        red_out<="1000";
38
      else
39
        red_out<="0000";
40
      end if;
41
      
42
      if (hcounter >= 160 and hcounter < 320) then
43
        green_out<="1000";
44
      else
45
        green_out<="0000";
46
      end if;
47
      
48
      if (hcounter >= 320 and hcounter < 480) then
49
        blue_out<="1000";
50
      else
51
        blue_out<="0000";
52
      end if;  
53
      
54
      if (hcounter >= 480 and hcounter < 640) then
55
        red_out<="1000";
56
        green_out<="1000";
57
        blue_out<="1000";
58
      end if;
59
    end if;
60
  end if;
61
end process;
62
63
process (clk25)
64
begin
65
  if rising_edge(clk25) then
66
    if hcounter >= (639+16) and hcounter <= (639+16+96) then
67
      hs_out <= '0';
68
    else
69
      hs_out <= '1';
70
    end if;
71
  
72
    if vcounter >= (479+10) and vcounter <= (479+10+2) then
73
      vs_out <= '0';
74
     else
75
      vs_out <= '1';
76
    end if;
77
  
78
--- horizontal counts from 0 to 799
79
    hcounter <= hcounter+1;
80
  
81
    if hcounter = 799 then
82
      vcounter <= vcounter+1;
83
      hcounter <= 0;
84
    end if;
85
  
86
--- vertical counts from 0 to 524
87
    if vcounter = 524 then 
88
      vcounter <= 0;
89
    end if;
90
  end if;
91
end process;
92
93
end behavioral;

von Michael (Gast)


Lesenswert?

Hallo Peter,

versuch es mal mit: Assignments > Device...

Dort "Device and Pin Options...", hier kann man jetzt
unter "Dual-Purpose Pins" die Eigenschaften der Pins
verändern.

Nur so eine Idee...

Viele Grüße,
Michael

von Peter B. (funkheld)


Lesenswert?

Jup danke.

Werde ich mal probieren.

Danke.
Gruss

von Peter B. (funkheld)


Lesenswert?

Diese 3 Zeilen habe ich immer wieder in der qsf gefunden.
Nachdem ich sie eingebunden hatte wenn ich den Pin_k22 Blue(0) benutze
kam keine Fehlermeldung mehr.

Kann man das irgendwie in QuartusII einstellen?

Danke.
Gruss

----------------------------------------------
set_global_assignment -name ENABLE_ADVANCED_IO_TIMING ON
set_global_assignment -name FORCE_CONFIGURATION_VCCIO ON
set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION 
"USE AS REGULAR IO"
-----------------------------------------------

von Ich (Gast)


Lesenswert?

Ja, siehe Michaels Post

von Peter B. (funkheld)


Lesenswert?

Habe es jetzt durch probieren mehrerer Häkchen hinbekommen.

Gruss

: Bearbeitet durch User
von Michael (Gast)


Lesenswert?

Hallo Peter,

es wäre jetzt noch schön für Andere die auch mal so einen
Fehler haben und eine Lösung suchen wenn Du jetzt noch verraten
kannst welche Häkchen Du gesetzt hast. Ich müsste hier auch erst
mal probieren.

Viele Grüße,
Michael

von Peter B. (funkheld)


Lesenswert?

Nur beim  DE0 unter Dual-Purpose Pins bei nCEO : "Use as regular I/O" 
reingesetzt.

Danach wurde fehlerfrei compiliert.

Gruss

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.