Просмотр полной версии : ПЛИС и всё что с ними связано
Страницы :
1
2
3
[
4]
5
6
7
8
Итак, из всех перечисленных драйверов интересует нас PCIPPorts.sys, т.к. судя по названию, именно он отвечает за параллельный порт. Проверим его активность:
SERVICE_NAME: pcipports
TYPE : 1 KERNEL_DRIVER
STATE : 4 RUNNING
(STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
Активен, ура :) Вот именно его мы и впишем в "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\ AlteraByteBlaster" в поле "DependIOnService". Перезагрузка компьютера, и вуаля.
А где начало настройки типа установить драйвер на LPT1 и т.п.
И надо ли всем проверять активность или просто указать имя драйвера, которое подходит для всех карт.
Может fifan, пока свежо в памяти, опишет от начала до конца без разных отступлений (типа этих проверок и вопросов с двух форумов).
1.
2.
3.
4.
Настраивать переходники USB-LPT пока не научились ? Получается такая история:
Атмеги раньше прошивали через ByteBlaster MV.
Потом стали прошивать через переходники USB-UART плюс дополнительная атмега.
Потом научились прошивать через переходники USB-UART без дополнительной атмеги, но очень медленно.
Потом научились прошивать через переходники USB-UART (на FT232RL в режиме Bit Bang) без дополнительной атмеги, уже быстро.
ПЛИС/FPGA раньше прошивали через ByteBlaster MV.
Потом ПЛИС/FPGA стали прошивали через USB-BLASTER (переходник USB-LPT плюс дополнительная ПЛИС).
Потом появились варианты схем через переходник USB-LPT с микроконтроллерами вместо ПЛИС.
Наверно когда-нибудь научимся прошивать через переходники USB-LPT (на FT245RL в режиме Bit Bang) плюс ByteBlaster MV.
Может это уже сделали, но не все знают ?
Может fifan, пока свежо в памяти, опишет от начала до конца без разных отступлений (типа этих проверок и вопросов с двух форумов).
Опишу. Действительно половина лишнего написано. И так плата у меня NetMos PCI 9835. Байтбластер - схема обычная на К555АП6 и десяток резисторов. Вот пункты:
1. Найти и установить в системе (у меня Windows 7) драйвера именно для этой платы. (Могу дать готовые для плат MosChip MCS98XX series как указано в описании).
2. Ставлю в настройках LPT порта, во вкладке Port Settings крыжик Use any interrupt assigned to the port и выбираю LPT1.
3. Сначала в командной строке запускаю строку (под администратором): c:\altera\91\quartus\bin\bblpt/i. Это по рекомендациям отсюда (http://marsohod.org/index.php/ourblog/11/90-bblpt). Windows меня материт сообщением (не помню каким), но драйвера программатора ставятся, но ещё не видны. Этот пункт я специально поставил выше, так как без него невозможно найти ветку в реестре, описанную в следующем пункте.
4. Запускаем в командной строке regedit и находим строку реестра: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Service\Al teraByteBlaster в поле DependlOnService пишем NmPar. У кого-то может нужно написать PCIPPorts. Что писать смотрите в Свойствах порта, далее вкладка Драйвер и Сведения.
5. Теперь перегружаем комп, заходим в программу программатора и устанавливаем оборудование: ByteBlasterMV or ByteBlaster II с портом LPT1.
А какая Windows7, х86 или х64 ?
Интересное название "х86"... У меня 32-разрядная, а драйвера я нашёл для всех Windows.
x86 - для процов х86-й архитектуры, то есть для всех 32-разрядных.
... эх, а я уж подумал мот для 64-разрядной семерки дрова появились. Буду дальше через виртуалку шить.
Наверно когда-нибудь научимся прошивать через переходники USB-LPT (на FT245RL в режиме Bit Bang)
Можно при помощи брата FT2232
http://www.edaboard.com/thread167400.html#post705687
там есть ссылка на svf плеер который использует mpsse ft2232 (который в том числе и JTAG поддерживает), прога конечно странная, но зато с исходниками. Если пострадать конечно взять из avreal кусок кода jtag через bit bang то впринципе можно заставить и на ft232 копеешной завести
Или я гоню в avreal ток spi...
x86 - для процов х86-й архитектуры, то есть для всех 32-разрядных.
... эх, а я уж подумал мот для 64-разрядной семерки дрова появились. Буду дальше через виртуалку шить.Я ж написал что у меня есть для всех Windows, в том числе и для 7 64-разрядной.
Можно при помощи брата FT2232
http://www.edaboard.com/thread167400.html#post705687
там есть ссылка на svf плеер который использует mpsse ft2232 (который в том числе и JTAG поддерживает), прога конечно странная, но зато с исходниками. Если пострадать конечно взять из avreal кусок кода jtag через bit bang то впринципе можно заставить и на ft232 копеешной завести
Или я гоню в avreal ток spi...
А вот если QUARTUS II смог работать в Windows через драйвера с карточкой PCI-LPT + ByteBlaster MV, то наверно сможет через драйвера работать и с USB-LPT (на FT245RL или аналогичной) + ByteBlaster MV ?
Я ж написал что у меня есть для всех Windows, в том числе и для 7 64-разрядной.
Буду очень признателен за эти дрова:eek: если не сложно, киньте их на anisky(гав)tut.by?
axel_sunrise
12.01.2011, 09:42
может таким макаром можно и УСБ-ЛПТ настроить?найти драйвер отвечающий...и понеслась?
тож закралась такая мысля, да вот ЮСБ-ЛоПаТы нету на попробывать. Да и скорее всего что большинство таких переходников не прокатит, везде пишут, что там битбанга нету, но попытаться стоит! :)
везде пишут, что там битбанга нету, но попытаться стоит!
там даже lpt нету, это хитрый cdc для принтеров, там ток пакетная передача
---------- Post added at 09:33 ---------- Previous post was at 09:31 ----------
то наверно сможет через драйвера работать и с USB-LPT (на FT245RL или аналогичной) + ByteBlaster MV ?
если он после каждой записи что то прочитать хочет, это будет как минимум на порядок медленней чем LPT, USB бластер это фактически fifo на 64 байта, и CPLD которая исполняет команды из этого буфера, поэтому скорость вменяемая.
---------- Post added at 09:55 ---------- Previous post was at 09:33 ----------
вот прикольный проект
http://urjtag.sourceforge.net/
но не работает под Win64
Буду очень признателен за эти дрова
Держите. Кинул себе на сайт - http://www.spetsialist-mx.ru/for_out/NetMos98XX.rar (6,52 МБайта).
...эх не до поняли друг друга. я думал про дрова ББластера под Вынь7 64-битные, 32-битные знаю что есть (от Висты подходят), думал и под 64-бита появились.
Нашёл простую схему программатора USB ALTERA
Собрал - определился как Altera USBBlaster:D!!! Пока еще ничего не прошивал но мой Циклон1 определился. Подскажите что эт за сигналы nCS и nCE ?? куда их паять?
Подскажите что эт за сигналы nCS и nCE ?? куда их паять?
Оно тебе надо? Вот ещё одна схема (http://www.spetsialist-mx.ru/schemes/USBBlaster.png), хочу её повторить.
Подскажите что эт за сигналы nCS и nCE ?? куда их паять?
это для других режимов программирования (не JTAG), в альтеровской доке по байтбластеру нарисовано куда они по стандарту должны быть выведены
Sentenced
16.01.2011, 20:34
Здравствуйте, други !
Не могу в Квартусе найти 74245 - я окончательно ослеп ? :v2_dizzy_wall:
Не могу в Квартусе найти 74245 - я окончательно ослеп ?
Её там нет. Я делал ее из "рассыпухи" на лог. элементах.
Sentenced
16.01.2011, 21:10
Спасибо, Евгений, утешили :) Пойду курить, как она там устроена.
---------- Post added at 21:10 ---------- Previous post was at 20:57 ----------
Нашёл вот такую VHDL конструкцию
library IEEE;
use IEEE.Std_logic_1164.all;
entity HCT245 is
port(A, B : inout std_logic_vector(7 downto 0);
DIR, GBAR : in std_logic);
end HCT245;
architecture VER1 of HCT245 is
begin
A <= B when (GBAR = '0') and (DIR = '0') else (others => 'Z');
B <= A when (GBAR = '0') and (DIR = '1') else (others => 'Z');
end VER1;
оно вроде ?
Можно и так. Смотря в чем свой проект ваяете. Если на схематике - то проще будет слепить 245 из TRI, если в VHDL, то нафиг нужно буквально каждый элемент описывать :)
Дело хозяйское.
Нашёл вот такую VHDL конструкцию
Хочу предупредить, что внутри FPGA проводов с третьим состоянием нет. Они там эмулируются через объединение всех драйверов по "или" (а ходят слухи, что в зависимости от оптимизатора, бывает и по "и").
Так что могут быть неожиданные эффекты.
Там точно нужна забуференная шина с третьим состоянием? Зачем? :confused:
Sentenced
21.01.2011, 20:28
Я подозревал, что не всё так гладко с этим элементом, не зря-же он отсутствует в списке. Забуференая шина с третьим состоянием, согласно моим представлениям о работе устройства - нужна. Это элемент будет смотреть "наружу" одной своей стороной. Пока что всё ещё взвешиваю, так-ли он там необходим, может, больше смысла - вынести его наружу.
А по сути дела - если подскажете, чем её заменить тут - http://sblive.narod.ru/ZX-Spectrum/NemoIDEforLUT/NemoIDEforLUT.htm , буду весьма благодарен.
А по сути дела - если подскажете, чем её заменить тут - http://sblive.narod.ru/ZX-Spectrum/N...oIDEforLUT.htm , буду весьма благодарен.
если по простому, переделай схему что бы использовались только односторонние буфера
Забуференая шина с третьим состоянием, согласно моим представлениям о работе устройства - нужна. Это элемент будет смотреть "наружу" одной своей стороной. Пока что всё ещё взвешиваю, так-ли он там необходим, может, больше смысла - вынести его наружу.
Наружу не нужно, выходы у FPGA сами имеют буфер с третьим состоянием. Обычно делают так: внутри схемы держат три отдельных сигнала для входа (_i), выхода (_o) и управления выходом (_d, от drive), а к выводу FPGA подключают так:
data_i <= pad_data;
pad_data <= data_o when data_d = '1' else 'Z';
При этом pad_data -- это может быть порт верхнего уровня проекта.
А по сути дела - если подскажете, чем её заменить тут - http://sblive.narod.ru/ZX-Spectrum/NemoIDEforLUT/NemoIDEforLUT.htm , буду весьма благодарен.
Можно на "ты" :)
Посмотрел. Нда, забавная схема, одна половина синхронная, а другая -- нет :v2_dizzy_roll: Если хочется в точности сохранить поведение оригинала, то лично я бы сделал так: логику 245 расщепить на прямой и обратный буфера, обратный (B->A) заменить на мультиплексор с выходом HD5 и разрешением выхода. Коряво, конечно, а что делать :(
То есть, как-то так (кусок с буферами):
-- HD4
process (WRH)
begin
if rising_edge(WRH) then
D_HD3_O <= D; -- спековская шина D
end if;
end process;
HD(15 downto 8) <= D_HD3_O when IOW_BAR = '0' else "ZZZZZZZZ";
-- HD5 без выходных буферов
process (IOR)
begin
if rising_edge(IOR) then
D_HD5_O <= D;
end if;
end process;
-- HD3 A->B
HD(7 downto 0) <= D when IOR = '0' and G = '0' else "ZZZZZZZZ";
-- HD3 B->A и выходные буфера HD5
D <= HD(7 downto 0) when IOR = '1' and G = '0' else -- HD3
D_HD3_O when RDH = '0' else "ZZZZZZZZ"; -- HD5
(не проверял)
Но лучше восстановить логику работы и переписать начисто. Наверняка там такая мешанина из синхронных и асинхронных буферов не нужна.
---------- Post added at 09:37 ---------- Previous post was at 09:27 ----------
Забыл сказать, то, что я написал выше -- это в предположении, что FPGA реализует только Nemo IDE. То есть шина D -- это выводы FPGA. Если эта шина торчит внутрь, то лучше всё же делать раздельные D_I и D_O, чтобы избавиться от третьего состояния.
И ещё: если на выводах FPGA с третьим состоянием нет подтяжек, то надо включить либо внутренние подтяжки, либо Bus Hold. Не любит КМОП плавающих входов.
Современные, конечно, от этого не горят, но мусор всякий в схему лезть будет, зачем это надо ...
SoftFelix
01.02.2011, 10:59
Народ, а с помощью железа STK200/300 можно прошить какой-нить программой EPM3032 и аналогичные? Просто STK200/300 уже собран и делать почти аналогичный Altera ByteBlaster не очень хочется.
А что такое STK200/300? Просто выводы DB-25? Судя по этой ссылке (http://real.kiev.ua/old/avreal/ru/adapters.html) - да. Тогда прийдется все равно собирать ByteBlaster.
SoftFelix
01.02.2011, 11:14
А что такое STK200/300? Просто выводы DB-25?
Схема переходника программирования "STK200/300"
Адаптер получил свое название от комплектующихся им отладочных плат фирмы Atmel для быстрого начала работы с микроконтроллерами At90s8515 и Atmega103 соответственно. На самом деле приведенная схема соответствует одновременно обеим адаптерам, в ней присутствуют перемычки для определения наличия как адаптера STK200 (выводы 2-12 разъема X1), так и STK300 (выводы 3-11) Как правило этот адаптер используют те, у кого есть в наличии одна из плат фирмы Atmel либо кто уже пользовался программой AVR ISP. При необходимости программной генерации тактового сигнала XTAL1 (ключ -o0) используется линия LED адаптера STK, исходно предназначенная для включения светодиода на отладочной плате.
http://real.kiev.ua/old/avreal/img/stkx00.png
Разводка колодки X2 на приведенной схеме соответствует принятой фирмой Atmel для производимых ею плат, однако никто не мешает использовать и разводку, соответствующую Altera Byte Blaster.
Судя по этой ссылке - да.
В смысле "да", AVReAl'ом с помощью STK200/300 можно прошить EPM?
Конечно нет. Программатор Квартусовый не понимает STK.
А АВРеал к ПЛИС вообще никаким боком.
---------- Post added at 12:00 ---------- Previous post was at 11:56 ----------
Вот покури, а лучше переделай свой проггер под это:
http://www.zxkit.ru/katalog-1/zxkit-003-1
SoftFelix
01.02.2011, 12:00
Ewgeny7, т.е. проще собрать ABB?
Ewgeny7, т.е. проще собрать ABB?
Просто переделать, там же разница собственно только в распиновке разъема 25дин.
SoftFelix
01.02.2011, 12:58
Ewgeny7, всё понял, буду копать в этом направлении.
WingLion
01.02.2011, 20:43
Может, кому будет интересно: http://winglion.ru/ahdl/ahdl.htm
Может, кому будет интересно
Очень даже будет.
Здравствуйте.
Объясните пожалуйста как формируется видео сигнал в спектруме. Долго и нудно читал мануал от alost'a, но что-то не доходит.
Спасибо. С уважением, Евгений.
Пользуйся поиском. Ты попал не в тему. Здесь не Спектрумы обсуждают, а плисины - см. название темы.
В данный момент пытаюсь состряпать минимальный клон спека на SPARTAN3AN
девборд от стартеркит, на борту собственно ПЛИС, 512к памяти и 50Мгц осцилятор.
Задача минимум - получить на экране "матрас".
Кто-нить знает, как в VHDL преобразовать типы bit_vector и std_logic_vector между собой??? Варианты типа A <= bit_vector(B) и A <= std_logic(B) не работают. Библиотеку numeric_bit и numeric_all уже привинчивал, бесполезно...
---------- Post added at 12:03 ---------- Previous post was at 12:01 ----------
Объясните пожалуйста как формируется видео сигнал в спектруме.
На пальцах объяснять долго. Лучше покури готовый проект - http://www.zx.pk.ru/showpost.php?p=330807&postcount=383
---------- Post added at 12:05 ---------- Previous post was at 12:03 ----------
Долго и нудно читал мануал от alost'a, но что-то не доходит
А вот это напрасно вы, батенька :) Я учился по этим мануалам, там достаточно понятно расписано.
А вот это напрасно вы, батенька :) Я учился по этим мануалам, там достаточно понятно расписано.
спасибо, посмотрю проект.
Я не в том смысле что не доходит совсем :) я о том как его продолжить что бы изобразить видео выход. В идеале мне нужно 2 синхры(это есть) и пиксельные данные(пиксель 0 или 1) для формирования ЧБ изображения на мониторе.
В идеале мне нужно 2 синхры(это есть) и пиксельные данные(пиксель 0 или 1) для формирования ЧБ изображения на мониторе.
Собственно да.
Видеосигнал формируется от 0 до 255, далее бордюр, затем гашение, затем синхра, затем гашение, затем бордюр. Это я описал одну строчку. Для отображения на ВГА эта строчка выодится два раза (с удвоенной скоростью, разумеется), только потом переходим ко второй.
По вертикали изображение строится аналогично, только поле пикселов там будет 0..191 (а не 0..255).
Параметры счетчиков можешь подглядеть в проектах.
С синхрой более или менее понятно. основная непонятка это логическое формирование изображения.. т.е не могу представить немного как формируется сигнал пикселя. понятно что читается из видеопамяти(области памяти отведенной под видео) но как :) Извините..туплю сильно,но это временно :) Т.е что куда подключать и откуда брать сигнал :)
понятно что читается из видеопамяти(области памяти отведенной под видео) но как
Раз в восемь пикселей на ША выставляется адрес и считываются данные в регистр. Далее с каждым тактом/пикселом данные в регистре сдвигаются reg(7..0)<=reg(6..0) & reg(7). Видеосигнал снимаем с 7-го разряда регистра (если считать от нуля).
О! Большое спасибо! ЩАс попробую прикрутить к проекту )
А кто знает как организовать ПЗУ(ROM) на VHDL. Так что бы при компиляции проекта начинку ПЗУ(прошивку) цепляло из файла?
MegaCore Wizard или как то там, пошагово в мастере клоцаешь выбираеш что надо
2ZEK:
Это справедливо для Квартуса. У меня же Xilinx ISE. Там есть конечно IP Core Generator. Щас гляну может быть действительно поможет. спасибо за наводку :)
Получился матрас. За основу взял проект из сети,добавил софт ядро Z80 и ура.. матрас. Теперь проблема как подцепить ПЗУ.. в ПЛИС скорее всего уже не поместится,а микросхему нечем программировать...
WingLion
14.02.2011, 18:56
http://www.msyst.ru/ISE_bramgen.pdf - вот тут рассказано, как делать память с инициализацией из файла в ISE.
ПЗУ - это та же память, только с блокированной записью.
WingLion, где ты раньше был. Методом тыка я пытался что-то настроить. Помню там где-то есть видео генератор, хорошо бы на него описание найти.
WingLion
14.02.2011, 19:48
На самом деле, я про ISE сам почти ничего не знаю, но знаю человека, который по Xilinx сам лекции читает. И та ссылка - с его материалом.
Сюда он вряд ли зайдет, а на моем форт-форуме (http://fforum.winglion.ru/) он появляется постоянно. И там есть раздел hardware, где по плисам тоже есть некоторые ответы.
Ругается ISE на то что шина данных двунаправленная,а у ROM только выход.. говорит нельзя так соединять...
WingLion
15.02.2011, 18:21
Ругается ISE на то что шина данных двунаправленная,а у ROM только выход.. говорит нельзя так соединять...
Надо влезать в исходник процессора и разделять шину на две. Одну входную и одну выходную, чтобы двунаправленых шин внутри ПЛИС не было. Иначе будет ругаться постоянно.
Надо влезать в исходник процессора и разделять шину на две.
T80s имеет две шины данных. В отличие от Т80а с одной двунаправленной.
тогда получает засада с памятью блин... у памяти шина двунаправленная. можно конечно попробовать совместить шину данных что идет к памяти через какой нить повторитель с сигналом разрешения и рулить им сигналами чтения/записи в память с процессора... покя тяжело это себе представляю но зачатки уже есть :)
Ничего сложного. Смотри примеры проектов. Сейчас я уже и не представляю как сделать комп на одношинном процессоре :)
USERHOME
25.02.2011, 02:32
К первому посту приаттачить можно
Осваиваем ПЛИС Xilinx (http://radiokot.ru/start/mcu_fpga/xilinx/01/)
Там побродите повнимательней и многое найдёте для себя полезного:v2_wink2:
Ещё я здесь читал и пробовал кое-что, даже получалось..:v2_dizzy_roll:
Доходчиво и с примерами.:v2_dizzy_coder:
А есть у кого нить таблетка для Active HDL симулятора 8.3 ? Или может быть есть уже симулятор с таблеткой? Поделитесь плиииз :)
http://we.easyelectronics.ru/blog/plis/
добавьте в начало
добавьте в начало
Добавлю.
Я там уже тоже "пометил территорию" - тынц (http://we.easyelectronics.ru/ewgeny7/vhdl-primer-proektirovaniya.html) :)
Подозрительно дешевый девайс, при чем по параметрам вполне себе
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=593
ZEK,учитывая, что еще
On-board USB-Blaster circuit for programming
просто сказака какая то:)
Если бы они выводили USB Blaster на разъем была бы сказка, по цене втрое меньше оригинального бластера.
Если бы они выводили USB Blaster на разъем была бы сказка, по цене втрое меньше оригинального бластера.
А на этом же сайте USB Blaster стоит $50 (http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=&No=46).
У кого нить есть описание смещений в содержимом файлов jic, pof, sof ?
Слепил я себе usb-blaster для Квартуса. При максимально простой схеме имеется засада - он сделан на PIC18F2550. Сам чип обошелся мне в 310рэ (в Чудо-Чипсе мне его предлагали за 1050 :eek:). Плату сделал и запаял быстро, затем два с хвостиком дня ушло на борьбу с ПИКом. Перепробовал три разновидности программаторов с сети. Нифига. Не хочет.
В конце концов победил-таки ПИК, собрав на половину JDM-программатор без стабилитронов (ну нет их у меня...), скачав winpicprg и присобачив всё это к компу через USB2COM адаптер кетайский. Шилось больше часа. Без шуток. Узнал, что верификация блока кодов может длиться дольше чем программирование в два раза. Жесткач...
Но сам бластер работает великолепно!
Файлы заливаются со свистом. Рекомендую.
Файлы взял отсюда (http://we.easyelectronics.ru/plis/usb-blaster.html#comment1326).
Оно кстати тормознете FT245+CPLD причем очень заметно
Оно кстати тормознете FT245+CPLD причем очень заметно
Но дешевле, меньше и проще. Насчет тормознее - не сильно, FT245+CPLD у меня есть. Быстрее БайтБластера в разы.
axel_sunrise
14.03.2011, 07:25
Перепробовал три разновидности программаторов с сети. Нифига. Не хочет.
В конце концов победил-таки ПИК, собрав на половину JDM-программатор без стабилитронов (ну нет их у меня...), скачав winpicprg и присобачив всё это к компу через USB2COM адаптер кетайский. Шилось больше часа. Без шуток. Узнал, что верификация блока кодов может длиться дольше чем программирование в два раза. Жесткач...
Но сам бластер работает великолепно!
Файлы заливаются со свистом. Рекомендую.
Файлы взял отсюда (http://we.easyelectronics.ru/plis/usb-blaster.html#comment1326).
Думаю,можно при покупке заказать,чтоб прошили пик,стоит всего 100 руб прошивка...я кстати не смог пик прошить
допустим здесь
http://www.mkpochtoi.narod.ru/
Ewgeny7,
http://we.easyelectronics.ru/plis/usb-blaster.html
---------- Post added at 08:31 ---------- Previous post was at 08:30 ----------
там и схемка для Pic
---------- Post added at 09:05 ---------- Previous post was at 08:31 ----------
гыгы почитал коменты.
Ewgeny7,
http://we.easyelectronics.ru/plis/usb-blaster.html
Дык а я о чем? Там моих постов больше чем у других :)
Насчет тормознее - не сильно, FT245+CPLD у меня есть
Я проверял на заливке 50мег, сначала залил через встроенный в DE1 USB blaster (там 2 JTAG порта один на юзерские пины идет), потом через пиковский JTAG, для теста юзал альтеровскую корку JTAG которая с квактусом идет, результат - в 3 раза медленней. Но это не важно по сравнению с байтбластером. А еще периодически на 10.0 квактусе отваливается, мож конечно я где то накосячил...
Я проверял на заливке 50мег
Это, простите, нафига? И куда? Обычно речь идет о килобайтах, а там скорость вообще ничего не значит.
Это, простите, нафига?
Тестировал, хотел узнать насколько хуже/лучше связки ft245+cpld
Щаз я сам интернет порою, но спрошу на всякий случай - а usb-бластером можно шить AVR'ки? Не встречалась кому-нибудь такая прога?
Есть svf плееры и если не гоню то вроде поддерживают USB blaster (название проекта забыл), в общем если существуют конвертеры прошивок AVR в svf формат то проблем не должно быть. ARM таким макаром прошивают
DE0-Nano поступил в продажу.
У кого нить есть опыт покупки напрямую в Terrasic ??
sergey2b
17.03.2011, 11:17
У кого нить есть опыт покупки напрямую в Terrasic ??
я покупал
не каких проблем небыло, прислали EMS за неделю
причем EMS козлевичи не позвонив мне и не застав дома написал что я отказался от посылки
Terrasic контактировал и выяснял в чем дело
я покупал
а оплачивал как?
sergey2b
17.03.2011, 14:26
а оплачивал как?
кредиткой
ZEK, если нету Visa
можно прикупить виртуальную в Qiwi автоматиках
стоит не дорого действует 3 месяца
кто знает подскажите плз, есть 4 штуки CY37256P160-125AXC
написано что это CPLD. Я так понимаю это почти тоже самое что FPGA ?
Если да то должна быть какая то среда разработки для них.. типа Квартуса или ISE... или нет?
balu_dark
24.03.2011, 13:40
cpld и fpga отличаются. в сплд конфигурация прошивается в EEPROM память и количество таких прошивок ограничено . В разных кристалах от 100 до 1000 раз.
в FPGA память - просто RAM тоесть нет ограничения на количество програмирований. но в EEPROM памяти - пришивка остается при выключении питания чипа, а в RAM надо каждый раз после включения - заливать заново конфигурацию.
Для отладки и обучения чаще берут FPGA потому как нет ограничений на количество прошивок.
Спасибо, теперь все понятно. CPLD это такой вариант FPGA для поточного производства. Теперь вопрос, для конкретной модель от кипариса какая нужна среда разработки. у них на сайте я чет ничего не нашел.
Спасибо, теперь все понятно. CPLD это такой вариант FPGA для поточного производства. Теперь вопрос, для конкретной модель от кипариса какая нужна среда разработки. у них на сайте я чет ничего не нашел.
не оно? http://www.cypress.com/?rID=14314
USERHOME
26.03.2011, 11:09
не оно? http://www.cypress.com/?rID=14314
Если можно то по Русски пожалуйста (мини описание)
Буду очень признателен :)
У меня просто микросхемы лежат в вакуумном пакете. Думал приспособить под спек, но непонятно чем их програмировать и в чем разрабатывать. Обгуглил пол инета :)
USERHOME
26.03.2011, 13:25
...... Обгуглил пол инета :)
И посмотрите пожалуйста ссылку http /forum.xdevs.com/viewtopic (http://forum.xdevs.com/viewtopic.php?f=16&t=217&start=0&st=0&sk=t&sd=a&sid=a639304a1b59e1cb842f8654449cb1a3)
Интересуют три красные квадратные "платки" на них СПЕК можно собрать или я настолько тупой, что ничего не понимаю.
И ещё ссылка http www.kit-e (http://www.kit-e.ru/author.php?author_id=8)
можно я думаю. Не знаю только как там по оъьему макроячеек. И память придется вешать внешнюю скорее всего. Вообще Стартикс это модель после циклонов или до?
три красные квадратные "платки" на них СПЕК можно собрать
Можно. У стратиксов емкость огромная, внутренней памяти хватит для ПЗУ. Но ОЗУ придется внешнюю вешать.
USERHOME
26.03.2011, 17:40
... Но ОЗУ придется внешнюю вешать.
А что есть варианты (в природе я имею ввиду) внутреннего ОЗУ ?
А что есть варианты (в природе я имею ввиду) внутреннего ОЗУ ?
У всех FPGA есть внутреннее ОЗУ, которое может работать и как ПЗУ. Но объем этой памяти у разных чипов разный. Сколько у стратиксов - не знаю, не смотрел доки.
USERHOME
27.03.2011, 00:46
.....Процессор Z80 внутри ALTERA Cyclone II тоже чувствует себя неплохо..... (http://forum.xdevs.com/viewtopic.php?f=16&t=287&st=0&sk=t&sd=a) Аж слезу выбило...
Плохо, что я отстал от "новых технологий" тяжело будет наверстать упущенное. На словах я то понимаю Z-80 на FPGA, а вот в реале даже не представляю, как это реализуется на практике (например, какие минимальные требования к микросхемам FPGA т.е. в какую влезет а в какую нет..:v2_dizzy_facepalm:)
В VDHL ADHL полный "0" могу по старинке рисовать в "MaxPlus Alter'e" логику на микросхемах. Интересно а в програмном обеспечении для FPGA стратикс можно рисовать в графическом виде (примитивы, как понял это называется):confused:?
И есть ли переводчики из xDHL в графику, из графики в xDHL (x=A и/или V)
какие минимальные требования к микросхемам FPGA т.е. в какую влезет а в какую нет..
В CYCLONE I и выше. В ACEX, примененный, например,в zx-evolution - не влезет. В него только КР580ВМ80 можно упихнуть.
Интересно а в програмном обеспечении для FPGA стратикс можно рисовать в графическом виде
Программное обеспечение для всех одно - Квартус. В нем можно как тебе хочется логику описывать, схемным ввод - в том числе. В старом Макс+ нет поддержки новых чипов, поэтому лучше потратить денек на освоение кактуса. Разница там не сильно принципиальна.
И есть ли переводчики из xDHL в графику, из графики в xDHL (x=A и/или V)
Нет.
Правда, кактус автоматом переводит (описывает) схемный ввод в подобие AHDL при компиляции, этот файлик валяется где-то в недрах скомпилированного проекта.
Но лучше не забивать голову AHDL'ом, а покурить VHDL. Для начинающих этот язык понятнее, документаций и форумов с его адептами - пол рунета. На нашем форуме также достаточно мануалов/примеров для начала.
USERHOME
27.03.2011, 21:54
Огромное спасибо за разъяснения.
в zx-evolution - не влезет......
zx-evolution - это что такое ? ткните ссылочкой, если не сложно:v2_dizzy_fisher: (p.s. в АЗЫ так сказать)
Программное обеспечение для всех одно - Квартус. Я так понял есть какая-то WEB версия, её хватит начинающему ?:v2_dizzy_tired2:
USERHOME, вот тут (http://www.google.ru/search?hl=ru&source=hp&q=zx-evolution&aq=f&aqi=&aql=&oq=) не смотрел?
USERHOME
28.03.2011, 02:15
Дмитрий
Спасибо!
Посмотрел, стал немного втягиваться в "историю развития" клоностроения:v2_dizzy_step:
Вообще очень интересно и познавательно. Иногда нужно чтобы ткнули носом и немного объяснили что к чему.:v2_dizzy_vodka3:, тогда чувствуешь себя человеком.
Я так понял есть какая-то WEB версия, её хватит начинающему ?:v2_dizzy_tired2:
Не советую ни в коем случае Web версию - намучился в своё время, наловил глюков. Качай полную.
USERHOME
28.03.2011, 13:32
Не советую ....... Качай полную.
Полная - платная версия ?
Она идёт в комплекте с "условно-макетной" платой ?
Полная - платная версия ?
rutracker.org
Kakos_nonos
28.03.2011, 16:39
Подскажите, есть ли эмуляторы плис на AVR?
Kakos_nonos, есть обратное - эмулятор AVR на плис... а вот первое - это нечто тормозное и неспособное для жизни получится, имхо! Проще уж в симуляторе на ПК это увидеть, чем на AVR.
Kakos_nonos
28.03.2011, 18:17
Плохо :(
Добрый день.
Я, конечно, извиняюсь, что не прочитал предыдущие 83 страницы этого замечательного монументального топика. Только пару десятков.
Вопрос простой, он меня мучает несколько лет)).
Что мешает "засунуть" в одну здоровую плисину z80, ay, обвязку, оставив "снаружи" только flash для плисины(онже и пзу для спека) + озу.
То есть, почему для суперспектрума нельзя обойтись всего 3 микрухами на плате?
Есть аж 3 варианта которые производились какими не каким партиями
Добрый день.
Я, конечно, извиняюсь, что не прочитал предыдущие 83 страницы этого замечательного монументального топика. Только пару десятков.
Вопрос простой, он меня мучает несколько лет)).
Что мешает "засунуть" в одну здоровую плисину z80, ay, обвязку, оставив "снаружи" только flash для плисины(онже и пзу для спека) + озу.
То есть, почему для суперспектрума нельзя обойтись всего 3 микрухами на плате?
Вот для примера http://zx.pk.ru/showthread.php?t=13223
Что мешает "засунуть" в одну здоровую плисину
Ничего не мешает. Поэтому неоднократно засовывалось.
Ура, здравый смысл торжествует. Гармония побеждает!
---------- Post added at 23:30 ---------- Previous post was at 23:29 ----------
Спасибо за мою веру в человечество)).
А есть полноценная версия Спектрума для DE1, которая была бы opensource, которую можно было бы скачать, залить и играть?
А есть полноценная версия Спектрума
Смотря что считать полноценностью. Некоторые считают с мафоном - полноценно, а кому и тырдоса мало.
Полноценная в моем понимании — это дружелюбная. Пусть бы это был даже 48К без AY, но чтобы было не нужно ничего заливать во флеш, где понятно, как работает клавиатура, какие кнопки чему соответствуют, понятно где джойстик, когда понятно как загружать игры. Чтобы было какое-то описание.
Иными словами, когда не очень хорошо знакомый со Спектрумом человек (я) может скинуть сколько-то файлов на SD-карту, залить прошивку в плату и поиграть, потратив на это не очень много времени.
Иными словами, когда не очень хорошо знакомый со Спектрумом человек (я) может скинуть сколько-то файлов на SD-карту, залить прошивку в плату и поиграть, потратив на это не очень много времени.
Портировать u9_Speccy на DE1. Много времени не займет. Или u10_speccy, он проще, использует только SRAM, поэтому перенести еще легче. Выход на ВГА, загрузка игр с SD.
загрузка игр с SD
Или с мафона.
PS на крайний случай можно и в бейсике набрать простенькую.:v2_wink2:
Портировать u9_Speccy на DE1. Много времени не займет. Или u10_speccy, он проще, использует только SRAM, поэтому перенести еще легче. Выход на ВГА, загрузка игр с SD.
Не то что бы я собираюсь это делать, но допустим кто-то соберется. От u9_speccy, u10_speccy есть сорцы в широком доступе? Или кому-то покажется проще опять все сделать с нуля?
От u9_speccy, u10_speccy есть сорцы в широком доступе?
Вот, пожалуйста, (http://zx.pk.ru/showthread.php?t=13875) в первом или во втором посте, на любой вкус.
---------- Post added at 12:29 ---------- Previous post was at 12:27 ----------
Есть готовые конфигурации, можно и сорцы выложить, только они ещё не полностью доработаны. ВГ93 прикрутим и сорцы можно выкладывать.
Или кому-то покажется проще опять все сделать с нуля?
Если кому-то подарят DE1, то он хоть с нуля всё сделает :)
USERHOME
31.03.2011, 21:17
Если кому-то подарят DE1, ....
Можно расшифровочку для глупых - DE1 ?
USERHOME, Altera DE1. Плата для разработчиков.
Народ, кто нить имел дело с ПЛИС конторы Xillinx ? Что то у меня в XC3S50AN не влазит даже процессор T80s :( Просто проц, wait, int, nmi, busrq подтянуты к +
шины на внешние пины(ради эксперимента) выход М1 на внешний пин и на лограф. ISE говорит что проект превышает размер кристалл оО Щас просмотрел проект в кактусе полный спек(с обрезаной ПЗУ) занимает меньше 2% кристалла циклон 3. По даташиту в моей плисине 50 000 эквивалентных винтелей... есть какое нить отношение этих винтелей к ячейкам цклона??? Невойму это правда такая мелкая ПЛИС или загоны ISE :(
Народ, кто нить имел дело с ПЛИС конторы Xillinx ? Что то у меня в XC3S50AN не влазит даже процессор T80s Просто проц, wait, int, nmi, busrq подтянуты к +
шины на внешние пины(ради эксперимента) выход М1 на внешний пин и на лограф. ISE говорит что проект превышает размер кристалл оО Щас просмотрел проект в кактусе полный спек(с обрезаной ПЗУ) занимает меньше 2% кристалла циклон 3. По даташиту в моей плисине 50 000 эквивалентных винтелей... есть какое нить отношение этих винтелей к ячейкам цклона??? Невойму это правда такая мелкая ПЛИС или загоны ISE
Эт у тебя только 1408LE (T80 надо около 2000LE) http://biakom.com/altera/comparing/xilinx
понятно. спасибо. Значит в утиль её
Alex_NEMO
07.04.2011, 19:43
Слепил я себе usb-blaster для Квартуса...
Женя, там кварц на сколько - на 12 или 20 МГц?!! А то на изиэлектрониксе - 20 МГц, у японца на сайте 12 МГц... Где истина?!!
понятно. спасибо. Значит в утиль её
Необязательно. Я на EPM7128SLC84 собирал всю логику на ПК "Специалист" (процессор и память наружу). А можно вот эти проекты - http://marsohod.org/index.php/projects.
Alex_NEMO, 20.
---------- Post added at 20:22 ---------- Previous post was at 20:20 ----------
понятно. спасибо. Значит в утиль её
На подобном чипе сделана ПентЭва (1500LE). Проц снаружи, логика внутри.
Спасибо. Память и так снаружи. Хотело что бы и проц был внутри.. Вот щас думаю что заказать .. Циклон3 или спартан6
Спасибо. Память и так снаружи. Хотело что бы и проц был внутри.. Вот щас думаю что заказать .. Циклон3 или спартан6
Заказывай тогда Stellarton [http://www.slashgear.com/intel-stellarton-atom-e600fpga-promises-flexible-embedded-devices-14102251/]. Хоть кто-то может сделает не ясельное железо... :)
Или используй уже готовые решения, все равно лучше нечего не придумаешь...
Заказывай тогда Stellarton
"404 -Ops ... Gearhead messed up!"
"404 -Ops ... Gearhead messed up!"
наскоко я понял intel понял что процессоры это DEAD END в развитии железа и теперь всяким алтерам и ксилинксам будет труба когда intel amd nvidia прийдут на этот рынок:
http://www.slashgear.com/intel-stellarton-atom-e600fpga-promises-flexible-embedded-devices-14102251/
но это не ранее чем через 5 лет
а не круто ли на такой железке воспроизводить спек? :)
USERHOME
08.04.2011, 20:40
Alex_NEMO, 20.
На подобном чипе сделана ПентЭва (1500LE). Проц снаружи, логика внутри.ПентЭва - это что?
USERHOME
http://nedopc.com/zxevo/zxevo.php
Как отучить квактус за меня лишние связи делать?
Вот, например код (http://zx.pk.ru/attachment.php?attachmentid=27753&stc=1&d=1308325110)
RTL рисует мне лишнюю линию. (она красным выделена и разрезана)
Как мне избавиться от этого соединения не меняя код?
PS Рисую то же самое, только схемно, он в RTLe прорисовывает как на схеме... То есть без лишней связи. Преобразую схему в VHDL, потом этот VHDL компилирую, и, оппа - опять лишняя линия...:mad:
вообще нездорово писать что бы юзалиль pre и clr где нить кроме как начальная иницилизация, очень плохая практика для fpga/cpld, из за гонок сигналов можно очень веселые глюки ловить.
а красная перечеркнутая цепь отражает
if dos_on = '0' then
dos <= '0';
elsif dos_of = '0' then
dos <= '1';
красненькое
А как же это?
PS Рисую то же самое, только схемно, он в RTLe прорисовывает как на схеме... То есть без лишней связи. Преобразую схему в VHDL, потом этот VHDL компилирую, и, оппа - опять лишняя линия...
Как отучить квактус за меня лишние связи делать?
Переделать этот кусок кода по другому...
---------- Post added at 22:03 ---------- Previous post was at 21:50 ----------
Например:
res_dos <= '1' when ( m1 = 0, mreq = 0, (a14 or a15) = 1 ) else '0';
set_dos <= '1' when ( m1 = 0, mreq = 0, (a15..a8) = "#3D" ) else '0';
process(res_dos,set_dos)
begin
if res_dos = '1' then
dos <= '0';
elseif ( rising_edge(set_dos)) then
dos <= '1';
end if;
end process;
Таким образом, по переднему фронту set_dos мы устанавливаем признак активности доса, а сбрасываем его асинхронно (вход clr триггера dos) сигналом res_dos.
Вопрос к знатокам. Почему для симуляции процессора z80 всегда используется T80 (VHDL, 35MHz) и его разновидности и нет никакого упоминания про использование других OpenCore процессоров, таких как: nextz80 (Verilog, 40 MHZ), tv80 (Verilog), Wishbone High Performance Z80 (Verilog, 90 MHZ), z80control (VHDL)?
Наверное потому, что большинство начинают свои проекты смотря на других и T80 был, наверное, первым общедоступным полноценным Z80. Кому охота, не имея особой уверенности в собственных силах, испытывать еще какой-то непроверенный код? К тому же то, что T80 работает максимально приближенно к оригиналу, для большинства проектов важнее той максимальной тактовой частоты, которую он способен выдержать.
Сделайте проект на каком-нибудь другом. У T80 немного достоинств. Толстый, в коде черт ногу сломит. Из-за его универсальности часто невозможно понять что там вообще относится к делу, а что нет. Точно совершенно можно сделать лучше.
Т80 вылизан по самое не горюй. В нем уже все команды работают корректно.
Что там творится в прочих реализациях на Верилоге - точно не известно.
Вся Амига 1200 со всеми потрохами в одном чипе уже есть http://opencores.org/project,aoocs , а ведь это более сложная система, чем спек...
balu_dark
01.08.2011, 21:20
Вообще-то - это А1000 - самая первая амига с OCS чипсетом. до А1200 этому проекту весьма далековато...
Спасибо. А звуковая часть у A1000 и A1200 одинаковая? Я к тому, чтобы ее оттуда выдернуть и использовать со спеком?
krotan, проще спек припаять сбоку к амиге - получится как раз Sega Megadrive.
Народ как реализовать выборку сигнала DOS для того чтобы в окно TR DOS залезть. У меня он пролетает. Если на дискретах можно было кондерчиком подзадержать, а тут как. Сегодня полдня голову ломал, решил пока отдохнуть. Я делаю прошлогодний проект - второго феникса. Там применены CPLDшки EPM7032. Пишется на языке подобном AHDL. Вобщем поскажите неразумному.
в каком смысле пролетает?
ты должен дос устанавливать по логике
ROMS = 1 A[15:8]=3D M1=0 MREQ=0
сброс
A[15:14] != 0 M1=0 MREQ=0
а задержки сигналов делают сдвиговым регистром
в каком смысле пролетает?
ты должен дос устанавливать по логике
ROMS = 1 A[15:8]=3D M1=0 MREQ=0
сброс
A[15:14] != 0 M1=0 MREQ=0
Ну да в теории это так, а на практике - пролетаем мимо ПЗУ TRDOS а летим в васик 48. У меня такое уже бвло на первом Фениксе, только там ставили кондерчики чтобы этих иголок не было. А тут из CPLDшки выходит только сигнал DOS :)
А синхронизирован сигнал DOS с клоком CPU?
А синхронизирован сигнал DOS с клоком CPU?
Каким образом?
Вот фрагмент относительно DOS от старой реализации Скорпа:
process(clock,res_n,dos_win,ramm1,nmi_n)
begin
if (clock'event and clock = '1') then
if (res_n = '0') then
dos <= '0';
else
if (ramm1 = '1') then
dos <= not(nmi_n);
end if;
if (dos_win = '1') then
dos <= '1';
end if;
end if;
end if;
end process;
ramm1 <= '1' when (m1_n = '0' and rom_sel = '0' and rd_n = '0' and mreq_n = '0') else '0';
dos_win <= '1' when (cpu_a_bus(13 downto 8) = "111101" and m1_n = '0' and p_7ffd(4) = '1' and rom_sel = '1') else '0';
process(clock,res_n,dos_win,ramm1,nmi_n)
Пока Verilog и VHDL не обучен. Мне попроще бы. :)
Нужно сигнал /DOS завести на вход D триггера, на вход C триггера подать CLK Z80 или 14 МГц, главное тут учесть что если Z80 работает по заднему фронту CLK то /DOS нужно защелкивать по переднему.
олетаем мимо ПЗУ TRDOS а летим в васик 48
а можно AHDL кусок, ток непосредственно логики DOS, а то в нем туго очень колупаться, наверное замешано что то лишнее или сигнал фиксируется тригером не поздно
а можно AHDL кусок, ток непосредственно логики DOS, а то в нем туго очень колупаться, наверное замешано что то лишнее или сигнал фиксируется тригером не поздно
Просьба не пинать сильно, я описал кусок схемы из фени.
A45 - это A[15,14]
%============== Формирователь сигнала выбора кода инструкции из памяти ================%
SEL_CODE = M1 # MREQ;
%============== Формирователь сигнала выбора окна ПЗУ =================================%
SEL_3DXX = !(ADDR[8] & !ADDR9 & ADDR[10] & ADDR[11] & ADDR[12] & ADDR[13] & ROM128 & A45 & !SEL_CODE);
%================ Формирователь сигнала NMI ============================================%
NMI_REG.d = MAGIC;
NMI_REG.clrn = VCC;
NMI_REG.clk = SEL_CODE;
NMI_REG.prn = SEL_3DXX;
NMI = NMI_REG.q;
%===================== Формирователь сигнала DOS =========================================%
DOS_REG.d = VCC;
DOS_REG.clrn = RES & (SEL_CODE # A45);
DOS_REG.clk = VCC;
DOS_REG.prn = SEL_3DXX & NMI_REG.q;
DOS = !DOS_REG.q;
Как-то так...
DOSRG = !DOS_REG.q;
DOS_SYNC.d = DOSRG ;
DOS_SYNC.clrn = VCC;
DOS_SYNC.clk = F14; или Z80 CLK
DOS_SYNC.prn = VCC;
DOS = DOS_SYNC.q;
Как-то так...
Спасибо, попробую этот вариант - может заработает.
Спасибо, попробую этот вариант - может заработает.
Вы лучше вместо D-триггера в режиме асинхронного SR-триггера используйте синхронный SR-триггер.
На CLK - частоту проца, на S и R логику включения и выключения.
Вы лучше вместо D-триггера в режиме асинхронного SR-триггера используйте синхронный SR-триггер.
На CLK - частоту проца, на S и R логику включения и выключения.
Это типа примитива SRFF вместо DFF. Я так понял.
%===================== Формирователь сигнала DOS =========================================%
DOS_REG.clrn = VCC;
DOS_REG.prn = VCC;
DOS_REG.r = RES & (SEL_CODE # A45);
DOS_REG.clk = CLK;
DOS_REG.s = SEL_3DXX & NMI_REG.q;
DOS = !DOS_REG.q;
Это типа примитива SRFF вместо DFF. Я так понял.
Да, да, именно так.
Как-то так...
Попробовал твой вариант - не помогло.
---------- Post added at 20:38 ---------- Previous post was at 20:36 ----------
Да, да, именно так.
А твой помог. Вот мож кому пригодится - рабочий код.
%============== Формирователь сигнала выбора кода инструкции из памяти ================%
SEL_CODE = M1 # MREQ;
%============== Формирователь сигнала выбора окна ПЗУ =================================%
SEL_3DXX = !(ADDR[8] & !ADDR[9] & ADDR[10] & ADDR[11] & ADDR[12] & ADDR[13] & ROM128 & A45 & !SEL_CODE);
%================ Формирователь сигнала NMI ============================================%
NMI_REG.d = MAGIC; %A45 # MAGIC;%
NMI_REG.clrn = VCC;
NMI_REG.clk = SEL_CODE;
NMI_REG.prn = SEL_3DXX;
NMI = NMI_REG.q;
%===================== Формирователь сигнала DOS =========================================%
DOS_REG.clrn = VCC;
DOS_REG.prn = VCC;
DOS_REG.s = !(RES & (SEL_CODE # A45));
DOS_REG.clk = !CLKZ;
DOS_REG.r = !(SEL_3DXX & NMI_REG.q);
DOS = DOS_REG.q;
А такое никто не пробовал? LabVIEW_FPGA (http://www.youtube.com/watch?v=-ulWxOyOfgM)
Кстати еще один глючок нашел при отладки фени. Прерывания временами шли с удвоенной частотой. Я и так и сяк думал как же так, когда по формуле чито должен идти с нормальной частотой. Полез в файл отчета при компиляции. А там это чудо программной мысли(MAX PLUS II) сгенерил мне примитивы EXP, а в литературе пишут, что это глючные примитивы. Вот формулы запихал в примитив LCELL. Вуаля прерывания стали идти с нормальной частотой. Так что при компиляции заглядывайте в файл отчета что там он наделал.
Опять я с тупым вопросом. Пытаюсь читать из AY, а он судя по осцилу пытается писать, линии BDIR и BC1 активны.
Вод код, может я ошибся - в упор смотрю и не вижу.
%============== Формирователь сигнала разрешения доступа к портам AY ============%
BC1 = !CSFD & ADDR14 & ADDR15;
BDIR = !CSFD & !WR & ADDR15;
Дело не в bc1 и bdir
Надо ещё вывести данные на шину
DATi <=(Dat AY) when (a_bus(15 downto 0) = X"FFFD" and cpu_iorq_n='0' and cpu_m1_n = '1' ) else "11111111"
Дело не в bc1 и bdir
Надо ещё вывести данные на шину
DATi <=(Dat AY) when (a_bus(15 downto 0) = X"FFFD" and cpu_iorq_n='0' and cpu_m1_n = '1' ) else "11111111"
У меня CSFD уже включает в себя и IORQ и M1 и младшие адреса.
У меня CSFD уже включает в себя и IORQ и M1 и младшие адреса.
Ну так сотри.
Я пример привёл... Его надо вставить в процесс, где у тебя выставляются данные с чего либо.
---------- Post added at 19:31 ---------- Previous post was at 19:26 ----------
Запиши - DATi <=(Dat AY) when (a_bus(15 downto 8) = X"FF" and CSFD = '1' ) else ........
Только не говори, что csfd у тебя активно = '0'. Сам исправишь, это опять пример.
....
Только не говори, что csfd у тебя активно = '0'. Сам исправишь, это опять пример.
Ага, CSFD активный 0. Дело в том что в AY то пишет данные, музыка то играет.
Дело в том что в AY то пишет данные, музыка то играет.
Ну и что, они не считаются, пока не пропишешь в данные.
AY их выдаёт, но надо провести их на шд процессора.
---------- Post added at 19:43 ---------- Previous post was at 19:42 ----------
Забеги ко мне в аську
AY их выдаёт, но надо провести их на шд процессора.
У Mick`a настоящий AY и настоящий Z80, ИМХО ШД проведена от Z80 и до AY...
У Mick`a настоящий AY и настоящий Z80, ИМХО ШД проведена от Z80 и до AY...
Гыыыыы, не знал, сорри.
Тогда пусть попробуй как в реверсе
bc1 <= '1' when (nM1 = '1' and nIORQ = '0' and A(15 downto 14) = "11" and A(1 downto 0) = "01") else '0';
bdir <= '1' when (nM1 = '1' and nIORQ = '0' and nWR = '0' and A(15) = '1' and A(1 downto 0) = "01") else '0';
И без CSFD, а там посмотрим.
Ну и что, они не считаются, пока не пропишешь в данные.
AY их выдаёт, но надо провести их на шд процессора.
Забеги ко мне в аську
Аська пока недоступна (прогу снес).
Я чисто промоделировал дешифратор то что у меня на схеме обработчик порта xxFD.
Для полной ясности вот весь код.
%============ Формирователь сигнала разрешения доступа к портам ввода-вывода =========%
ENABLE_IO = !M1 # IORQ # IORQGE;
%============ Формирователь сигнала разрешения доступа к портам FXh =================%
ENABLE_FX = !(ADDR[7] & ADDR[6] & ADDR[5] & ADDR[4]) # ENABLE_IO;
%============= Формирователь сигнала разрешения доступа к портам FDh ================%
CSFD = !ADDR[3] # !ADDR[2] # ADDR[1] # !ADDR[0] # ENABLE_FX;
%============== Формирователь сигнала разрешения доступа к портам AY ============%
BC1 = !CSFD & ADDR14 & ADDR15;
BDIR = !CSFD & !WR & ADDR15;
По логике BDIR возникать должен только при записи. А у меня и при чтении.
Естетсвенно он ничего не делает в этом случае и считывает FF с шины.
У меня не проблема довести данные до шины данных ЦП. Проблема в возникновении активного BDIR при чтении.
А что, если взять в скобки...
BC1 = !(CSFD & ADDR14 & ADDR15);
BDIR = !(CSFD & !WR & ADDR15);
Просто этот язык я не знаю, но примерно....
---------- Post added at 20:24 ---------- Previous post was at 20:22 ----------
Или убрать знак !, Чёт мне подсказывает, что CSFD активно '1'...
BC1 = CSFD & ADDR14 & ADDR15;
BDIR = CSFD & !WR & ADDR15;
---------- Post added at 20:26 ---------- Previous post was at 20:24 ----------
Вобщем, я думал это VHDL, и хотел помочь...
Просто этот язык я не знаю, но примерно.
Это типа AHDL
Или убрать знак !, Чёт мне подсказывает, что CSFD активно '1'...
BC1 = CSFD & ADDR14 & ADDR15;
BDIR = CSFD & !WR & ADDR15;[COLOR="Silver"]
Знак ! он же NOT - инверсия. Т.е. если написано !CSFD, то это инверсия сигнала CSFD и активен он нулем :) - смотри весь пример :)
Кстати, вот здесь
CSFD = !ADDR[3] # !ADDR[2] # ADDR[1] # !ADDR[0] # ENABLE_FX;
Почему у тебя выборка идёт по битам адреса 0010, а должно быть просто хх01?
---------- Post added at 20:31 ---------- Previous post was at 20:30 ----------
Или ты клавиатуру опрашиваешь?
Кстати, вот здесь
CSFD = !ADDR[3] # !ADDR[2] # ADDR[1] # !ADDR[0] # ENABLE_FX;
Почему у тебя выборка идёт по битам адреса 0010, а должно быть просто хх01?
А какая разница, что я выбираю порт по полному младшему адресу или по упрощенному.
На самом деле смотри инверсию 1101 - получится D
Для полного понимания знаки: # он же OR, & он же AND, ! он же NOT
Или я опять всё напутал...
---------- Post added at 20:38 ---------- Previous post was at 20:33 ----------
ENABLE_IO = !M1 # IORQ # IORQGE;
м1 должно быть '1', А у тебя что?
---------- Post added at 20:40 ---------- Previous post was at 20:38 ----------
iorq='0', а iorqge здесь зачем? и какой оно должно быть?
Или я опять всё напутал...[COLOR="Silver"]
ENABLE_IO = !M1 # IORQ # IORQGE;
м1 должно быть '1', А у тебя что?[COLOR="Silver"]
Читай выше пост про значении знаков. !M1 => это значит сигнал M1 равный 1 надо проинвертировать. Т.е. в формуле будет участвовать уже M1 = 0 Иначе логическое ИЛИ (OR) не сработает.
Ну, попробуй добавить BDIR = !CSFD & !WR & ADDR15 & RD;
Ну, попробуй добавить BDIR = !CSFD & !WR & ADDR15 & RD;
Думал над этим, чтобы добавить RD. Но тогда почему на дискретах можно обойтись без RD, а тут надо подмешивать. :v2_dizzy_facepalm:
Думал над этим, чтобы добавить RD. Но тогда почему на дискретах можно обойтись без RD, а тут надо подмешивать.
Ты сначала попробуй, может не в этом дело. Тут надо гуру этого языка, а я ......
---------- Post added at 21:23 ---------- Previous post was at 21:06 ----------
В чём компилируешь? У меня Quartus II 9.1 .
Сделал расширялку для робика, на ерм3032 с тем кодом, что выше выложил - то AY работает нормально, а там RD нет...
В чём компилируешь? У меня Quartus II 9.1 .
Max Plus II 10.2
Гм, может он както хитро компилит...
Кстати еще один глючок нашел при отладки фени. Прерывания временами шли с удвоенной частотой. Я и так и сяк думал как же так, когда по формуле чито должен идти с нормальной частотой. Полез в файл отчета при компиляции. А там это чудо программной мысли(MAX PLUS II) сгенерил мне примитивы EXP, а в литературе пишут, что это глючные примитивы. Вот формулы запихал в примитив LCELL. Вуаля прерывания стали идти с нормальной частотой. Так что при компиляции заглядывайте в файл отчета что там он наделал.
Это же ты сам и писал. Мож ещё какой то глюк в проге?
---------- Post added at 21:38 ---------- Previous post was at 21:37 ----------
Переходи на квактус.
Это же ты сам и писал. Мож ещё какой то глюк в проге?
Уже проверил, по отчетам все в норме.
Завтра как вариант скомпилю тоже самое в квактусе.
Да, и просмотр RTLviewer не помешает.
---------- Post added at 21:43 ---------- Previous post was at 21:42 ----------
Завтра как вариант скомпилю тоже самое в квактусе.
Удачи!
Проблема в возникновении активного BDIR при чтении.
Для начала нужно попробовать сделать как можно проще, например переписать вариант подключения от В.М.Г.:
CS_AY = !IORQ & !IORQGE & M1 & !ADDR[1] & ADDR15; Active "1"
BC1 = CS_AY & ADDR14; 0 when OUT #BFFD or not AY port
BDIR = CS_AY & !WR; 0 when IN #FFFD or not AY port
Для начала нужно попробовать сделать как можно проще, например переписать вариант подключения от В.М.Г.:
У меня формирование сигнала CSFD происходит в другой CPLDшке, не в той где формируются сигналы для AY.
Кстати, посмотрел свой старый проект ZXM-777, там для AY я подмешивал сигнал RD. Также и lisica это предложил. Взял добавил линию RD и AY стал нормально работать. Пока для меня загадка почему сигнала WR не достаточно. Ладно эту проблему решили, осталась забычивость контроллера FDC про то, что надо читать :)
WingLion
08.10.2011, 06:38
Как вообще сами по себе ПЛИС EPF10K50VRI240 (наш отечественный аналог 5576ХС1Т), по параметрам, возможностям и т. д.?
В качестве обогревателя она вполне ничего, а как ПЛИС - прошлый век.
А по цене наш "аналог" - даже лимонеру будет жирно дорогим.
Если начинать работать с ПЛИС-ами, надо брать что-нибудь наподобие EP3C25E144I7N. Ценник у нее, конечно, приличный, но ПЛИС того стоит и всяко дешевле чем "аналог" ПЛИСа из прошлого века (в кавычках - это потому, что "аналог" - явно натурально спионереные альтеровские кристаллы). По объему EP3C25, во всяком случае, на порядок лучше чем EPF10K50, и по скорости лучше, и по потреблению намного меньше.
А в некоторых вещах серия FLEX10K вообще годится только глюкало делать (в смысле чтобы кидать в глубокий колодец, ожидая звук "глю!").
Единственное применение для EPF10K50 - в военных проектах, где импорт нельзя использовать, дыры затыкать, да и то только в тех, где начальники самые тупокасочные...
Если начинать работать с ПЛИС-ами, надо брать что-нибудь наподобие EP3C25E144I7N
Угу, Стратиксы еще порекомендуйте...
но по цене они какие-то дешовые EP3C25E144I7N стоит всего - 1890.00 руб
а EP1C3T100, на которой сделан мой первый "Орион-2010", стоила 148 рублей, при этом в нее влезало помимо мелочевки еще и процессор Z80.
Замечательно, но может всёже как-то поконкретнее, а то тяжко.
Насчет ёмкости/цены? Нижний предел для FPGA я уже озвучил, но это надо сильно поискать, обычно цены от 300рублей.
Букафка С с последующей циферкой означает ёмкость чипа в тысячах макроячеек. Например, С12 означает примерно 12000. Если быть еще точнее, то не макроячеек (это понятие относится к CPLD), а неких LE. Но суть тут похожая.
Для примерного сравнения - Z80 занимает 2100LE, при условии, что использованы все ресурсы процессора. Если не использовать в проекте захват шин, прерывания, регенерацию памяти процессором - то и количество необходимых ячеек уменьшается.
В одну ячейку влезает некая кучка логики, типа триггеры-регистры, россыпь простой логики. На примере "Орион-2010" (вы ведь схему Ориона видели?) - процессор съел 1900LE, остальная логика схемы - около 200LE. Далее я уже запихивал в оставшиеся 800 ячеек всякие компорты, драйверы клавиатуры, часы, не помню чего уже...
Это я привел для примерного представления о "расходе" ячеек на проектах, аналогичных "нашей направленности".
Поэтому можете теперь примерно прикинуть, что же можно упихнуть в 25000LE :)
---------- Post added at 00:13 ---------- Previous post was at 00:09 ----------
3. Какую книгу или книги посоветуете начинающему с нуля, для качественного и очень глубокого узучения. ПЛИС (FPGA) и соответствующий софт как и литература для Altera, тут как бы определился уже.
Тут сложнее :( Я пока книг, подобных изучению микроконтроллеров для ПЛИСок не видел. Сам купил когда-то книжицу "VHDL: справочное пособие по основам языка", Бабак В.П., издательство "Додэка". Там достаточно разжеванно описан этот язык, с примерами реализаций. Её могу порекомендовать. А остальное - найдется в интернетах, по запросу "VHDL Verilog для начинающих" :)
Кстати читал статьи вами написаные, очень понравились, может продолжите?
А давайте попробуем сделать, например, "Иришу-М" на ПЛИС? Например, на самой недорогой девборде от vlad'a - u10. ;)
Там 512кб ОЗУ, 5 или 10 тысяч LE. Почитать бы техдоки архитектуры на эту Ирину :)
balu_dark
09.10.2011, 01:31
техдоки - "Большую Красную Книгу" по ирише - выкладывал народ тут на форуме. уже и бинарники есть и вроде платы уже ктото собирал - усё есть господа. :)
balu_dark
09.10.2011, 15:21
Лучше всетакие не HDD а SDcard. Меньше возни и меньшее же потребление. или компакт флэш.
1.1 Стоит ли скачивать Quartus II ver11.0 он весит 2,7 Гбайта.
Я думаю не стоит. Окажется Web версией - хуже не куда с ограничениями и глюками. Я по совету Ewgeny7, скачал вот эту версию.
http://www.zx.pk.ru/attachment.php?attachmentid=29839&stc=1&d=1318168054
Viktor2312, сам по..л недавно,
вот старушка
то нужен кряк какой-то, чтобы она нормально работала?
Есть кряк на эту версию. Вобще то там прописывается ваш мак адрес сетевухи.
Ни одна из этих книг реально помочь не сможет в начале:)
лучше собрать или купить не дорогую дев борду.
Viktor2312, ну да
http://www.ebay.com/itm/Mini-Altera-FPGA-CPLD-USB-Blaster-programmer-JTAG-/270800706274?pt=LH_DefaultDomain_0&hash=item3f0cfadae2#ht_1918wt_905
http://www.ebay.com/itm/Altera-CycloneII-EP2C5T144-FPGA-Mini-Development-Board-/200625047715?pt=LH_DefaultDomain_0&hash=item2eb62f48a3#ht_3383wt_1139
покупая в России приговся к другому порядку цен.
---------- Post added at 23:16 ---------- Previous post was at 23:16 ----------
Да любая подойдет, главно что б работала:)
Я выбрал 9.1, поскольку она УЖЕ нормальная по стабильности (ранние могли вылетать при компиляции), но ЕЩЕ не настолько огромная по размеру. Плюс - она есть полная версия на торрентах с кряком. Веб-версия имеет ограничения, особенно обидное - допускает работу только одного ядра процессора. А когда компиляции идут по 5 - 7 минут, то количество ядер в процессоре резко меняет ситуацию в полной версии.
Также, если писать/отлаживать код коллективно, то крайне желательно иметь одинаковые версии среды разработки, иначе начинаются конвертации и ругань Квактуса.
Viktor2312
09.10.2011, 23:48
покупая в России приговся к другому порядку цен.
посмотрел - ужость, лучше собрать.
PL-USB-BLASTER-RCN ---------- 26100.00 руб.
USB Blaster Download Cable ------ 7240.00 руб.
---------- Post added at 23:48 ---------- Previous post was at 23:46 ----------
Я выбрал 9.1, поскольку она УЖЕ нормальная по стабильности (ранние могли вылетать при компиляции), но ЕЩЕ не настолько огромная по размеру. Плюс - она есть полная версия на торрентах с кряком. Веб-версия имеет ограничения, особенно обидное - допускает работу только одного ядра процессора. А когда компиляции идут по 5 - 7 минут, то количество ядер в процессоре резко меняет ситуацию в полной версии.
Также, если писать/отлаживать код коллективно, то крайне желательно иметь одинаковые версии среды разработки, иначе начинаются конвертации и ругань Квактуса.
Жень ну вот ту версию стоит качать, которую я показал в посте 955
Ewgeny7, ну от машинки еще зависит, для мелочи 8 веб хватает.11 веб поставил, о не юзал еще.
---------- Post added at 23:54 ---------- Previous post was at 23:53 ----------
Viktor2312, закажи на ебае и не парься:)
[/COLOR]Viktor2312, закажи на ебае и не парься:)
+1. Мне обошлось в примерно 900р с бесплатной доставкой в течение 3х недель (привет Почте России, чтоб ей пусто было!).
USB-blaster самодельный обошелся в примерно 150 рублей (на PIC18F14K50).
ну от машинки еще зависит, для мелочи 8 веб хватает
Верно, для мелких проектов на CPLD среда разработки не важна.
Так стоит начинать качать вот эту версию или нет?
Да.
Тоже решил с плис поиграться,качнул квартус 10й,сделал кривоватую платку http://dl.dropbox.com/u/11463601/DSC09586.JPG для микрухи,теперь надо программатор собрать (скорее всего на лпт порт).
WingLion
13.10.2011, 04:51
Квартус лучше версию 9.1 (или более раннюю) качать, если начинать, потому что в нем еще есть встроенный симулятор, с которым можно интуитивно разобраться, а начиная с 10.0 версии альтеровцы его выкинули :( и предлагают пересаживаться на ModelSim, с которым без внешней помощи не разобраться.
А делать что-либо без симулятора сейчас - дохлый номер.
сделал кривоватую платку http://dl.dropbox.com/u/11463601/DSC09586.JPG для микрухи,
эх... разъемчика для подключения программатора-то и не видно. И питание лучше разводить на двух слоях хотя бы, чтобы емкости поставить поближе к выводам ПЛИСа.
сделал кривоватую платку
Посмотри здесь (http://www.zx.pk.ru/showpost.php?p=287630&postcount=1), вполне рабочая "лошадка" на подобной плате :)
Сейчас на ней работают "Скорпион" со "СМУКом" и "Ленинград" с "DivIDE".
Добрый день.
Вопрос к гуру, если плисина не реагирует на попытки со стороны ByteBlaster до неё достучаться, то это говорит о том что она дохлая или возможны варианты (некорректно прошита, например). Другая плисина в этом же разъёме шъётся.
PS. плисина EPM7128SLC84
Спасибо.
если плисина не реагирует на попытки со стороны ByteBlaster до неё достучаться, то это говорит о том что она дохлая или возможны варианты (некорректно прошита, например). Другая плисина в этом же разъёме шъётся.
Должна сразу определиться. Смотрим на напряжение питания и правильность подключения сопряжения со стороны программатора.
плисина EPM7128SLC84
Питание/земля на все двенадцать ног, TCK, TDO, TMS, TDI, GND - подключены правильно. На питание хотя бы один электролит и один керамика 0.1м. Вот минимальный "набор" для работы с этой ПЛИСой.
Ситуация следующая: есть spessy2007, 2 плисины, ByteBlaster. Одна плисина, шьётся, вторая ни в какую не определяется. Почему спрашиваю, не рабочая плисина из заводской упаковки, вроде как вероятность того что дохлая крайне низкая.
PS. Из того что одна шъётся, делаю вывод, что пины подключены правильно, или тут может быть косяк?
или тут может быть косяк?
плотной бархоткой ножки потри. Я обычно тру их об обивку кресла :)
Ewgeny7, жена не ругается? Меня наставник на первой моей работе (на узле связи при шахте) учил бумагой чистить - хороший абразив, если не шибко увлекаться.
Спасибо, вечером сегодня попробую пошаманить.
WingLion
05.12.2011, 17:38
ПЛИС-ины из одной партии или нет?
Если нет, есть вероятность нарывания на китайский контрафакт...
ALTERA несколько лет назад предупреждала о подобном, советовала брать ПЛИСы только у официальных дистрибьютеров.
ПЛИС-ины из одной партии или нет?
Если нет, есть вероятность нарывания на китайский контрафакт...
ALTERA несколько лет назад предупреждала о подобном, советовала брать ПЛИСы только у официальных дистрибьютеров.
Посмотрел, партии разные, и различный размер шрифта надписей, стилистика и расположения одинаковы. Причём на рабочей ПЛИС-ине качество нанесения маркировки несколько хуже. Как-нибудь выяснить ПЛИС-ина из китайского ящика или из нет можно(даты, номера партий)?
Посмотрел, партии разные, и различный размер шрифта надписей, стилистика и расположения одинаковы. Причём на рабочей ПЛИС-ине качество нанесения маркировки несколько хуже. Как-нибудь выяснить ПЛИС-ина из китайского ящика или из нет можно(даты, номера партий)?
У меня один раз попалась партия (штук 10), из которой половину пришлось выбросить - не шились, а некоторые грелись.
Потом я стал все проверять.
В теме про Speccy2007 Alex_NEMO тоже не мог прошить EPM7128SLC-84 на новом компьютере.
Помогла прошивка на старом (http://zx.pk.ru/showpost.php?p=284150&postcount=59).
Может попались ПЛИС, зависящие от времянок во время прошивки...
У меня есть ПЛИСинка EPM3032ALC44, так она, зараза, шьется только будучи вставленной в СМУК второй ревизии. Прошить ее где-либо еще не получилось :)
Обычно ByteBlaster работает в "заднице" компа (LPT разъем), но для удобства его подключают через "хвост" (удлинитель), что существенно влияет на сигнал (затухания, помехи, емкость...). В общем, заморачиваться так сильно не нужно и покупать у проверенных временем дистрибюторов, а иначе кот в мешке Вам обеспечен... Гарантии ведь нет? :)
Вобщем примерно понятно, что можно попытаться сделать:
1. Шаманю с контактами
2. Если не получилось, то беру официальный док и смотрю что должно быть в минимальной обвязке, для того что бы увидел программатор, проверю плату на соответствие
3. Попробовать прошить на компе класса PII.
Если ничего не помогло, то скорее всего в ведро.
По результатам отпишу.
axel_sunrise
06.12.2011, 15:03
а некоторые грелись.
подобное встречал с этой плисиной
Решил поднять тему. Вот известная схема удвоения частоты. Но реализация её на ПЛИС не к чему в симуляторе Квартуса не привела - на выходе ноль. Так должно быть?
http://zx.pk.ru/attachment.php?attachmentid=32997&stc=1&d=1329066988
Так должно быть?
да, потому что этот кусок схемы синтезируется в табличку истинности либо in=out либо in=~out, в итоге либо займет одну LUT либо вообще будет заменено дорожкой.
Значит реализация данного кусочка не желательна в ПЛИС - на выходе никогда ничего не появится?
P.S. В схеме ошибка элементы исключающие ИЛИ без инверсии.
ПЛИС - на выходе никогда ничего не появится?
для этого есть специальные цифроаналоговые умножители в составе некоторых чипов, можно самодельный сделать но надо снаружи транзюк и конденсатор как минимум, есть еще косяковые методы с отключением оптимизатора, и делать для задержки цепочки lcell
fifan, такая асинхронная схема, наверно, заработает, если правильно задать констрейнты.
WingLion
12.02.2012, 22:38
Вот известная схема удвоения частоты.
В ПЛИС подобные схемы - однозначные генераторы глюков...
Если надо удваивать частоту - надо использовать встроенную PLL.
Хотя, если очень хочется, то попробовать такую схему собрать можно, только надо писать ее соответствующе...
out = LCELL(in xor LCELL(LCELL(in))); - на AHDL
В MAX-Plus II с CPLD такое вполне проканало... а с FPGA были проблемы...
На VHDL такое не пишется, а если и записать то оно соптимизируется в
out <= '0';
В то же время, если удваиваемая частота не слишком высока и есть более высокая тактовая, то можно задержку сделать на D-тригере:
out = DFF(in xor DFF(in,clk_up,,),clk_up,,);
Tакая штука сгенерит два коротких импульса на каждом фронте сигнала in, но только при условии, что clk_up имеет частоту значительно выше, чем частота на входе in.
Я просто хочу получить частоту 4 МГц из 10 МГц входных. Решил сначала удвоить частоту, а затем поделить на 5. В семействе MAX7000S функций PLL почти нет. Я нашёл одну: внутренний генератор - мне не пойдёт.
WingLion
13.02.2012, 06:06
Вот как-то так можно получить 4 мегагерца из 10...
CLK10 : input;
CLK4 : output;
VARIABLE
CT[1..0] : DFF;
C4 : NODE;
BEGIN
CT.clk = C4;
CT[].d = CT[] + 1;
C4 = LCELL(CLK10 xor CT[1]);
CLK4 = CT[1];
---------- Post added at 05:06 ---------- Previous post was at 04:51 ----------
ошибочка - это схема деления на 1.5
Деление на 2.5:
SUBDESIGN test(
CLK10 : input;
CLK4 : output
)
VARIABLE
CT[3..0] : DFF;
C4 : NODE;
BEGIN
CT[].clk = C4;
CASE CT[] IS
WHEN 0 => CT[] = 1;
WHEN 1 => CT[] = 2;
WHEN 2 => CT[] = 4;
WHEN 3 => CT[] = 4;
WHEN 4 => CT[] = 5;
WHEN 5 => CT[] = 6;
WHEN 6 => CT[] = 0;
WHEN 7 => CT[] = 0;
END CASE;
C4 = LCELL(CLK10 xor CT[2]);
CLK4 = CT[2];
END;
только что в квартусе на симуляторе проверил.
Подобным образом можно построить делитель на любой полуцелый коэфициент.
п.с. Идея заимствована из журнала "Радио" из прошлого тысячелетия.
Что-то не вяжется с частотой. Входная - 10 МГц ~100 нС. Выходная - 500 нС ~ 2 МГц. В верхнем примере считается частота 10/2=5. Т.е. деление не в 2,5 раза, а в 5 раз.
WingLion
13.02.2012, 20:06
А можно поподробнее, хотя бы год за который журнал, если конечно там описывался принцип работы с ПЛИС? И вообще в журнале Радио что-то печаталось о ПЛИС, как о микроконтроллерах?
это было во времена, когда ПЛИС еще и в помине не было...
Схемка на рассыпухе была дана.
Номеров не помню, ибо те времена и те интересы давно канули в лету...
А про ПЛИС (и не только) сейчас печатается не мало в журнале "Компоненты и Технологии".
---------- Post added at 19:06 ---------- Previous post was at 18:51 ----------
Что-то не вяжется с частотой. Входная - 10 МГц ~100 нС. Выходная - 500 нС ~ 2 МГц. В верхнем примере считается частота 10/2=5. Т.е. деление не в 2,5 раза, а в 5 раз.
Хм, и вправду накосячил... Не с того выхода счетчика сигнал снял...
Обновленная схема:
SUBDESIGN test(
CLK10 : input;
CLK4 : output
)
VARIABLE
CT[3..0] : DFF;
C4 : NODE;
BEGIN
CT[].clk = C4;
CASE CT[] IS
WHEN 0 => CT[] = 1;
WHEN 1 => CT[] = 2;
WHEN 2 => CT[] = 4;
WHEN 3 => CT[] = 4;
WHEN 4 => CT[] = 5;
WHEN 5 => CT[] = 6;
WHEN 6 => CT[] = 0;
WHEN 7 => CT[] = 0;
END CASE;
C4 = LCELL(CLK10 xor CT[2]);
CLK4 = CT[1];
END;
END;
Задний фронт слишком затянут: 150 нС против переднего 100 нС. Может не прокатить. Я хочу данный делитель поставить в контроллере дисковода к Специалисту_МХ. Данное несоответствие может сказаться на читаемость дискет.
WingLion
13.02.2012, 20:43
э... фронты - это перепады из 0 в 1 и обратно... а не длительность состояния 0 и состояния 1...
Если нужен меандр (одинаковые длительности нуля и единицы) - тогда надо ПЛИС с PLL использовать... а на простой логике из 10МHz меандр с 4MHz получить в принципе невозможно..., потому что 5 на 2 нацело не делится...
---------- Post added at 19:43 ---------- Previous post was at 19:41 ----------
Задний фронт слишком затянут: 150 нС против переднего 100 нС. Может не прокатить. Я хочу данный делитель поставить в контроллере дисковода к Специалисту_МХ. Данное несоответствие может сказаться на читаемость дискет.
Кстати, смешной вопрос... Почему бы в ФАПЧ читалки дисковода напрямую 10 MHz не использовать?
... а не длительность состояния 0 и состояния 1...
Да верно, не так написал.
fifan, ставьте второй кварц и будет все без заморочек... Нет, то подберите CPLD с PLL.
Второй кварц не пойдёт - сейчас уже не проходит...
CPLD с PLL тоже не нужно. У меня только EPM7064SLC44 и то на основной плате.
Грустно. нужно на обычных ЛП5 и ИЕ5 делать... Всем спасибо, все свободны.:o
Схемка на рассыпухе была дана.
А можно схемку приложить?
WingLion
13.02.2012, 23:26
А можно схемку приложить?
А чем плох приведенный ранее AHDL код?
p.s. того номера журнала и той схемки у меня давно не осталось.
Остался только принцип в голове... и инфа, откуда он появился.
плюс, реализация на AHDL, на написание которой ушло несколько минут.
Кстати, рисование схемы займет намного больше времени.
А можно схемку приложить?
Вот еще интересная статья (http://logways.ru/2011/07/23/delitel-chastotyi/)
А чем плох приведенный ранее AHDL код?
Только в том, что я в нём не разобрался... VHDL пока осваиваю.
WingLion
14.02.2012, 04:42
Та же схема на VHDL:
-- ИСПРАВЛЕННАЯ ВЕРСИЯ
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
USE IEEE.std_logic_unsigned.all;
entity test2 is
Port(clk10 : in std_logic; clk4 : out std_logic);
end test2;
architecture rtl of test2 is
signal ct : std_logic_vector (2 downto 0);
signal c4 : std_logic;
begin
c4 <= clk10 xor ct(2);
clk4 <= ct(1);
process (c4) begin
if c4'event and c4 = '1' then
if ct = 2 or ct = 6 then
ct <= ct + 2;
else
ct <= ct + 1;
end if;
end if;
end process;
end;
p.s. если VHDL будет освоен, AHDL может и не понадобится... Разве что для понимания того, что делают другие разработчики AHDL - это очень просто! (http://winglion.ru/ahdl/ahdl.htm)
WingLion
14.02.2012, 05:15
К сожалению, посоветовать конкретные книги по VHDL не могу...
Сам когда-то плавал в VHDL, искал хорошую книжку - не нашел.
Изучал VHDL на платных курсах (родной НИИ платил за обучение).
Знаю (лично) одного автора, который книжки по VHDL пишет:
http://www.ozon.ru/context/detail/id/2351693/
Главная сложность VHDL заключается в том, что есть несколько конструкций языка, которые сложно понять. Объем написанных букв местами кажется излишним (особенно после того, как работал на AHDL).
Но это надо принять как данность и не роптать. Тогда язык станет более понятным, когда будет заучено, что триггеры получаются так, конечные автоматы этак, а все остальное строится из них и из простой логики, которая записывается математическими выражениями.
Плюс, некоторое особое оформление схем (я и сейчас не понимаю, зачем в этом оформлении столько всяких фенечек), и VHDL становится почти родным...
п.с. а вообще, уже есть мысля, как написать статью наподобие той, про AHDL, но про "VHDL - это очень просто!"
if c4'even and c4 = vcc then
Ошибка, должно быть так:
if c4'event and c4 = '1' then
WingLion
14.02.2012, 05:32
Ошибка, должно быть так:
if c4'event and c4 = '1' then
да-да, сначала написал здесь, потом в квартусе проверял работу (а надо бы наоборот), потому ошибки и остались...
вот конечный вариант:
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
USE IEEE.std_logic_unsigned.all;
entity test2 is
Port(clk10 : in std_logic; clk4 : out std_logic);
end test2;
architecture rtl of test2 is
signal ct : std_logic_vector (2 downto 0);
signal c4 : std_logic;
begin
c4 <= clk10 xor ct(2);
clk4 <= ct(1);
process (c4) begin
if c4'event and c4 = '1' then
if ct = 2 or ct = 6 then
ct <= ct + 2;
else
ct <= ct + 1;
end if;
end if;
end process;
end;
Ёлки-палки... Вы что, ночами не спите?:)
Спасибо за код, вечером разбираться буду.
Viktor2312
14.02.2012, 14:04
а вообще, уже есть мысля, как написать статью наподобие той, про AHDL, но про "VHDL - это очень просто!"
Это было бы очень замечательно.
WingLion - может посоветуете начинающему, только только начинающему, с чего начать изучать VHDL, может по какой нибудь книжке хорошей. И вообще с чего начать. Пока что скачал и как вроде установил Quartus II 9.1 , хочу именно с этой версии начать изучать - может и по этой программке есть какая литература на русском?
В прошлом году, я начал изучение VHDL с нескольких книжек, но больше всего понравилась книга Дж.Ф. Уэйкерли "Проектирование цифровых устройств" в двух томах.
Эту книгу я купил ещё будучи студентом, а вплотную засел за неё только в прошлом году.
В прошлом году, я начал изучение VHDL с нескольких книжек, но больше всего понравилась книга Дж.Ф. Уэйкерли "Проектирование цифровых устройств" в двух томах.
Эту книгу я купил ещё будучи студентом, а вплотную засел за неё только в прошлом году.
Вот, пожалуйста. :)
Джон Ф.Уэйкерли
Проектирование цифровых устройств.
пер.с англ. 2002г. два тома. (http://narod.ru/disk/40691065001/waykarly.7z.html)
Под спойлером.
WingLion
14.02.2012, 18:34
Ёлки-палки... Вы что, ночами не спите?
Сплю. Просто встаю в 4 утра, чтобы собраться и неторопясь топать на работу.
А пока завтрак готовится, в интернет захожу/почту разгребаю...
Viktor2312
14.02.2012, 19:11
В прошлом году, я начал изучение VHDL с нескольких книжек, но больше всего понравилась книга Дж.Ф. Уэйкерли "Проектирование цифровых устройств" в двух томах.
Эту книгу я купил ещё будучи студентом, а вплотную засел за неё только в прошлом году.
К сожалению, что касается практики, то там про ПЛИС фирмы Xilinx в основном описание идёт хотелось бы про АЛЬТЕРу чтобы было. И среда разработки соответственно не Quartus. А так, конечно книжечка очень хорошая, так как очень много другой полезной информации. Но мне не подходит.
Наверное.
подскажите нубу,тоесть мне -убил часа 2 на чтение нета и этого топика -но так и не понял как стереть плис epm3032atc44 ,что бы она была чистая и ноги в ZZZZ ???
WingLion
10.05.2012, 23:44
JTAG к ПЛИС-е подключен?
Втыкается в него байт-бластер (или USB-бластер), запускается MAX-Plus II или Quartus II, в нем Альтеровский программатор, и в программаторе выбирается действие Erase. После чего просто - Start.
WingLion, если чесТно не могу найти закладку или кнопку erase.прошить могу без проблем.осталось только выпаять плис ,а затем впаять обратно (она мешает микроконтроллеру прошится собака)
использую MAX+PLUS II 10.23
WingLion
11.05.2012, 00:01
Если ПЛИСа шьется без проблем - как вариант - сделать фиктивную прошивку для нее, где мешающие выводы в Z перманентно переведены (назначены как входы, например).
Не помню уже как там в MAX-Plus было. Возможно, кнопка стирания как-то иначе обозвана.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot