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; |