Вход

Просмотр полной версии : Требуется помощь по Спеку на Alterе



Syntal
16.05.2007, 17:24
Была вобщем-то простая как три копейки идейка утрамбовать всю логику Ленинграда-1 в ПЛИС Altera EPM7128. Как наивный чукотский юноша я думал, что забабахаю всё сам, используя схемный ввод Quartusа. Сделал платку под ПЛИСину, платку с 8 РУ7 (для расширения в последующем до 128-256 Кб), проц, ПЗУ есть, собрал всё это на бредборде. Создал проект в Quartusе, решил сначала для проверки собрать синхрогенератор для видеоконтроллера, компильнул это дело, прошил. Стал проверять, сигналы после первого счётчика ИЕ7 (H0-H3) - нормальные - сверял на своём KAY-128. Со вторым уже счётчиком (H4-H7) встал туган - он делит не на 2^n - осцилл не синхронизируется, встал вопрос, как вообще можно осциллом проверить хитрые сигналы? Потыркался пару дней, ничего не придумал, решил проверить синхроимпульсы КСИ и ССИ. Вобщем результат меня вконец убил: кадровый СИ на ПЛИС 13 милисек период и 15 микросекунд длительность (на KAY положеные 20 и 10 соответственно), строчного СИ вообще нет. Меня предупреждали, что схемным вводом только косяки получаются, я не поверил, теперь вот уже месяц не знаю, что делать. Надо писать на HDL, но я не врубаюсь в это дело, не мог бы кто-нибудь из гуру помочь примерчиком на каком-нибудь великом и могучем HDL-языке как хотя бы до КСИ и ССИ доползти? Может кто-нибудь также интересуется данной идеей и будет не против проверки своих HDL-идей на практически готовом железе?

ILoveSpeccy
16.05.2007, 17:44
Я тоже собираю Спек на ПЛИС, только на XILINX XC95144XL, что в принципе тоже самое...
Результатов пока немного, если что-то получится, обязательно напишу...
А пока могу посоветовать VHDL-код от Speccy2007... он тоже для Altera 7128....
Смотри тут http://zx.pk.ru/showthread.php?t=3957&page=17

icebear
16.05.2007, 17:53
Была вобщем-то простая как три копейки идейка утрамбовать всю логику Ленинграда-1 в ПЛИС Altera EPM7128. Как наивный чукотский юноша я думал, что забабахаю всё сам, используя схемный ввод Quartusа. Сделал платку под ПЛИСину, платку с 8 РУ7 (для расширения в последующем до 128-256 Кб), проц, ПЗУ есть, собрал всё это на бредборде. Создал проект в Quartusе, решил сначала для проверки собрать синхрогенератор для видеоконтроллера, компильнул это дело, прошил. Стал проверять, сигналы после первого счётчика ИЕ7 (H0-H3) - нормальные - сверял на своём KAY-128. Со вторым уже счётчиком (H4-H7) встал туган - он делит не на 2^n - осцилл не синхронизируется, встал вопрос, как вообще можно осциллом проверить хитрые сигналы? Потыркался пару дней, ничего не придумал, решил проверить синхроимпульсы КСИ и ССИ. Вобщем результат меня вконец убил: кадровый СИ на ПЛИС 13 милисек период и 15 микросекунд длительность (на KAY положеные 20 и 10 соответственно), строчного СИ вообще нет. Меня предупреждали, что схемным вводом только косяки получаются, я не поверил, теперь вот уже месяц не знаю, что делать. Надо писать на HDL, но я не врубаюсь в это дело, не мог бы кто-нибудь из гуру помочь примерчиком на каком-нибудь великом и могучем HDL-языке как хотя бы до КСИ и ССИ доползти? Может кто-нибудь также интересуется данной идеей и будет не против проверки своих HDL-идей на практически готовом железе?

Прежде чем лить в камень, проверь прошивку в симуляторе (в квартусе есть свой встроеный). Тогда увидишь все изменения сигналов. По поводу HDL - у каждого своё предпочтение. Написать видео на HDL намного проще, нежели в схемном вводе. Например (на верилоге)


module videocore(CLK14, nRESET, PIXEL, LINE, nHSYNC, nVSYNC, nHBLANK, nVBLANK, nSWAPBUF);
input CLK14;
input nRESET;
output [8:0] PIXEL;
output [7:0] LINE;
output nHSYNC;
output nVSYNC;
output nHBLANK;
output nVBLANK;
output nSWAPBUF;

reg [8:0] HCNTR;
reg [9:0] VCNTR;

