-
11. Data: 2011-05-29 04:14:27
Temat: Re: VHDL - typy. Problem :(
Od: Piotr <b...@b...pl>
W dniu 2011-05-28 10:38, Michoo pisze:
> W dniu 27.05.2011 18:08, Piotr pisze:
>> Dziękuję. Już sobie poradziłem z tym problemem. Błąd leżał w zakresie
>> integer'a. Nie może być tak, że łącze wyjsce vectorowe z wejściem
>> integer i integer ma mniejszy zakres niż można zapisać na vectorze i
>> odwrotnie.
> Namieszałeś:
Nie chodzilo mi o to, zeby polaczyc tak "bezposrednio". Dalej niestety
nie wiem czemu to nie dziala. Nie zamieszczam calego kodu. Tylko to co
jest zle. :(
entity IntegerNaVector is port (
we: in integer range 128 downto -127;
wy: out std_logic_vector(7 downto 0));
end entity IntegerNaVector;
W procesie w architecture mam:
wy <= std_logic_vector(conv_signed(we, 8)); -- zle :(
Nie udalo mi sie tego w zaden sposob ominac. Port "we" na schemacie
graficznym ma bity 0:6 - czyli 7 bitów. Nie wiem dlaczego tak jest. :(
Przeciez to jest 256 wartosci. :(
Pozdrawiam
Piotr
-
12. Data: 2011-05-29 15:10:54
Temat: Re: VHDL - typy. Problem :(
Od: Konop <k...@g...pl>
W dniu 2011.05.29 06:14, Piotr pisze:
> W dniu 2011-05-28 10:38, Michoo pisze:
>> W dniu 27.05.2011 18:08, Piotr pisze:
>>> Dziękuję. Już sobie poradziłem z tym problemem. Błąd leżał w zakresie
>>> integer'a. Nie może być tak, że łącze wyjsce vectorowe z wejściem
>>> integer i integer ma mniejszy zakres niż można zapisać na vectorze i
>>> odwrotnie.
>> Namieszałeś:
>
>
> Nie chodzilo mi o to, zeby polaczyc tak "bezposrednio". Dalej niestety
> nie wiem czemu to nie dziala. Nie zamieszczam calego kodu. Tylko to co
> jest zle. :(
>
> entity IntegerNaVector is port (
> we: in integer range 128 downto -127;
> wy: out std_logic_vector(7 downto 0));
> end entity IntegerNaVector;
>
> W procesie w architecture mam:
>
> wy <= std_logic_vector(conv_signed(we, 8)); -- zle :(
>
>
>
> Nie udalo mi sie tego w zaden sposob ominac. Port "we" na schemacie
> graficznym ma bity 0:6 - czyli 7 bitów. Nie wiem dlaczego tak jest. :(
> Przeciez to jest 256 wartosci. :(
Tak naprawdę, to jest to 255 wartości, ale w typowym zapisie U2, to to
będzie 9 bitów :)... powinieneś dać 127 downto -128. Choć oczywiście to
nie wyjaśnia ani nie rozwiązuje problemu. W tym Ci nie pomogę, bo to
powód, dla którego przestałem lubieć VHDLa na rzecz Veriloga ;)...
--
Pozdrawiam
Konop
-
13. Data: 2011-06-11 21:32:39
Temat: Re: VHDL - typy. Problem :(
Od: "j...@g...com" <j...@g...com>
On 29 Maj, 06:14, Piotr <b...@b...pl> wrote:
> W dniu 2011-05-28 10:38, Michoo pisze:
>
> > W dniu 27.05.2011 18:08, Piotr pisze:
> >> Dziękuję. Już sobie poradziłem z tym problemem. Błąd leżał w zakresie
> >> integer'a. Nie może być tak, że łącze wyjsce vectorowe z wejściem
> >> integer i integer ma mniejszy zakres niż można zapisać na vectorze i
> >> odwrotnie.
> > Namieszałeś:
>
> Nie chodzilo mi o to, zeby polaczyc tak "bezposrednio". Dalej niestety
> nie wiem czemu to nie dziala. Nie zamieszczam calego kodu. Tylko to co
> jest zle. :(
>
> entity IntegerNaVector is port (
> we: in integer range 128 downto -127;
> wy: out std_logic_vector(7 downto 0));
> end entity IntegerNaVector;
>
> W procesie w architecture mam:
>
> wy <= std_logic_vector(conv_signed(we, 8)); -- zle :(
>
> Nie udalo mi sie tego w zaden sposob ominac. Port "we" na schemacie
> graficznym ma bity 0:6 - czyli 7 bitów. Nie wiem dlaczego tak jest. :(
> Przeciez to jest 256 wartosci. :(
>
Tutaj przydałby się cały kod tego modułu.
Nie wiemy jakie biblioteki dołączyłeś - signed | unsigned?
No i tak jak kolega Konop napisał 128 w U2 to jest liczba 9-bitowa :)
Poza tym zachęcam w definicji portów do używania typów std_logic,
ewentualnie record lub array ale składających się z std_logic,
wszelkie konwersje wewnątrz komponentów!!! Nie utrudniajmy pracy
syntezerom.
Pozdrawiam,
Jerzy Gbur