Форум по Роботика
Технически форум => Програмиране => Темата е започната от: tommyboy в Март 18, 2009, 09:47:48 am
-
Някой младеж да се е занимавал с FPGA и по-точно с програмният език
Verilog HDL , компилатори и други неща свързани с тях . Ето и малко инфо http://bg.wikipedia.org/wiki/FPGA
-
:)
Малко наистина.
Във училище идваха преподаватели от техническия университет, говориха малко за българското VHDL общество, та ми се видя много интересно.
Смятам че си заслужава да му се обърне внимание и на това нещо в този форум
-
Да интерсни са имат предимства пред мцу-тата ама още са ми мъгла , намерих бая материал и сега ще се запознавам , лошото е че немогат да се намерят по магазините така както мцу-тата.
-
най-добре е да се свържем с така нареченото българско VHDL общество, те определено могат и имат желание да ни предоставят информация и евентуално чипове
-
Еми да може , аз него знам много това общество ,ако някой има връзки нека се свърже.
-
Здравей, може да се каже, че имам малко опит. Правил съм судику. Вход на данните по PS2 клавиатура и управление на монитор във VGA режим. Писано е на vHDL. Средата и компилатора са на Xilinx, а проца е Spartan3.
Това ми беше задачката по Машинно Проектиране на Интегрални Схеми (МПИС) (http://lark.tu-sofia.bg/asic/). На този линк ще намериш полезна информация. Ще научиш от къде да започнеш, има и доста примери.
Една развойна платка със Spartan3 е около 150лв., човек може да си я позлови, ако иска да се занимава.
Ако искаш ще ти пратя и моето судоку (не е направено да проверява дали е решено вярно).
-
Ехе човече ти си цяло злато мерси за инфото за сега това да асимилирам и после повече ;)
-
А може6 ли да ми кажет от каде да видя някой друга ел. схема с ФПГА 4е не6то немога да нямеря из тоя нет. ;)
-
FPGA представлява програмируема логика (масив от гейтове). Задачата на разработчика е чрез логически схеми или програмен код да опише как ще работи чипа. Така че ти чрез програмния код синтезираш хардуерна схема.
Свали и си инсталирай средата на xilinx (http://www.xilinx.com). Напиши една програма (в миналия пост има примерчета). Пускаш го и ще видиш от кода ти каква схема от логически елементи ще се получи.
Съвет: започни да четеш за vHDL (или Verilod което повече ти хареса). Запознай се със синтаксиса, разбери концепцията. След това започни да пишеш малки програмки (например реализирай логическите елементи, тригери, преместващ регистър). Пусни симулация наблюдавай сигналите. След това почни да четеш за FPGA и програмируемата логика. Отново се върни на vHDL-a. Всичко което не ти е било ясно, сега ще ти се изясни.
-
Да аз вече си свалих на xlinx компилатора, ако мога така да го нарека и симулирах брояч , но там само мога да гледам времедиаграми , а иначе някъв друг симулатор имали нещо като протеус . Защото аз мога само да гледам как примерно броячът брой , но ако искам да чете входни сигнали примерно от бутони . Малко ми е странно защото съм свикнал с микроконтролерите и пиша на асеблер , а това ми се струва че е на още по-ниско ниво програмирането говори се за синтез на отделни тригери .
-
...но там само мога да гледам времедиаграми...
Можеш да видиш и синтезиранта схема. В момента нямам инсталиран xilinx и не мога да ти кажа къде точно се цъка, но може.
...искам да чете входни сигнали...
Имаш дефинирано entity. Може да си го представиш като черна кутия на която си описал какви/колко входове и изходи има. Описал си и поведението и процесите на черната кутия. Следващата стъпка е да свържеш физическите изводи на чипа с виртуалните на черната кутия. Физичестките си имат етикети (някакво име). Свързването се описва в отделен файл с разширение ".ucf".
Формата на файла е следния:
NET "<име на извод от entity-то" LOC = "<етикет на извод от чипа>";
Пример (изписва F на 7 сегментна индикация): library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Letter is
Port ( LED : out std_logic_vector(6 downto 0));
end Letter;
architecture Behavioral of Letter is
begin
LED <= "0001110"; -- Изписва "F" на 7 сегментна индикация
end Behavioral;
.ucf файлаNET "LED<0>" LOC = "E14" ;
NET "LED<1>" LOC = "G13" ;
NET "LED<2>" LOC = "N15" ;
NET "LED<3>" LOC = "P15" ;
NET "LED<4>" LOC = "R16" ;
NET "LED<5>" LOC = "F13" ;
NET "LED<6>" LOC = "N16" ;
-
мерси , много мога да науча от теб но май е по- добре да седна да прочета не6то и после да питам пак ;) .