wire [8:0] PIXEL;
wire [7:0] LINE;
wire nSWAPBUF;
reg nHSYNC, nVSYNC, nHBLANK, nVBLANK;

always @(posedge CLK14 or negedge nRESET) begin
if(!nRESET) begin
HCNTR = 9'b0;
nHSYNC = 1;
nHBLANK = 0;
end
else begin
HCNTR = (HCNTR == LINE_END) ? 9'b0 : HCNTR + 1;
nHSYNC = !((HCNTR > HSYNC_START) && (HCNTR < HSYNC_END));
nHBLANK = !(HCNTR > LINE_BLANK);
end
end

always @(posedge nHSYNC or negedge nRESET) begin
if(!nRESET) begin
VCNTR = 8'b0;
nVSYNC = 1;
nVBLANK = 0;
end
else begin
VCNTR = (VCNTR == FRAME_END) ? 10'b0 : VCNTR + 1;
nVSYNC = !((VCNTR > VSYNC_START) && (VCNTR < VSYNC_END));
nVBLANK = !(VCNTR > FRAME_BLANK);
end
end

//assign nVBLANK = !(VCNTR > FRAME_BLANK);
assign nSWAPBUF = !(!nHSYNC && VCNTR[0]);
assign PIXEL = HCNTR;
assign LINE = (!nVBLANK) ? 0 : VCNTR[8:0] >> 1;

endmodule

Это только маленький кусочек (константы опущены), потому как это кусок рабочего проекта.

fan
16.05.2007, 18:18
Схемный ввод не причём , это сам ленинград такой . Про глюки синхро генератора (из-за шибко быстрых мелкосхем) писали в каком то журнале (не помну в каком).

Для начала нужно просимулить всё что касается строчной развёртки , и отдельно всё что касается кадровой (предварительно распилив схему), можно и всё вместе симулить , но будет дольше .

icebear
16.05.2007, 19:17
Схемный ввод не причём , это сам ленинград такой . Про глюки синхро генератора (из-за шибко быстрых мелкосхем) писали в каком то журнале (не помну в каком).

Как может применение какого-либо конкретного семейства МС быть глюком?

KingOfEvil
16.05.2007, 21:05
Была вобщем-то простая как три копейки идейка утрамбовать всю логику Ленинграда-1 в ПЛИС Altera EPM7128. Как наивный чукотский юноша я думал, что забабахаю всё сам, используя схемный ввод Quartusа. Сделал платку под ПЛИСину, платку с 8 РУ7 (для расширения в последующем до 128-256 Кб), проц, ПЗУ есть, собрал всё это на бредборде. Создал проект в Quartusе, решил сначала для проверки собрать синхрогенератор для видеоконтроллера, компильнул это дело, прошил. Стал проверять, сигналы после первого счётчика ИЕ7 (H0-H3) - нормальные - сверял на своём KAY-128. Со вторым уже счётчиком (H4-H7) встал туган - он делит не на 2^n - осцилл не синхронизируется, встал вопрос, как вообще можно осциллом проверить хитрые сигналы? Потыркался пару дней, ничего не придумал, решил проверить синхроимпульсы КСИ и ССИ. Вобщем результат меня вконец убил: кадровый СИ на ПЛИС 13 милисек период и 15 микросекунд длительность (на KAY положеные 20 и 10 соответственно), строчного СИ вообще нет. Меня предупреждали, что схемным вводом только косяки получаются, я не поверил, теперь вот уже месяц не знаю, что делать. Надо писать на HDL, но я не врубаюсь в это дело, не мог бы кто-нибудь из гуру помочь примерчиком на каком-нибудь великом и могучем HDL-языке как хотя бы до КСИ и ССИ доползти? Может кто-нибудь также интересуется данной идеей и будет не против проверки своих HDL-идей на практически готовом железе?

Есть готовая рабочая прошивка Pentagon-1024SL 2.2 вместе с исходником на AHDL. Бери и перекомпилируй, как тебе надо.
Кстати, схемный ввод не глючит, если все правильно делать. Для простых проектов (до 100 ячеек) я вообще не замечал разницы между схемным вводом и HDL- описанием. Однако при текстовом вводе обычно получается более компактно, хотя по началу и менее наглядно.

fan
16.05.2007, 21:56
Как может применение какого-либо конкретного семейства МС быть глюком?
Разное семейство это разное быстродействие + экстремальная схемотехника = глюкодром . Можежешь даже в какомнить описании по сборке чегонить увидать рекомендации по применению мелкосхем определённого быстродействия .

(статью так и не нашёл , кажись былала в радио любителе или в радио...)

