![]() |
Quote:
Просто "проволочного" бластера нет. Вероятно, прямое подключение всё же прокатит, просто страшновато рисковать альтеркой. Quote:
Схему ВВII я вроде выкладывал в этой теме. ---------- Post added at 10:20 ---------- Previous post was at 10:19 ---------- Quote:
|
да, была мысля использовать готовое с других машин, но данная очень уж жирно будет для моей платы. там есть все - клава, мышь, ком-порт, СД-карта, часики. Мне на данном этапе нужно пока всего лишь только КОМ-порт(для РС) и программа которая прошьет ПЛИСину, АВРка меньше понадобится :)
как вариант подошла бы АВРка Мега88 из AEON'a, но там используется Ксилиникс, явно мой циклон она не прошьет. |
1 Attachment(s)
Quote:
на какой PIC можно заменить? подойдет ли PIC18F25J10-I/SO вместо PIC18F25J10-X/SO? Но есть еще вариант, более компактный, тоже на пик (PIC18F45J10-I/PT), все что у нас нашел так тока PIC18F452-I/PT, PIC18F4520-I/PT, PIC18F4525-I/PT, PIC18F4550-I/PT, PIC18F458-I/PT - чем можно заменить PIC18F45J10-I/PT ?. |
Quote:
|
к сожалению я не программист :), в сырках буду полгода разбираться, и не факт что разберусь...
|
Quote:
Варианты с АТМега8 или мелкой ПЛИС. Курите на здоровье :) |
Вот еще вариант: http://www.microchip.su/showpost.php...22&postcount=9
|
vlad, там региться надо, если есть возможность - файлики запостите тут, плиз.
|
Quote:
PIC18F45J10-I/PT на что можно заменить из выше написанных ?:confused: ---------- Post added at 14:15 ---------- Previous post was at 14:13 ---------- Quote:
|
допускается ли применение всяких PCI - LPT адаптеров вместо родного встроенного в материнку?
---------- Post added at 17:47 ---------- Previous post was at 17:41 ---------- [QUOTE=aniSKY;322885] PIC18F45J10-I/PT Бл...Дорогой как самолёт :sleep: |
3 Attachment(s)
:confused: помогите разобраться что не так.
пытаюсь написать на ВХДЛ ту часть, которая выводит графику на экран - что то ну ни как не поддается, в схемном вводе все нормально было, показывало как надо, а вот на ВХДЛе все ни как не получается:v2_conf2: вот кусок проекта: Code:
process(CLK25,TI,vcnt,hcnt)если убрать загрузку атрибутов и выводить только пикселы - все четко, чб картинка отличная (pic02.jpg). а стоит только вернуть загрузку атрибутов обратно и выводить только пикселы - получается что выводятся атрибуты вместо пикселов, хотя данные загружаю в разные регистры(pic03.jpg).:v2_conf2: |
Адрес нужно как минимум на один клок раньше задавать. А так у тебя адреса атрибутов и пикселей получаются перепутаны. Для наглядности, поменяй местами строчки:
PIXd<=VD; VA<=PIXa; Ничего не изменится. |
поменял-все по прежнему.
вроде они должны выполнять параллельно? а может у кого есть примеры других разработок спека на ВХДЛе? пытался подсмотреть в исходниках SPECCY2007 - сложно разобраться для новичка, много сигналов и регистров без коментов что за они. |
Quote:
Сначала ставится адрес на шину, спустя клок/полклока считываются данные. У тебя же это не сделано. И в результате в "цветной регистр" считываются данные пикселей, а не аттрибутов. ---------- Post added at 16:23 ---------- Previous post was at 16:21 ---------- посмотри реализацию в u10_speccy, к примеру. |
Quote:
1) Зачем в процессе смешаны асинхронные присвоения в PIXa и ATRa с синхронными присвоениями по CLK25? Если хотелось их тоже обрабатывать синхронно, то надо было их засунуть под if (CLK25'event ..., ну а если они действительно асинхронные, то лучше их убрать из-под процесса. Понятность кода увеличится, кроме того уменьшится вероятность случайно сделать latch во время правок кода. Ну и наконец некоторые синтезаторы потупее такой код не переваривают. 2) Я надеюсь, VA -- это вывод FPGA, а не какой-то её провод? Внутри FPGA проводов с Z-состоянием нету. И если это вывод, то лучше вынести Z-присвоение на верхний уровень проекта. Облегчает дальнейшую правку кода. Плюс Квартус не всегда распознаёт "похороненные" Z-присвоения, я на эти грабли уже натыкался. Теперь по функционированию: 1) b2m совершенно правильно сказал про работу с памятью. В этом коде ставится адрес и сразу читаются данные, так нельзя. Надо хотя бы один такт подождать, пока память не отработает. 2) В этом коде пиксель читается сразу же, а атрибут -- в середине знакоместа. То есть атрибуты будут показываться на 4 пикселя правее, чем надо. Так и задумано? ;) |
Quote:
Quote:
|
Quote:
|
Quote:
|
спасибо всем за коменты и замечания, приму к сведению, теперь данную часть буду переписывать заново, а то исправлять все придется :)
|
Правильно ли я все понял: https://docs.google.com/fileview?id=...thkey=CPq3w6sK
|
Я бы объеденил пункты 5 и 6 в один процесс. Потому что и сдвиг, и запись в выходные регистры нужно делать либо по фронту, либо по спаду. Иначе будет нестыковка на полпикселя.
|
тогда получиться, что на 8-ом такте будет происходить одновременно сдвиг и загрузка данных в регистре, на что квартус жалуется сильно. да и последний пиксель будет всегда из следующего знакоместа вроде.
|
Я думал, сам догадаешься :)
Самый первый пиксел образуется не после сдвига, а после записи в выходной регистр (крайний пискел которого ты используешь как видео-выход), о остальные 7 - в результате сдвига. |
ок, попробуемс :) (наверно прийдется сдвигающий регистр организовать по иному, через "CASE IS ..." привязанным к томуже клоку, что и загрузка во вторые регистры)
|
Quote:
Quote:
---------- Post added at 17:46 ---------- Previous post was at 17:44 ---------- На самом деле это не шифт-регистр, а самый обычный мультиплексор на 8 входов-1выход. |
Quote:
Хотя, неизвестно, что лучше: семь мультиплексоров 2-в-1 (в случае со сдвиговым регистром) или один 8-в-1 (как у тебя). Мультиплексор 2-в-1 будет в той же LE, что и бит регистра, а вот 8-в-1 после регистра - это дополнительные LE. |
Quote:
|
Quote:
в данном случае привязка к клоку необязятельна, или лучше привязать? |
Quote:
|
2 Attachment(s)
ну наконец то добился толку от своего нагромождения кода :D
что имею: четкий спековский экран, все точки и атрибуты там где им и положено; бордер пока выставляю в ручную. :mad: больше времени прострадал из-за собственной криворукости PIXa<="0"&"000"&vcnt(8 downto 7)&vcnt(3 downto 1)&vcnt(6 downto 4)&hcnt(7 downto 3); ATRa<="0"&"000"&"110"&vcnt(8 downto 4)&hcnt(7 downto 3); привязял к клоку - от этого и шел косяк, стоило убрать привязку - ка все бульк и в порядке :eek: то что получилось в прицепе (мот кто глянет если не лень будет, подскажет что где подправить чтоб правильно и грамотно было :v2_blush:) ЗЫ: может у кого есть картинка тестового экрана (:v2_dizzy_photo: или :v2_dizzy_photo:) для спека (или вся прошика этого теста) на которой изображены круги полоски градации? помню пролетала прошивка данного теста на форуме, да вот теперь все никак найти ее не могу. |
Quote:
http://zx.pk.ru/showthread.php?t=10548&page=77 |
Quote:
Прошивка для ПЛИС с градациями яркости: http://zx.pk.ru/showpost.php?p=212360&postcount=113 |
товарищи и господа! а есть ли информация по РТ1/РТ2 ?
имеется в виду способ программирования, а не справочные данные на микросхемы из пыльных сборников про ПЗУ. |
Quote:
|
Mick, у меня имеется "Стерх", который их шьет. Проблема в том, что не знаю на каком языке писать прошивки, как и в каком софте. Может быть вспомните название книжицы?
|
1 Attachment(s)
Quote:
Просто, как я понимаю, ты раньше работал исключительно со схемным вводом, а VHDL только начал учить? Код уж больно характерно выглядит. Quote:
Quote:
Quote:
На такое сообщение надо реагировать, как бык на красную тряпку: работоспособность схемы не гарантируется !!! То есть надо бросать все, и разбираться, почему. Разбираемся: лезем в Report Window и открываем в нём вкладку Timing Analyzer. Сразу видим, что там выделены красным строки Summary и Clock Hold:' CLK25'. Ну, общая сводка на то и общая, что в ней деталей нету, поэтому открываем вторую, про CLK25. Видим список цепей, красным выделены те, по которым есть нарушение времянок. У меня они начинаются с hcnt[2]->PIXd0[1], что уже само по себе подозрительно (ладно, когда сигналы данных попадают в нарушения по Clock Setup, это просто схема тормозная получилась, но Clock Hold? :v2_dizzy_fear: Это явный признак гонки сигналов :v2_scare:). Что же, тыкаем правой кнопкой мыши в первую строку, и выбираем Locate->Locate in RTL viewer. Видим то, что в аттаче, и ужасаемся. Со счётчика hcnt сигналы идут одновременно на тактовый вход триггеров PIXd0, и на вход разрешения записи, через логику! При этом получается, что прибывают они в недопустимом порядке, сначала клок напрямую, а потом сигнал разрешения записи через логику. Таким образом, разрешение записи прибывает на один период hclk[0] позже, чем подразумевалось в VHDL коде, и схема работает только потому, что там есть очень большой запас по времени защёлкивания VD в PIXd0, да и само разрешение записи висит целый период hclk[0]. Стоит уплотнить временную диаграмму доступа в память, и полезут ошибки, странные и непонятные. О лечении. На самом деле, проще и лучше всего отказаться от использования множественных клоков. FPGA и их компиляторы разработаны для того, чтобы запихивать в них преимущественно синхронную логику. Если планируется делать логику асинхронную (а наличие более одного клока -- это уже асинхронная логика), то с гонками и метастабильностью придётся бороться вручную. Тебе это надо? Кроме того, в твоей FPGA всего 8 линий для тактовых сигналов, из которых твой код уже использует 5. Как только при расширении проекта потребуется девятый клок, то он пойдёт не по специальной выделенной цепи с выровненным временем доставки, а по обычным проводам (точнее, по ним пойдёт клок с наименьшим количеством триггеров). Что опять же приведёт к гонкам сигналов и глюкам. Не, в такой простой схеме лучше сделать один клок. PS: Если ты действительно переходишь со схематика, то Tools->Netlist Viewers->RTL Viewer тебе очень поможет. Сразу видно, какую схему квартус соорудил из твоего кода. PPS: Прошу не обижаться на тон ;) Просто это действительно базовые вещи при работе с полностью синхронными схемами. А FPGA -- именно такие. |
Quote:
P.S. исправил, как описано выше - коварный "Warning" больше не светится.:smile: ...... рученки уже зачесались писать дальше:v2_dizzy_write:! |
2 Attachment(s)
Нашёл простую схему программатора USB ALTERA
|
Спасибо. Я ее видел, НО ТАМ ПИК!!! Ужос. Было бы АВР...
|
Quote:
|
| All times are GMT +4. The time now is 06:42. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.