Hallo,
ich moechte in VHDL eine digitalen Gleichrichter bauen. Also Daten
kommen vom ADC und ich moechte negative Werte in Positive umwandeln.
Falls es wichtig ist, die Daten wurden mit 40MSPS abgetastet.
Dazu habe ich mir erstmal einen Zaehler gebaut, der auch soweit
funktionierte. Ich konnte die Werte an den Pins abgreifen.
Nun wollte ich ein Modul zwischen den Ausgaengen des Zaehlers und den
Ausgaengen des FPGAs schalten, was nicht funktioniert. Ich denke, dass
das was mit den Signaltypen zu tun hat, weiss aber nicht genau was.
Hier ads Gleichrichtermodul:
1 | library ieee;
|
2 | use ieee.std_logic_1164.all;
|
3 | use ieee.numeric_std.all;
|
4 |
|
5 | entity rect is
|
6 | port
|
7 | (
|
8 | A : in signed(15 downto 0);
|
9 | Y2 : out signed(15 downto 0)
|
10 | );
|
11 | end rect;
|
12 |
|
13 | architecture BEHAVIOR of rect is
|
14 |
|
15 | begin
|
16 |
|
17 | process (A) is
|
18 |
|
19 | begin
|
20 | Y2 <= abs(A);
|
21 | end process;
|
22 |
|
23 | end BEHAVIOR;
|
Und hier das Toplevelmodul:
1 | library IEEE;
|
2 | use ieee.std_logic_1164.all;
|
3 | use ieee.std_logic_unsigned.all;
|
4 | use ieee.numeric_std.all;
|
5 |
|
6 | entity TOP is
|
7 | port(
|
8 | CLK : in std_logic;
|
9 | CNTOUT : out std_logic_vector(15 downto 0)
|
10 | );
|
11 | end TOP;
|
12 |
|
13 | architecture STRUCTURE of TOP is
|
14 |
|
15 | signal S : std_logic_vector(15 downto 0);
|
16 |
|
17 | component COUNTER
|
18 | port
|
19 | (
|
20 | CLK : in std_logic;
|
21 | Y1 : out std_logic_vector(15 downto 0)
|
22 | );
|
23 | end component;
|
24 |
|
25 | component rect
|
26 | port
|
27 | (
|
28 | A : in signed(15 downto 0);
|
29 | Y2 : out signed(15 downto 0)
|
30 | );
|
31 | end component;
|
32 |
|
33 | begin
|
34 | COUNTER1 : COUNTER port map (CLK => CLK, Y1 => S);
|
35 | rect : rect port map (std_logic_vector(A) => S, std_logic_vector(Y2) => CNTOUT);
|
36 |
|
37 | end STRUCTURE;
|
Fehlermeldungen sind Folgende:
ERROR -
C:/AllMyFiles/LatticeDiamondProjects/Counter_Test02/TOP.vhd(35,1-35,5)
(VHDL-1223) rect is already declared in this region
ERROR -
C:/AllMyFiles/LatticeDiamondProjects/Counter_Test02/TOP.vhd(35,24-35,48)
(VHDL-1340) input designator a cannot contain a formal type-conversion
ERROR -
C:/AllMyFiles/LatticeDiamondProjects/Counter_Test02/TOP.vhd(13,1-37,15)
(VHDL-1284) unit structure ignored due to previous errors