-
Data: 2015-05-24 02:37:07
Temat: Jeszcze raz VHDL - problem ze zwięzłym zapisem
Od: s...@g...com szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Problem jest w zasadzie rozwinięciem poprzedniego wątkaDo rzeczy, układ ma obliczać
coś takiego: C=|R(0)+...+R(15)-R(16)-....-R(31)|, gdzie C,R(i)-liczby 11 bitowe bez
znaku. R(i) są to kolejne sekcje rejestru posuwnego, w którym na pierwszą sekcję jest
podawana 11 bitowa liczba "A" (bez znaku). Układ działa poprawnie zarówno na
symulatorze jak i na żywym organiźmie. Wszystkie operacje +/- zrobiłem krok po kroku.
A co gdybym miał pierdyljon sekcji rejestru posuwnego?
Jak to zwięźlej zapisać? Kod wygląda tak:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
library UNISIM;
use UNISIM.VComponents.all;
entity amod is
Port ( A : in STD_LOGIC_VECTOR (10 downto 0);
CLK : in STD_LOGIC;
C : out STD_LOGIC_VECTOR (10 downto 0));
end amod;
architecture Behavioral of amod is
type Shift_Register_Type is array (31 downto 0) of std_logic_vector(10 downto 0);
signal Cs:std_logic_vector(14 downto 0):="000000000000000";
signal Rejestr:Shift_Register_Type;
begin
process(CLK)
begin
if rising_edge(CLK) then
Rejestr<=Rejestr(30 downto 0)&A;
Cs<=std_logic_vector(to_unsigned(abs(to_integer(sign
ed('0'&Rejestr(0)))+
to_integer(signed('0'&Rejestr(1)))+
to_integer(signed('0'&Rejestr(2)))+
to_integer(signed('0'&Rejestr(3)))+
to_integer(signed('0'&Rejestr(4)))+
to_integer(signed('0'&Rejestr(5)))+
to_integer(signed('0'&Rejestr(6)))+
to_integer(signed('0'&Rejestr(7)))+
to_integer(signed('0'&Rejestr(8)))+
to_integer(signed('0'&Rejestr(9)))+
to_integer(signed('0'&Rejestr(10)))+
to_integer(signed('0'&Rejestr(11)))+
to_integer(signed('0'&Rejestr(12)))+
to_integer(signed('0'&Rejestr(13)))+
to_integer(signed('0'&Rejestr(14)))+
to_integer(signed('0'&Rejestr(15)))-
to_integer(signed('0'&Rejestr(16)))-
to_integer(signed('0'&Rejestr(17)))-
to_integer(signed('0'&Rejestr(18)))-
to_integer(signed('0'&Rejestr(19)))-
to_integer(signed('0'&Rejestr(20)))-
to_integer(signed('0'&Rejestr(21)))-
to_integer(signed('0'&Rejestr(22)))-
to_integer(signed('0'&Rejestr(23)))-
to_integer(signed('0'&Rejestr(24)))-
to_integer(signed('0'&Rejestr(25)))-
to_integer(signed('0'&Rejestr(26)))-
to_integer(signed('0'&Rejestr(27)))-
to_integer(signed('0'&Rejestr(28)))-
to_integer(signed('0'&Rejestr(29)))-
to_integer(signed('0'&Rejestr(30)))-
to_integer(signed('0'&Rejestr(31)))),15));
end if;
end process;
C<=Cs(14 downto 4);
end Behavioral;
Następne wpisy z tego wątku
- 24.05.15 22:38 Jakub Rakus
- 24.05.15 23:34 s...@g...com
- 25.05.15 21:52 Jakub Rakus
- 25.05.15 23:27 s...@g...com
- 26.05.15 10:36 J.F.
- 27.05.15 08:48 s...@g...com
- 27.05.15 10:40 J.F.
- 27.05.15 11:55 s...@g...com
- 27.05.15 12:09 J.F.
- 27.05.15 17:26 s...@g...com
- 27.05.15 17:40 J.F.
- 27.05.15 19:29 s...@g...com
- 29.05.15 12:48 s...@g...com
- 29.05.15 13:39 J.F.
- 29.05.15 22:23 s...@g...com
Najnowsze wątki z tej grupy
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
- Dziwny schemat wzmacniacza m.cz.
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- CGNAT i ewentualne problemy
- wzmacniacz mocy
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- Propagation velocity v/c dla kabli RF
- Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- Czujnik nacisku
- Protoków komunikacyjny do urządzenia pomiarowego
- Hiszpania bez pradu
- amperomierz w plusie
Najnowsze wątki
- 2025-06-13 Wrocław => Controlling systems Consultant <=
- 2025-06-13 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-06-13 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-06-13 WŁAŚCIWA procedura reakcji na błędy/"błędy" (pojedynczych) komisji wyborczych [Bodnar v. 9 komisji]
- 2025-06-12 Zwolnić i zaorać odlewnię Chemar w Kielcach
- 2025-06-11 Internet w Azji
- 2025-06-12 parkowanie Wroclaw
- 2025-06-12 Warszawa => Junior Rekruter <=
- 2025-06-12 Warszawa => MENA New Business Manager <=
- 2025-06-12 Kraków => PHP Developer (Full Stack) <=
- 2025-06-12 Gdańsk => Team Lead Data Engineer (Snowflake) <=
- 2025-06-11 Warszawa => C Programmer <=
- 2025-06-11 Poznań => Senior Key Account Manager IT <=
- 2025-06-11 Warszawa => Developer Microsoft Dynamics 365 Finance & Operations (D36
- 2025-06-11 Warszawa => Programista Microsoft Dynamics 365 Finance & Operations (D