dlinyj: (Default)
[personal profile] dlinyj
ПЛИС (программируемая логическая интегральная схема) - это самое лучше, что могли изобрести на логике. Лучше всего про плис скажут на ВИКИПЕДИИ . Итак, ещё на прошлом СС я прзнакомился с культовой личностью - со SVO, который тогда сделал игру Понг на ПЛИС Тогда я ему намекнул, что хотел бы их изучать, но тогда так и не дошли руки. Год спустя, на этом СС SVO, как справедливо заметил [livejournal.com profile] f_andrey в коментах, сделал ещё эмулятор компьютера "Вектор-06Ц" http://code.google.com/p/vector06cc/. В этот раз я уже более конкретно сказал, что мне нехватает хорошего учителя, и мы уже более плотно обменялись контактами, и он мне прислал платку:


Чудо платка, с Altera MAX II (извиняюсь, за качество фотки)


Подробнее про платку можно поглядеть на официальном сайте: http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=39&No=215 (там и фотка лучшего качества). У платки есть только один недостаток - количество перепрошивок ограничено 100 (!!!!!) штуками. Это ОоооооооООооочень мало!!! (Даже я, который мало программирует, умудрился израсходовать ресурс EEPROM за день отладки, с 1000 циклами перезаписи!). В общем, сегодня интерактивно, по скайпу обучался программированию ПЛИС! В результате написали на VHDL простейший бегущий огонь:


Видео бегущего огонька


module new_very_log (CLOCK_50, KEY, LED);
input CLOCK_50;
input [3:0] KEY;
output reg [7:0] LED; //регистр светодиодов
reg [24:0] divctr; //регистр счётчик на 24 бит
wire reset_n = KEY[0];
wire led_ce = divctr[23:0] == 0;// Принимает значение истина, в остальное время ложь

always @(posedge CLOCK_50) begin
divctr <= divctr + 1'b1;
end

always @(posedge CLOCK_50) begin
if (~reset_n)
LED <= 'b1;
else
if (led_ce) LED <= {LED[0], LED[7:1]};//Крутим битик, циклически по кругу.
end

endmodule


Изящно, неправда ли? На асме было бы значительно больше.


Самый смак ПЛИС, который вводит меня в благовенный трепет, и полностью рушит мозг у обычных программистов, это то, что всё исполняется ОДНОВРЕМЕННО!!!! Вот где максимальный реализм, и многопоточность обработки данных. А вы говорите много ядер, контроллеры с большей частотой. ПЛИС спасёт мир :).

З.Ы. Ютуб тупорылая овца, гугл видео - быстро и просто. Перелил.

Date: 2008-11-09 01:21 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Коллега, вы либо не очень внимательноь читаете мой ЖЖ, либо данный пост :). Это делал как раз SVO, которого я и попросил меня научить ПЛИС. А сам вектор я пытался завесить, сделав ему на паскале переполнение памяти, но после двух часов войны с наикривейшим компилятором, я сдался. А асм ковырять было лень. К слову сказать, у меня сейчас на рабочем столе скриншот как раз вектор, нарисованный в 3-де графике :)

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 03:35 pm
Powered by Dreamwidth Studios