Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   ПЛИС и всё что с ними связано (http://zx-pk.ru/showthread.php?t=9342)

solegstar 17th June 2014 20:56

Quote:

Originally Posted by Tronix (Post 717846)
У меня не хватает пинов Как можно заюзать пины, которые для программирования нужны? Отключить JTAG в настройках Device? Если я их использую, смогу я потом прошиться то по новой или уже все, досвидос?

а сколько не хватает? вроде если задействуешь пины для программирования, то jtag будет не доступен. возможно будет доступен режим высоковольтного программирования, если конечно он есть в этой серии...

Tronix 17th June 2014 21:04

2 пина не хватает :(

solegstar 17th June 2014 21:18

Tronix, думаю reset можно проинвертировать и внешними элементами. он же в прошиве не используется?

Tronix 17th June 2014 21:27

Quote:

Originally Posted by solegstar (Post 717859)
Tronix, думаю reset можно проинвертировать и внешними элементами. он же в прошиве не используется?

Не используется. Ну RESET можно и транзистором инвертнуть, в принципе. Но нужен еще 1 пин :(

solegstar 17th June 2014 21:28

Quote:

Originally Posted by Tronix (Post 717861)
Не используется. Ну RESET можно и транзистором инвертнуть, в принципе. Но нужен еще 1 пин :(

да, но ведь если ресет убрать из прошивы, то освободятся как раз два пина. или тебе еще к этим двум нужен еще один???

Tronix 17th June 2014 21:37

Quote:

Originally Posted by solegstar (Post 717862)
да, но ведь если ресет убрать из прошивы, то освободятся как раз два пина. или тебе еще к этим двум нужен еще один???

Точно, это я просто из двух один не смог вычесть. Затупил, бывает -)
Но все-таки интересно, можно ли юзать пины
а) Ded. input (dedicated input?), Global Clock
б) Пины для программирования TDI/TMS/TDO/TCK
?

Вот вариант А - это ваще для чего надо? Пытался на них повесить output - ругается при компиляции:
Quote:

Error: Node "RESET" assigned to PIN_2 is a dedicated input pin, but you cannot assign an output/bidir pin, input register, or macrocell to a dedicated input pin

lisica 17th June 2014 23:28

Quote:

Originally Posted by Tronix (Post 717867)
Пытался на них повесить output

Оно только на IN

TSL 18th June 2014 09:10

У меня была мамка с ЛПТ 3.3В. С нее я использовал джтаг без 245. Но в общем случае - преобразователь уровней ставить обязательно.

Tronix 18th June 2014 09:23

Quote:

Originally Posted by TSL (Post 717926)
У меня была мамка с ЛПТ 3.3В. С нее я использовал джтаг без 245. Но в общем случае - преобразователь уровней ставить обязательно.

АП5 (74hc244) - это буфер ващето, а не преобразователь уровней.

TSL 18th June 2014 09:28

Да ну, really? :)

Ewgeny7 18th June 2014 10:10

Quote:

Originally Posted by Tronix (Post 717867)
Но все-таки интересно, можно ли юзать пины
а) Ded. input (dedicated input?), Global Clock
б) Пины для программирования TDI/TMS/TDO/TCK

Global Clock - только вход. У него есть своя особенность, "сетка" его магистралей проходит по всему кристаллу, поэтому его настоятельно рекомендуют использовать как вход тактовой, которая используется для большей части проекта. Время прохождения сигнала - минимально, синхронность работы получается лучше, чем использовать обычный вход и гнать тактовый сигнал через ячейки/магистрали.
Если в проекте используется, к примеру, сигнал записи в кучу триггеров-регистров, то это применение будет самое то.
Но вполне можно использовать и как самый обычный вход.
Аналогично используется и Glоbal Reset.
Использовать пины JTAG - дело личное, но... лучше не трогать. Один хрен, потом понадобится что-то поправить, а поезд уехал. Перешить чип пятью проводками не удастся.

SpecialistMK87 18th June 2014 10:52

буфер ставят чтобы не спалить LPT,
пины JTAG даже в голову не приходило использовать. Кстати, на приведенной схеме дешифраторы 74.... рекомендую заменить на одну мегафункцию decoder, это и Altera рекомендует. Работать будет быстрее, меньше места займет на кристалле, и схема будет красивее выглядеть

Tronix 18th June 2014 11:11

Quote:

Originally Posted by Ewgeny7 (Post 717942)
Использовать пины JTAG - дело личное, но... лучше не трогать. Один хрен, потом понадобится что-то поправить, а поезд уехал. Перешить чип пятью проводками не удастся.

