тож закралась такая мысля, да вот ЮСБ-ЛоПаТы нету на попробывать. Да и скорее всего что большинство таких переходников не прокатит, везде пишут, что там битбанга нету, но попытаться стоит! :)
Вид для печати
тож закралась такая мысля, да вот ЮСБ-ЛоПаТы нету на попробывать. Да и скорее всего что большинство таких переходников не прокатит, везде пишут, что там битбанга нету, но попытаться стоит! :)
там даже lpt нету, это хитрый cdc для принтеров, там ток пакетная передача
---------- Post added at 09:33 ---------- Previous post was at 09:31 ----------
если он после каждой записи что то прочитать хочет, это будет как минимум на порядок медленней чем 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-бита появились.
Хи. Понятно. :v2_conf2:
Оно тебе надо? Вот ещё одна схема, хочу её повторить.
Здравствуйте, други !
Не могу в Квартусе найти 74245 - я окончательно ослеп ? :v2_dizzy_wall:
Спасибо, Евгений, утешили :) Пойду курить, как она там устроена.
---------- 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, то нафиг нужно буквально каждый элемент описывать :)
Дело хозяйское.
Хочу предупредить, что внутри FPGA проводов с третьим состоянием нет. Они там эмулируются через объединение всех драйверов по "или" (а ходят слухи, что в зависимости от оптимизатора, бывает и по "и").
Так что могут быть неожиданные эффекты.
Там точно нужна забуференная шина с третьим состоянием? Зачем? :confused:
Я подозревал, что не всё так гладко с этим элементом, не зря-же он отсутствует в списке. Забуференая шина с третьим состоянием, согласно моим представлениям о работе устройства - нужна. Это элемент будет смотреть "наружу" одной своей стороной. Пока что всё ещё взвешиваю, так-ли он там необходим, может, больше смысла - вынести его наружу.
А по сути дела - если подскажете, чем её заменить тут - http://sblive.narod.ru/ZX-Spectrum/N...oIDEforLUT.htm , буду весьма благодарен.
Наружу не нужно, выходы у FPGA сами имеют буфер с третьим состоянием. Обычно делают так: внутри схемы держат три отдельных сигнала для входа (_i), выхода (_o) и управления выходом (_d, от drive), а к выводу FPGA подключают так:
При этом pad_data -- это может быть порт верхнего уровня проекта.Код:data_i <= pad_data;
pad_data <= data_o when data_d = '1' else 'Z';
Можно на "ты" :)
Посмотрел. Нда, забавная схема, одна половина синхронная, а другая -- нет :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. Не любит КМОП плавающих входов.
Современные, конечно, от этого не горят, но мусор всякий в схему лезть будет, зачем это надо ...
Народ, а с помощью железа STK200/300 можно прошить какой-нить программой EPM3032 и аналогичные? Просто STK200/300 уже собран и делать почти аналогичный Altera ByteBlaster не очень хочется.
А что такое STK200/300? Просто выводы DB-25? Судя по этой ссылке - да. Тогда прийдется все равно собирать ByteBlaster.
http://real.kiev.ua/old/avreal/img/stkx00.pngЦитата:
Схема переходника программирования "STK200/300"
Адаптер получил свое название от комплектующихся им отладочных плат фирмы Atmel для быстрого начала работы с микроконтроллерами At90s8515 и Atmega103 соответственно. На самом деле приведенная схема соответствует одновременно обеим адаптерам, в ней присутствуют перемычки для определения наличия как адаптера STK200 (выводы 2-12 разъема X1), так и STK300 (выводы 3-11) Как правило этот адаптер используют те, у кого есть в наличии одна из плат фирмы Atmel либо кто уже пользовался программой AVR ISP. При необходимости программной генерации тактового сигнала XTAL1 (ключ -o0) используется линия LED адаптера STK, исходно предназначенная для включения светодиода на отладочной плате.
В смысле "да", AVReAl'ом с помощью STK200/300 можно прошить EPM?Цитата:
Разводка колодки X2 на приведенной схеме соответствует принятой фирмой Atmel для производимых ею плат, однако никто не мешает использовать и разводку, соответствующую Altera Byte Blaster.
Конечно нет. Программатор Квартусовый не понимает STK.
А АВРеал к ПЛИС вообще никаким боком.
---------- Post added at 12:00 ---------- Previous post was at 11:56 ----------
Вот покури, а лучше переделай свой проггер под это:
http://www.zxkit.ru/katalog-1/zxkit-003-1
Ewgeny7, т.е. проще собрать ABB?
Ewgeny7, всё понял, буду копать в этом направлении.
Может, кому будет интересно: 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 ----------
А вот это напрасно вы, батенька :) Я учился по этим мануалам, там достаточно понятно расписано.
спасибо, посмотрю проект.Цитата:
А вот это напрасно вы, батенька :) Я учился по этим мануалам, там достаточно понятно расписано.
Я не в том смысле что не доходит совсем :) я о том как его продолжить что бы изобразить видео выход. В идеале мне нужно 2 синхры(это есть) и пиксельные данные(пиксель 0 или 1) для формирования ЧБ изображения на мониторе.
Собственно да.
Видеосигнал формируется от 0 до 255, далее бордюр, затем гашение, затем синхра, затем гашение, затем бордюр. Это я описал одну строчку. Для отображения на ВГА эта строчка выодится два раза (с удвоенной скоростью, разумеется), только потом переходим ко второй.
По вертикали изображение строится аналогично, только поле пикселов там будет 0..191 (а не 0..255).
Параметры счетчиков можешь подглядеть в проектах.
С синхрой более или менее понятно. основная непонятка это логическое формирование изображения.. т.е не могу представить немного как формируется сигнал пикселя. понятно что читается из видеопамяти(области памяти отведенной под видео) но как :) Извините..туплю сильно,но это временно :) Т.е что куда подключать и откуда брать сигнал :)
О! Большое спасибо! ЩАс попробую прикрутить к проекту )
А кто знает как организовать ПЗУ(ROM) на VHDL. Так что бы при компиляции проекта начинку ПЗУ(прошивку) цепляло из файла?
MegaCore Wizard или как то там, пошагово в мастере клоцаешь выбираеш что надо
2ZEK:
Это справедливо для Квартуса. У меня же Xilinx ISE. Там есть конечно IP Core Generator. Щас гляну может быть действительно поможет. спасибо за наводку :)
Получился матрас. За основу взял проект из сети,добавил софт ядро Z80 и ура.. матрас. Теперь проблема как подцепить ПЗУ.. в ПЛИС скорее всего уже не поместится,а микросхему нечем программировать...
http://www.msyst.ru/ISE_bramgen.pdf - вот тут рассказано, как делать память с инициализацией из файла в ISE.
ПЗУ - это та же память, только с блокированной записью.
WingLion, где ты раньше был. Методом тыка я пытался что-то настроить. Помню там где-то есть видео генератор, хорошо бы на него описание найти.