Syntal
16.05.2007, 22:47
Я тоже собираю Спек на ПЛИС, только на XILINX XC95144XL, что в принципе тоже самое...
Результатов пока немного, если что-то получится, обязательно напишу...
А пока могу посоветовать VHDL-код от Speccy2007... он тоже для Altera 7128....
Смотри тут http://zx.pk.ru/showthread.php?t=3957&page=17
Это я читал, SYD - реальный чувак!, но он Львов, как я понял, собрал. Там куча микрух ещё идёт 2 статОЗУ, 2 АП6, а я хочу непременно Ленинград!

Добавлено через 8 минут

Есть готовая рабочая прошивка Pentagon-1024SL 2.2 вместе с исходником на AHDL. Бери и перекомпилируй, как тебе надо.
Это всё конечно хорошо, спасибо, но Ленинград и Пентагон - две разные машины. Как раз по части КСИ и ССИ - боюсь, что из твоего исходника проще сделать Пентагон-48, чем Ленина.


Кстати, схемный ввод не глючит, если все правильно делать. Для простых проектов (до 100 ячеек) я вообще не замечал разницы между схемным вводом и HDL- описанием.
А почему тогда такие косяки - вбил схемным вводом всё как в схеме Ленинграда, перепроверил 10 раз, а результат отличается?

KingOfEvil
16.05.2007, 23:03
Это всё конечно хорошо, спасибо, но Ленинград и Пентагон - две разные машины. Как раз по части КСИ и ССИ - боюсь, что из твоего исходника проще сделать Пентагон-48, чем Ленина.

Тебе нужна рабочая прошивка, ведь так? Пользуйся на здоровье. А сделать из нее ленинград - не проблема. Придется, правда потратить некоторое количество времени на изменение логики работы дисплейных счетчиков, конечно, если Ленинград является самоцелью.



А почему тогда такие косяки - вбил схемным вводом всё как в схеме Ленинграда, перепроверил 10 раз, а результат отличается?

Значит, так вбил. Надеюсь, ты не использовал готовые библиотеки 74-й серии? (тогда понятно, откуда глюки)

Syntal
18.05.2007, 11:04
Тебе нужна рабочая прошивка, ведь так? Пользуйся на здоровье. А сделать из нее ленинград - не проблема. Придется, правда потратить некоторое количество времени на изменение логики работы дисплейных счетчиков, конечно, если Ленинград является самоцелью.
Самоцелью является собрать Спектрум своей мечты! Можно было конечно купить у тебя плату, запаять детальё, настроить и радоваться жизни, не понимая как вообще это работает. Решил изучать с основ (Ленинград-1), постепенно модернизируя до Композит-KAY-Scorpion. Чтобы можно было открыть какой-нибудь ZX-Ревю 91 года и чью-нибудь доработку себе прикрутить - странное хотя конечно счастье... зато абсолютно не вставляет с МГТФ-ом баловаться - такой Спек у меня есть! Хотел апгрейдить только мозги ПЛИС, собирая на бредборде, а уж как эпилог к пенсии замонстрячить плату:v2_lol:

Значит, так вбил. Надеюсь, ты не использовал готовые библиотеки 74-й серии? (тогда понятно, откуда глюки)
К сожалению да, пользовался готовыми библиотеками - очень уж наглядно да и привычнее всё же на схему смотреть, чем текст читать. Думаю, что это как раз замануха на Quartus, чтобы народ подсел на ПЛИС, купившись, что можно копирнуть схему и всё заработает, а потом уже поосвоившись садился за HDL!:v2_wink2: И всё-таки ещё одна супер-бредовая идея в голове ворочается, что в природе (Инете) должны быть секретные :v2_lol: работающие библиотеки 155-555 серии для Quartusа!:v2_lol:

KingOfEvil
18.05.2007, 11:27
К сожалению да, пользовался готовыми библиотеками - очень уж наглядно да и привычнее всё же на схему смотреть, чем текст читать. Думаю, что это как раз замануха на Quartus, чтобы народ подсел на ПЛИС, купившись, что можно копирнуть схему и всё заработает, а потом уже поосвоившись садился за HDL!:v2_wink2: И всё-таки ещё одна супер-бредовая идея в голове ворочается, что в природе (Инете) должны быть секретные :v2_lol: работающие библиотеки 155-555 серии для Quartusа!:v2_lol:

В библиотеках 74-й серии есть ошибки. Пару раз напоровшись на них, эти библиотеки я больше не использовал. Если очень хочется делать именно в схемном редакторе и чтоб не глючило - просто надо самому составить библиотечные модули счетчиков, регистров и т.д. из элементарных элеменов, входящих в состав основной библиотеки (не 74-й серии). И все будет тип-топ.