А чем удастся? Чем и как шьют чипы, у которых ноги JTAG были использованы в проекте под собственные нужды?

PS: Спасибо за развернутый ответ.

Ewgeny7 18th June 2014 11:28

Quote:

Originally Posted by Tronix (Post 717975)
А чем удастся? Чем и как шьют чипы, у которых ноги JTAG были использованы в проекте под собственные нужды?

PS: Спасибо за развернутый ответ.

Тут лучше бы ответил Микка_А, но он сюда почти не заходит.
При отключенных пинах ISP чипы можно перешить с помощью параллельного программатора. Они есть, как правило, у дилеров, торгующих плисами. В Питере такой программатор есть у "ЭФО", например. Более точно суть я описать не могу, не знаю...
Схем в инете не валяется, можно сделать вывод, что там или всё жутко сложно, или не менее жутко секретно. В общем, нафиг....

---------- Post added at 10:28 ---------- Previous post was at 10:23 ----------

Чуть отступлю от темы - заказывал на алиэкспрессе недавно EPM3064ATC44.
Пришли быстренько, и цена очень неплохая, по 49рэ. Ножки паябельны для начинающих, пригодны для ЛУТа.

Tronix 18th June 2014 12:15

А вообще нужно было брать PLCC84, хоть и дороже. Я бы тогда туда весь контроллер зафигачил, а так приходится регистры-защелки вынести в обычные 555ИР33 (3 штуки). Мало ног :( Кстати, всего 9 ячеек получилось занято. Я бы в 32 точно бы уложился, при таком раскладе.

И еще вопрос - а можно где-то посмотреть, как выглядит получившиеся схема "в целом", то есть как 74138 раскладывается на отдельные элементы и как все связывается. То есть как бы общую схематику после прохода компилятора? Или как она в VHDL преобразуется..
А то я только свою схему вижу, а вдруг у меня сигнал CS не соединяется с CS после дешифратора? Может я в CS русскую С поставил вместо латинской C?

SpecialistMK87 18th June 2014 13:32

я обычно все схемы на симуляторе встроенном прогоняю, там рисуешь времянку входных сигналов и смотришь расчетные осциллограммы выходных, ошибки быстро находятся

Tronix 18th June 2014 14:30

Quote:

Originally Posted by SpecialistMK87 (Post 718031)
я обычно все схемы на симуляторе встроенном прогоняю, там рисуешь времянку входных сигналов и смотришь расчетные осциллограммы выходных, ошибки быстро находятся

А где это? Я чет не могу найти... У меня квартус 9.1 sp2 WEB edition, без лицензий... Крякать надо?

Ewgeny7 18th June 2014 15:25

Там есть RTL Viewer, в нем отображается реальная картина соединений.
По какому-нибудь сигналу кликни правой мышкой, в меню выбрать RTL...

SpecialistMK87 18th June 2014 16:11

Quote:

Originally Posted by Tronix (Post 718052)
А где это? Я чет не могу найти... У меня квартус 9.1 sp2 WEB edition, без лицензий... Крякать надо?

крякать скорее всего не надо,
схема рисуется в редакторе схем, надо искать как переключиться в Simulator,
я Quartus'oм пользовался в режиме пользовательского интерфейса Max Plus, там несколько больших кнопок было, в том числе и вызов симулятора

lisica 18th June 2014 22:01

Quote:

Originally Posted by SpecialistMK87 (Post 718086)
крякать скорее всего не надо,

Надо, без кряка компилить будит, но pof не запишет.

Tronix 21st June 2014 21:08

Хм... Распаял байтбластер на 1533АП5. То определяет, то определяет не правильно, то не определяет вообще. Ставлю блокировочный кондер 0,1мкф рядом с 1533АП5 - не определяет вообще никогда. Мистика какая-то.

Mick 21st June 2014 21:23

Quote:

Originally Posted by Tronix (Post 718997)
Хм... Распаял байтбластер на 1533АП5. То определяет, то определяет не правильно, то не определяет вообще. Ставлю блокировочный кондер 0,1мкф рядом с 1533АП5 - не определяет вообще никогда. Мистика какая-то.

Рекомендуют вообще-то ставить не 1533АП5 а импорт типа 74HC244.
И кстати у тебя ноутбук c LPT или стационарный системник. Просто у ноутбуков LPT какой то недоделанный, бластеры там видятся через раз, а то и вообще не видятся.

Tronix 21st June 2014 21:58

Quote:

Originally Posted by Mick (Post 718998)
Рекомендуют вообще-то ставить не 1533АП5 а импорт типа 74HC244.
И кстати у тебя ноутбук c LPT или стационарный системник. Просто у ноутбуков LPT какой то недоделанный, бластеры там видятся через раз, а то и вообще не видятся.

Заменил на 555АП5 - все сразу поехало как по маслу. Зашился нормально без проблем. Мож 1533АП была не исправна, а мож нельзя ее ставить просто. В любом случае я ее уже не проверю, ибо расколол на две части когда выпаивал. Ну да и туда ей и дорога, из-за нее столько времени убил впустую :)

Комп - да, ноутбук, но на LPT у него я не жаловался. Например, на нем нормально работает Willem, LPT-AY, программатор РТ4-РТ5 и прочие самоделкины. С портом все нормально.

Tronix 22nd June 2014 14:38

Хых, распаял ПЗУ на IDE контроллер, работает. Альтера нормально дешифрует адрес. Теперь запаяю регистры и можно хард пробовать подцепить...

solegstar 22nd June 2014 15:30

Quote:

Originally Posted by Tronix (Post 718007)
А вообще нужно было брать PLCC84, хоть и дороже. Я бы тогда туда весь контроллер зафигачил, а так приходится регистры-защелки вынести в обычные 555ИР33 (3 штуки).

поверь - это не минус, а наоборот плюс - развязка с винтом. нагрузочная способность шин плисины очень маленькая. я, да и все остальные тоже, допустим специально оставил буферы на контроллер винта, когда разводил новый верх Профи 5.06. если 1533 серия не справляется с шлейфом IDE, что приходится ставить 555 серию, чтобы его прокачала, то что можно говорить о 3.3В выходах плисины. посмотри схему ZX-EVO. там тоже стоят буферы. в конце-концов если будет какая-то бяка на шине винта, то выгорит буфер за копейки, а не плисина.

Tronix 22nd June 2014 16:45

Quote:

Originally Posted by solegstar (Post 719153)
поверь - это не минус, а наоборот плюс - развязка с винтом. нагрузочная способность шин плисины очень маленькая. я, да и все остальные тоже, допустим специально оставил буферы на контроллер винта, когда разводил новый верх Профи 5.06. если 1533 серия не справляется с шлейфом IDE, что приходится ставить 555 серию, чтобы его прокачала, то что можно говорить о 3.3В выходах плисины. посмотри схему ZX-EVO. там тоже стоят буферы. в конце-концов если будет какая-то бяка на шине винта, то выгорит буфер за копейки, а не плисина.

Ну, во-первых я делаю на EPM7064S, поэтому сигналы у меня все-таки пяти вольтовые (надеюсь), ибо питаю ее от 5V.

Во-вторых, как тогда у пацанов на Xilix 3.3v XC9572XL 100pin работает? Ведь работает же как-то...

Ewgeny7 22nd June 2014 21:40

Да будет она работать без буферов, но... Держи про запас вторую плисину...
Лучше в таком случае прицеплять не винт, а CF-карту. С ней будет спокойней.

Tronix 25th June 2014 09:23

1 Attachment(s)
В общем спаял кое-как. Не работает. Точнее, так:
На XT 8088: когда винт стоит мастером - не определяет никогда. Когда винт стоит слейвом - иногда нормально детектит его (пишет правильно модель и отдает нормальные параметры), обнаруживает Boot sector, но после небольшой паузы либо Error loading operation system, либо, чаще - Non system disk or disk error, press any key for reboot... Хотя диск загрузочный, на нем установлена DOS 5.0. Пробовал два харда разных моделей. Поведение примерно одинаковое: мастером - нет детекта совсем, слейвом иногда детект, но на этом все.

На первопневой матери с iP233 MMX на борту: работает как часы o_O Хошь мастер хошь слейв, читает, пишет, DOS загружает, ну, прям как по маслу.

Мистика какая-то. Замучился уже... Ведь на IDE все (абсолютно все) сигналы идут через регистры ИР33 (у меня 74HC573). Альтера рулит только выбором микросхем (CS), выбором драйва мастер/слейв.. Че ей надо блин.

solegstar 25th June 2014 10:58

Tronix, попробуй поменять на LS (555) серию буферы. на древней мультяхе стоят именно они - http://zx-pk.ru/showthread.php?t=21356&page=7 . возможно с питанием проблемы, может на хт оно занижено?

Tronix 25th June 2014 11:57

Самый прикол, что я тоже думал про питание... Но я пробовал и пень и XT запускать от одного и того-же блока питания. На пне - работает, на XT - нет. Правда тестером я не мерял, но на ISA по идее же должно +5V сразу с БП идти.... Померю тестором, но сомневаюсь что от одного и того же БП могут быть разные напряжения по +5V

---------- Post added at 10:57 ---------- Previous post was at 10:02 ----------

1) Как запустить временной расчет прохождения сигналов? У мены Quartus 9.1 чото там говорит в варнингах, что типа он для данного девайса не знает временных интервалов...

2) Как в ПЛИС организоваать задержку? Я пробовал LCELL, в настройках отключил игнор LCELL... Но все равно я не знаю, как проходит сигнал - увеличивается время или нет.

Ewgeny7 25th June 2014 18:43

Quote:

Originally Posted by Tronix (Post 719968)
Как в ПЛИС организоваать задержку?

только триггерами и прочими счетчиками, тактируемые клоком.
Типа вот так, просто для понимания...
Code:

process(CLOCK)
begin
if (rising_edge CLOCK) then
shift(7 downto 0)<= shift(6 downto 0) & Input_signal;
end if;
end process;

Output_signal <= shift(7);

В схемном вводе можно использовать, к примеру, наш любимый регистр ТМ9 (74174),
замкнув его выходы со входами нижележащих разрядов. И по сигналу клока данные будут двигаться. А можно и обычный сдвиговый регистр, но это уже слишком банально :)

Tronix 25th June 2014 19:41

Еще бы знать, где эту задержку организовывать и надо ли задержку, а не наоборот, ускорять схему....

palsw 29th June 2014 15:14

отпишу тут ,так как в теме о сборке спекки2010 уже все собрали платки и забили на них.А тут более тема подходит к квартусу и исходникам прошивок.
компилирую 64 версию квартус 9.1.

если по умолчанию делать компиляцию то выскакивает 59 варнингов.
Можно как то уменьшить кол-во Warning ?они меня напрягают :)
http://i.piccy.info/i9/b1c53508c14f4...omplyt_500.jpghttp://i.piccy.info/a3/2014-06-27-08...89x341-r/i.gif[COLOR="Silver"]

если настройки cyclon такие :
выбираю вручную свой чип,тип корпуса,кол-во ног,спидгрейт.
Варнингов намного меньше сейчас (20 шт )
но есть 1 критический Critical Warning: Timing requirements not met

http://i.piccy.info/i9/426cc868a911f.../12334_800.jpghttp://i.piccy.info/a3/2014-06-29-10...16x596-r/i.gif
при проверке так же все глючит.

Скрытый текст



Еще питание ядра должно быть 1,2в ,а у нас упрощенно до 1,24-1,25в
Code:

Warning (10540): VHDL Signal Declaration warning at speccy2010.vhd(29): used explicit default value for signal "JOY0_SEL" because signal was never assigned a value
Warning (10540): VHDL Signal Declaration warning at speccy2010.vhd(31): used explicit default value for signal "JOY1_SEL" because signal was never assigned a value
Warning (10541): VHDL Signal Declaration warning at speccy2010.vhd(136): used implicit default value for signal "memDataIn2" because signal was never assigned a value or an explicit default value. Use of implicit default value may introduce unintended design optimizations.
Warning (10541): VHDL Signal Declaration warning at speccy2010.vhd(138): used implicit default value for signal "memDataMask2" because signal was never assigned a value or an explicit default value. Use of implicit default value may introduce unintended design optimizations.
Warning (10036): Verilog HDL or VHDL warning at speccy2010.vhd(342): object "trdosFifoReadFull" assigned a value but never read
Warning (10036): Verilog HDL or VHDL warning at speccy2010.vhd(351): object "trdosFifoWriteFull" assigned a value but never read
Warning (10036): Verilog HDL or VHDL warning at ps2fifo.vhd(48): object "ps2_obf_o" assigned a value but never read
Warning: Inferred dual-clock RAM node "doubleByffer~35" from synchronous design logic.  The read-during-write behavior of a dual-clock RAM is undefined and may not match the behavior of the original design.
Warning: Inferred RAM node "fifo:U07|buff~27" from synchronous design logic.  Pass-through logic has been added to match the read-during-write behavior of the original design.
Warning: Inferred RAM node "ps2fifo:U06|fifo:U01|buff~14" from synchronous design logic.  Pass-through logic has been added to match the read-during-write behavior of the original design.
Warning: Inferred RAM node "ps2fifo:U05|fifo:U01|buff~14" from synchronous design logic.  Pass-through logic has been added to match the read-during-write behavior of the original design.
Warning: Inferred RAM node "fifo:U09|buff~19" from synchronous design logic.  Pass-through logic has been added to match the read-during-write behavior of the original design.
Warning: Inferred RAM node "fifo:U08|buff~19" from synchronous design logic.  Pass-through logic has been added to match the read-during-write behavior of the original design.
Warning: Inferred RAM node "ps2fifo:U05|fifo:U02|buff~13" from synchronous design logic.  Pass-through logic has been added to match the read-during-write behavior of the original design.
Warning: Inferred RAM node "ps2fifo:U06|fifo:U02|buff~13" from synchronous design logic.  Pass-through logic has been added to match the read-during-write behavior of the original design.
Warning: Output pins are stuck at VCC or GND
Warning: Design contains 1 input pin(s) that do not drive logic
Warning (15610): No output dependent on input pin "CLK_20_ALT"
Warning: No paths exist between clock target "pMemClk" of clock "clk84_pin" and its clock source. Assuming zero source clock latency.
Warning: Found 104 output pins without output pin load capacitance assignment
Warning: No paths exist between clock target "pMemClk" of clock "clk84_pin" and its clock source. Assuming zero source clock latency.

