DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Звіт по Курсовій роботі з дисципліни: “Комп’ютерна схемотехніка: “Спеціалізований обчислювач”

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2014
Тип роботи:
Курсова робота
Предмет:
Комп’ютерна схемотехніка

Частина тексту файла (без зображень, графіків і формул):

Міністерствоосвіти і науки,молоді та спортуУкраїни Національнийуніверситет „Львівськаполітехніка” Кафедра ЕОМ / Звіт по Курсовій роботі з дисципліни: “Комп’ютерна схемотехніка: “Спеціалізований обчислювач” З А В Д А Н Н Я Розробити спеціалізований обчислювач, що має відповідати наступним вимогам : структурна схема обчислювача : мікропрограмний автомат Мілі; робоча формула : Yi = ( Xi * N) mod 216, де 9 ≤ i ≤ 15 ( значення N та i задаються керівником курсового проекта ); формат даних : 16 бітний беззнаковий двійковий код з фіксованою комою ( тобто коди від (0).0000 0000 0000 0000 до (0).1111 1111 1111 1111 ); інформаційний обмін здійснюється через паралельну 16-ти розрядну двонаправлену шину даних за допомогою додаткових сигналів синхронізації ( рівні сигналів сумісні з ТТЛ ); керуючий автомат реалізувати на основі ПЗП та регістра; напруга живлення та тактові імпульси надходять від зовнішнього джерела, а сигнал початкового скидання формується локально. Задана константа : A6CD16=1010 0110 1100 11012 Розробка та моделювання спеціалізованого обчислювача / Результати моделювання: Принципова схема:  VHDL – код складових обчислювача: RAM.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; entityramis port( CE : in STD_LOGIC; WE : in STD_LOGIC; OE : in STD_LOGIC; AD : in STD_LOGIC_VECTOR(10 downto 0); D : inout STD_LOGIC_VECTOR(7 downto 0) ); endram; architectureramoframis type MEM isarray(0 to 2047) of std_logic_vector (7 downto 0); begin PROCESS(AD, CE, OE, WE, D) TYPE ram_array IS ARRAY (0 TO 2047) OF BIT_VECTOR(7 DOWNTO 0); VARIABLE index : INTEGER := 0; VARIABLE ram_store : ram_array; BEGIN IF CE = '0' THEN index := 0; FOR i IN AD'RANGE LOOP IF AD(i) = '1' THEN index := index + 2**i; END IF; END LOOP; IF rising_edge(WE) THEN ram_store(index) := To_bitvector(D); ELSIF OE = '0' THEN D <= To_StdlogicVector(ram_store(index)); ELSE D <= "ZZZZZZZZ"; END IF; ELSE D <= "ZZZZZZZZ"; END IF; END PROCESS; endram; Buf.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; entityBuf is port( Dir : in STD_LOGIC; OE : in STD_LOGIC; A :inout STD_LOGIC_VECTOR(7 downto 0); B :inout STD_LOGIC_VECTOR(7 downto 0) ); endBuf; --}} End of automatically maintained section architectureBuf of Buf is begin A<=B when (OE = '0' and Dir = '0') else (others =>'Z'); B<=A when (OE = '0' and Dir = '1') else (others =>'Z'); endBuf; Reg.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; entity RG is port( CLK : in STD_LOGIC; CLR : in STD_LOGIC; DSR : in STD_LOGIC; DSL : in STD_LOGIC; S0 : in STD_LOGIC; S1 : in STD_LOGIC; D : in STD_LOGIC_VECTOR(7 downto 0); Q : out STD_LOGIC_VECTOR(7 downto 0) ); end RG; --}} End of automatically maintained section architecture RG of RG is SIGNAL INT_DAT :std_logic_vector (7 downto 0); SIGNAL S1_S0 :std_logic_vector (1 downto 0); begin Q<=INT_DAT; S1_S0 <= S1&S0; process (CLK, CLR) begin if CLR ='0' then INT_DAT<=(others =>'0') ; elsifrising_edge(CLK) then case S1_S0 is when "01" => INT_DAT <= INT_DAT (6 downto 0) & DSR; when "10" => INT_DAT <= DSL & INT_DAT(7 downto 1); when "11" => INT_DAT <= D; when others => end case; end if; end process ; end RG; Sum.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; useIEEE.STD_LOGIC_UNSIGNED.all; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Sum is port( C0 : in STD_LOGIC; A : in STD_LOGIC_VECTOR(3 downto 0); B : in STD_LOGIC_VECTOR(3 downto 0); C4 : out STD_LOGIC; P : out STD_LOGIC_VECTOR(3 downto 0) ); end Sum; --}} End of automatically maintained section architectureSum_arc of Sum is signaltmp: std_logic_vector(4 downto 0); begin tmp<= conv_std_logic_vector((conv_integer(A) + conv_integer(B) + conv_integer(C0)), 5); P <= tmp(3 downto 0); C4 <= tmp(4); endSum_arc; Counter.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity counter is port( L : in STD_LOGIC; -- вхідпопередньогозапису R : in STD_LOGIC; -- скидтригерів в "0" pr : in STD_LOGIC; -- вхід "прямийрахунок" zr : in STD_LOGIC; -- вхід "зворотнійрахунок" D : in STD_LOGIC_VECTOR(0 to 3); -- інформаційнівходи Q : out STD_LOGIC_VECTOR(0 to 3); -- інформаційнівиходи pp : out STD_LOGIC; -- вихід "прямий перенос" zp : out STD_LOGIC-- вихід "зворотнійперенос" ); end counter; architecture counter of counter is signal CNT_VAL: std_logic_vector(3 downto 0); begin Q<=CNT_VAL; process(L,R,pr,zr) begin pp<='0'; zp<='0'; ifpr'event and pr='0' then if R='1' then CNT_VAL<=(others=>'0'); else if L='0' then CNT_VAL<=D; else if L='1' then CNT_VAL<=CNT_VAL+1; if CNT_VAL="1111" then pp<='1'; end if; end if; end if; end if; end if; ifzr'event and zr='0' then if R='1' then CNT_VAL<=(others=>'0'); else if L='0' then CNT_VAL<=D; else if L='1' then CNT_VAL<=CNT_VAL-1; if CNT_VAL="0000" then zp<='1'; end if; end if; end if; end if; end if; end process; end counter; VHDL-код прошивки автомата library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.all; entityAvtis port( Clk : in STD_LOGIC; Res : in STD_LOGIC; load : in STD_LOGIC; We_RE : in STD_LOGIC; S : in STD_LOGIC_VECTOR(7 downto 0); O : out STD_LOGIC_VECTOR(23 downto 0); Mk : out STD_LOGIC_VECTOR(15 downto 0) ); endAvt; architectureAvtofAvtis signalst:integer;--ñòàíè àâòîìàòà signalbb :std_logic_vector(23 downto 0); begin process(CLK,Res) begin ifRes = '1' thenbb<= X"00473D"; elsif (CLK ='1' andCLK'event) then st<= CONV_INTEGER(S); casestis when 0 =>bb<= X"01C733"; when 1 =>bb<= X"02E613"; when 2 =>bb<= X"03E213"; when 3 =>bb<= X"04E613"; when 4=>bb<= X"05E71D"; when 5=>bb<= X"06E71F"; when 6=>bb<= X"07E61F"; when 7=>bb<= X"08E41F"; when 8=>bb<= X"09F61F"; when 9=>bb<= X"0AE71F"; when 10=>bb<= X"0BE71D"; when 11=>bb<= X"0cA719"; when 12=>bb<= X"0d371D"; when 13=>bb<= X"0e371F"; when 14=>bb<= X"0f361F"; when 15=>bb<= X"10E41F"; when 16=>bb<= X"11F61F"; when 17=>bb<= X"12E71D"; when 18=>bb<= X"13371F"; when 19=>bb<= X"14361F"; when 20=>bb<= X"15E41F"; when 21=>bb<= X"16F61F"; when 22=>bb<= X"17E71D"; when 23=>bb<= X"18A719"; when 24=>bb<= X"19371D"; when 25=>bb<= X"1aA719"; when 26=>bb<= X"1b371D"; when 27=>bb<= X"1c371F"; when 28=>bb<= X"1d361F"; when 29=>bb<= X"1eE41F"; when 30=>bb<= X"1fF61F"; when 31=>bb<= X"20E71D"; when 32=>bb<= X"21371F"; when 33=>bb<= X"22361F"; when 34=>bb<= X"23E41F"; when 35=>bb<= X"24F61F"; when 36=>bb<= X"25E71D"; when 37=>bb<= X"26A719"; when 38=>bb<= X"27371D"; when 39=>bb<= X"28371F"; when 40=>bb<= X"29361F"; when 41=>bb<= X"2aE41F"; when 42=>bb<= X"2bF61F"; when 43=>bb<= X"2cE71D"; when 44=>bb<= X"2d371F"; when 45=>bb<= X"2e361F"; when 46=>bb<= X"2fE41F"; when 47=>bb<= X"30F61F"; when 48=>bb<= X"31E71D"; when 49=>bb<= X"32A719"; when 50=>bb<= X"33371D"; when 51=>bb<= X"34A719"; when 52=>bb<= X"35371D"; when 53=>bb<= X"36371F"; when 54=>bb<= X"37361F"; when 55=>bb<= X"38E41F"; when 56=>bb<= X"39F61F"; when 57=>bb<= X"3aE71D"; when 58=>bb<= X"3bA719"; when 59=>bb<= X"3c371D"; when 60=>bb<= X"3d371F"; when 61=>bb<= X"3e361F"; when 62=>bb<= X"3fE41F"; when 63=>bb<= X"40F615"; when 64=>bb<= X"41E715"; whenothers =>bb<= X"000000"; END CASE; endif; O<=bb; END PROCESS; endAvt;
Антиботан аватар за замовчуванням

04.06.2014 22:15

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!