CHRV
18.05.2007, 11:35
Если делаешь на плис в первую очередь забыть про существование элементов и делать все что касаемо плис на HDL.

KingOfEvil
18.05.2007, 21:18
Если делаешь на плис в первую очередь забыть про существование элементов и делать все что касаемо плис на HDL.

Между AHDL и схемным редактором принципиальной разницы нет (если не использовать библиотеки 74 серии). Это два варианта описания одного и того же, или взгляд с разных плоскостей на один и тот же предмет, если угодно.
VHDL/VERILOG модут давать даже худшие результаты, чем AHDL, т.к. синтез идет не напрямую, а через задницу. Все это сделано для поддержни стандартных у америкосов форматов описания аппаратуры, которыми они пользуются не один десяток лет.
Описания на VHDL и Verilog довольно далеки от стандартного описания схемы, а вот разводка топологии ПЛИС макимально приближена именно к принципиальной схеме. Отсюда вывод - чтобы получить масимально эффективную топологию внутри ПЛИС надо описывать логику в формате, максимально приближенном к формату топологии, а это либо AHDL, либо схемный редактор (речь идет о ПЛИС фирмы Altera).
Плохо только, что наиболее эффективные инструменты для Alter-ы более никуда не портируются. Вот для таких целей удобнее VHDL.

icebear
21.05.2007, 13:40
VHDL/VERILOG модут давать даже худшие результаты, чем AHDL, т.к. синтез идет не напрямую, а через задницу.

Это понимать так, что AHDL никогда не даст результатов хуже других HDL? "Ну и где эти евреи?" (с)

KingOfEvil
21.05.2007, 19:24
Это понимать так, что AHDL никогда не даст результатов хуже других HDL?

Это надо понимать, что AHDL _может_ давать (т.е. может и не давать) лучшие результаты, чем VHDL/Verilog. Все зависит от того, насколько грамотно сделан проект. Слово 'никогда' там не фигурировало.



"Ну и где эти евреи?" (с)
не понял

ZEK
21.05.2007, 22:44
Это надо понимать, что AHDL _может_ давать (т.е. может и не давать) лучшие результаты, чем VHDL/Verilog.
Только вот AHDL это все таки схемный ввод в тексте - на нем описывают как я хочу получить результат, а на Verilog/VHDL -что я хочю получить врезультате , и так как все плисы стоятся на табличках термов + мультики+тригеры (к тому же у разных семейст а темболее производителей оно по разному организовано) то у Verilog/VHDL больще простора для оптимизации и лучшая комбинаторика. Напиши реверсивный сдвиговый регитр который сдвигает по обоим препадам клока на AHDL пока напишеш чекнешся (ну по крайней мере прийдется не в совсем удобном ключе писать), на Verilog/VHDL это пишется и интуитивно просто читается и результат(синтезированый) у Verilog/VHDL будет как минимум не хуже чем у AHDL.

Короче это холиварство всё, типа ASM vs C/C++, завязую :)

icebear
22.05.2007, 14:05
Это надо понимать, что AHDL _может_ давать (т.е. может и не давать) лучшие результаты, чем VHDL/Verilog. Все зависит от того, насколько грамотно сделан проект. Слово 'никогда' там не фигурировало.

Ага, т.е. любой другой HDL может или не может давать результат лучше AHDL? Полный паритет вобщем, а то из твоих предыдущих слов исходило, что AHDL - панацея. Тока вот в VHDL/Verilog можно думать мыслями, а не вентелями :)


не понял

Где теперь этот AHDL? В Альтере на него похоже совсем забили.

KingOfEvil
22.05.2007, 16:33
Ага, т.е. любой другой HDL может или не может давать результат лучше AHDL? Полный паритет вобщем, а то из твоих предыдущих слов исходило, что AHDL - панацея. Тока вот в VHDL/Verilog можно думать мыслями, а не вентелями :)


Надо думать головой. AHDL действительно ближе всего именно к топологии ПЛИС. Я не говорил, что это панацея, я сказал, что при грамотном его использовании можно получать лучшие результаты.



Где теперь этот AHDL? В Альтере на него похоже совсем забили.

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

icebear
22.05.2007, 18:28
Надо думать головой.

Я в неё ем только.


AHDL действительно ближе всего именно к топологии ПЛИС. Я не говорил, что это панацея, я сказал, что при грамотном его использовании можно получать лучшие результаты.