[свернуть]

kox 9th July 2014 22:46

Доброго времени суток!
Пытаюсь наваять на верилог переключалку клока для z80, мультиплексор вообщем- имеем 2 входа для частоты 3,5 и 7мгц, также имеем выход тактовой частоты и вход для выбора с какого входа подать частоту на выход.
В верилоге полный профан, нацарапал такой вот былокод:
Code:

module CLK_MUX(
 
 input wire  ONE_CLK,
 input wire DOUBLE_CLK,
 input wire Turbo,
 output reg CLK_CPU
);

       
       
        always @*
        begin
if (Turbo==1'b1)
        begin
CLK_CPU        <=        DOUBLE_CLK;
        end

else
        begin
CLK_CPU        <=        ONE_CLK;
        end

        end

        endmodule

Квартус компилирует с матюком, все вроде бы работает, но загрузка программ с кассетного входа чаще всего приводит к перезагрузке компа.
Тогда как при подключении клока напрямую к процу загрузка тех же программ происходит всегда на ура.
Подскажите пожалуйста коректный код для моей задачи.
Спасибо за внимание:D

IanPo 9th July 2014 23:25

По-моему, так лучше:
assign CLK_CPU = Turbo ? DOUBLE_CLK : ONE_CLK;
Но вообще, это тоже быдлокод, т.к. переключение Turbo хорошо бы синхронизировать с 7 МГц (DOUBLE_CLK), чтобы не было глитчей (Turbo через триггер пропустить). Надеюсь, что 3.5 и 7 МГц тоже синхронизированы ;)

Ewgeny7 9th July 2014 23:36

Сделай клок 7Мгц. Это будет турбо.
А для обычной частоты используй тот же турбоклок, но через один импульс. Скважность изменится вдвое, зато всё останется синхронно по самые помидоры :)

kox 9th July 2014 23:39

Quote:

Originally Posted by Ewgeny7 (Post 723657)
Сделай клок 7Мгц. Это будет турбо.
А для обычной частоты используй тот же турбоклок, но через один импульс. Скважность изменится вдвое, зато всё останется синхронно по самые помидоры :)

Прикольное решение, а как это в verilog описать?

Ewgeny7 10th July 2014 00:03

Верилог я умею читать, а вот писать....
Ну, поставь триггер, срабатываюий по спадающему фронту клока. Выход триггера - сигнал ENA для "ключа", через который идет клок на систему/процессор. Вот и всё.

---------- Post added at 23:03 ---------- Previous post was at 23:02 ----------

Для управления частотой подавай на ключ или единицу, пойдет чистое 7МГц, или сигнал с триггера, будет 3,5МГц.

IanPo 10th July 2014 00:38

1 Attachment(s)
Схема такая?

Ewgeny7 10th July 2014 00:49

Quote:

Originally Posted by IanPo (Post 723675)
Схема такая?

Чудесно, даже синхронное переключение предусмотрел.
Переложить на текстовый язык труда не составит.


All times are GMT +4. The time now is 06:42.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.