Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   Требуется помощь по Спеку на Alterе (http://zx-pk.ru/showthread.php?t=5410)

Syntal 16th May 2007 18:24

Требуется помощь по Спеку на Alterе
 
Была вобщем-то простая как три копейки идейка утрамбовать всю логику Ленинграда-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 16th May 2007 18:44

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

icebear 16th May 2007 18:53

Quote:

Originally Posted by Syntal (Post 89077)
Была вобщем-то простая как три копейки идейка утрамбовать всю логику Ленинграда-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 намного проще, нежели в схемном вводе. Например (на верилоге)

Code:

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 16th May 2007 19:18

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

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

icebear 16th May 2007 20:17

Quote:

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

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

KingOfEvil 16th May 2007 22:05

Quote:

Originally Posted by Syntal (Post 89077)
Была вобщем-то простая как три копейки идейка утрамбовать всю логику Ленинграда-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 16th May 2007 22:56

Quote:

Originally Posted by icebear (Post 89089)
Как может применение какого-либо конкретного семейства МС быть глюком?

Разное семейство это разное быстродействие + экстремальная схемотехника = глюкодром . Можежешь даже в какомнить описании по сборке чегонить увидать рекомендации по применению мелкосхем определённого быстродействия .

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

Syntal 16th May 2007 23:47

Quote:

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

Это я читал, SYD - реальный чувак!, но он Львов, как я понял, собрал. Там куча микрух ещё идёт 2 статОЗУ, 2 АП6, а я хочу непременно Ленинград!

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

Originally Posted by KingOfEvil (Post 89098)
Есть готовая рабочая прошивка Pentagon-1024SL 2.2 вместе с исходником на AHDL. Бери и перекомпилируй, как тебе надо.

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

Originally Posted by KingOfEvil (Post 89098)
Кстати, схемный ввод не глючит, если все правильно делать. Для простых проектов (до 100 ячеек) я вообще не замечал разницы между схемным вводом и HDL- описанием.

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

KingOfEvil 17th May 2007 00:03

Quote:

Originally Posted by Syntal (Post 89105)

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

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

Quote:

Originally Posted by Syntal (Post 89105)
А почему тогда такие косяки - вбил схемным вводом всё как в схеме Ленинграда, перепроверил 10 раз, а результат отличается?

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

Syntal 18th May 2007 12:04

Quote:

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

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

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

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


All times are GMT +4. The time now is 20:14.

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