Ты говорил, что "VHDL/VERILOG модут давать даже худшие результаты, чем AHDL, т.к. синтез идет не напрямую, а через задницу. " Откуда такие данные, как идёт синтез? Ты умнее тысяч индусов из Altera/Xilinx/Latice, пишущих синтезаторы? И опять же, где теперь этот AHDL?


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

Пацтулом. У "нас в буржуяндии" считается хорошим тоном не тратить время на всякую фигню, когда можно сделать быстрее и удобнее. Современные синтезаторы знаешь ли не тупые, разгребут, да ещё и по ушам надают кучей warning'ов, что так делать нельзя (во всяком случае ISE меня учит постоянно, и что самое обидное - он прав :D).

KingOfEvil
22.05.2007, 19:36
Я в неё ем только.


заметно

icebear
22.05.2007, 19:56
заметно

Убил! А по существу так и будет 0.0?

KingOfEvil
22.05.2007, 21:29
Убил! А по существу так и будет 0.0?

По существу было в предыдущих постах. Если что-то недопонято, то читай документацию на ПЛИС.

Вообще, тема бессмысленная можно долго спорить, результат все равно будет 0.0

icebear
23.05.2007, 15:01
По существу было в предыдущих постах. Если что-то недопонято, то читай документацию на ПЛИС.

Ну? Давай уже линки и т.п. А то мож я не ту документацию по ПЛИС читал, где написано, что синтез исходников на VHDL/Verilog идёт через задницу.


Вообще, тема бессмысленная можно долго спорить, результат все равно будет 0.0

Надо всего-то не делать опрометчивых заявлений.

KingOfEvil
23.05.2007, 20:30
Надо всего-то не делать опрометчивых заявлений.

ДУБЛЬ 2.
Если ты не знаешь методику синтеза цифровых автоматов (и то, как это происходит при синтезе с AHDL и с VHDL), то читай не инструкцию по использованию VHDL, а соответствующую литературу. Когда прочитаешь, тогда поймешь.. Если все равно будет 0.0, тогда забей, значит не судьба.

icebear
24.05.2007, 11:52
ДУБЛЬ 2.

Придётся.


Если ты не знаешь методику синтеза цифровых автоматов (и то, как это происходит при синтезе с AHDL и с VHDL), то читай не инструкцию по использованию VHDL, а соответствующую литературу. Когда прочитаешь, тогда поймешь.. Если все равно будет 0.0, тогда забей, значит не судьба.

Я видимо не знаю, как синтезируются цифровые автоматы (я вообще погулять вышел) и видимо я ещё не знаю, что-же такого особого может предложить язык AHDL в противовес другим HDL, что как-то может повлиять на процесс интеза. Поэтому и линки прошу. Если линков нет и ты ничего другого кроме AHDL не знаешь, то, говоря по-русски, не пи.... И в третий раз тот же вопрос: если AHDL так могуч, то почему он сейчас там, где он есть?

ЗЫ: Теперь моим языком - дай мне материал о том, что AHDL имеет преимущество перед другими HDL, которое (преимущество) влияет на качество синтеза схемы в лучшую сторону.

fifan
24.09.2007, 08:15
Подскажите почему у меня MAX+plus II ругается на описание модуля. Типа он у меня нигде не используется, тогда как мне его оформить одного?

ZEK
24.09.2007, 09:04
fifan, Это смотря шо делаеш. Точно не уверенен но вроде у MAX расширения файлов другие и формат файлов. Проект был созадн в Quartus.
Короче 100% решение
-созадеш новый проект обзываеш его zxvideo
-создаеш новый Verilog файл
-пихаеш туда содержимое из архива или просто переписываеш потом созданный
- типа всё

Вопрос а накой здалась эта юла? под нее обвязки нада столько что по колву микрух выйдет P1024SL.

fifan
24.09.2007, 18:13
Вопрос а накой здалась эта юла? под нее обвязки нада столько что по колву микрух выйдет P1024SL.

Heroy, а не твой сабж? узнаешь?

...DataSheet KAY2006NB. Данный документ является официальным описанием прошивки для микросхемы Altera MAX EPM7064SLC84-10 и именуемая далее как микросхема KAY2006NB (Северный мост). За основу прошивки взята схема KAY-1024 приведенная к удобному графическому представлению владельцем сайта SBLive.narod.ru... :v2_thumb:

:):v2_thumb::v2_cheer:
По мне так лучше собрать "Модуль расширения видеорежимов ZX-VideoModes". Случайно не твое творение? Если да то вопрос: прошивка готова (EPM3063ALC44-10)?
:v2_blush: