Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   ПЛИС и всё что с ними связано (http://zx-pk.ru/showthread.php?t=9342)

Sentenced 16th January 2011 22: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;

оно вроде ?

Ewgeny7 17th January 2011 00:24

Можно и так. Смотря в чем свой проект ваяете. Если на схематике - то проще будет слепить 245 из TRI, если в VHDL, то нафиг нужно буквально каждый элемент описывать :)
Дело хозяйское.

Sandro 21st January 2011 06:19

Quote:

Originally Posted by Sentenced (Post 350404)
Нашёл вот такую VHDL конструкцию

Хочу предупредить, что внутри FPGA проводов с третьим состоянием нет. Они там эмулируются через объединение всех драйверов по "или" (а ходят слухи, что в зависимости от оптимизатора, бывает и по "и").
Так что могут быть неожиданные эффекты.

Там точно нужна забуференная шина с третьим состоянием? Зачем? :confused:

Sentenced 21st January 2011 21:28

Я подозревал, что не всё так гладко с этим элементом, не зря-же он отсутствует в списке. Забуференая шина с третьим состоянием, согласно моим представлениям о работе устройства - нужна. Это элемент будет смотреть "наружу" одной своей стороной. Пока что всё ещё взвешиваю, так-ли он там необходим, может, больше смысла - вынести его наружу.
А по сути дела - если подскажете, чем её заменить тут - http://sblive.narod.ru/ZX-Spectrum/N...oIDEforLUT.htm , буду весьма благодарен.

ZEK 21st January 2011 21:57

Quote:

Originally Posted by Sentenced (Post 352412)
А по сути дела - если подскажете, чем её заменить тут - http://sblive.narod.ru/ZX-Spectrum/N...oIDEforLUT.htm , буду весьма благодарен.

если по простому, переделай схему что бы использовались только односторонние буфера

Sandro 27th January 2011 10:37

Quote:

Originally Posted by Sentenced (Post 352412)
Забуференая шина с третьим состоянием, согласно моим представлениям о работе устройства - нужна. Это элемент будет смотреть "наружу" одной своей стороной. Пока что всё ещё взвешиваю, так-ли он там необходим, может, больше смысла - вынести его наружу.

Наружу не нужно, выходы у FPGA сами имеют буфер с третьим состоянием. Обычно делают так: внутри схемы держат три отдельных сигнала для входа (_i), выхода (_o) и управления выходом (_d, от drive), а к выводу FPGA подключают так:

Code:

data_i <= pad_data;
pad_data <= data_o when data_d = '1' else 'Z';

При этом pad_data -- это может быть порт верхнего уровня проекта.


Quote:

Originally Posted by Sentenced (Post 352412)
А по сути дела - если подскажете, чем её заменить тут - http://sblive.narod.ru/ZX-Spectrum/N...oIDEforLUT.htm , буду весьма благодарен.

Можно на "ты" :)
Посмотрел. Нда, забавная схема, одна половина синхронная, а другая -- нет :v2_dizzy_roll: Если хочется в точности сохранить поведение оригинала, то лично я бы сделал так: логику 245 расщепить на прямой и обратный буфера, обратный (B->A) заменить на мультиплексор с выходом HD5 и разрешением выхода. Коряво, конечно, а что делать :(

То есть, как-то так (кусок с буферами):

Code:

-- 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 1st February 2011 11:59

Народ, а с помощью железа STK200/300 можно прошить какой-нить программой EPM3032 и аналогичные? Просто STK200/300 уже собран и делать почти аналогичный Altera ByteBlaster не очень хочется.

fifan 1st February 2011 12:06

А что такое STK200/300? Просто выводы DB-25? Судя по этой ссылке - да. Тогда прийдется все равно собирать ByteBlaster.

SoftFelix 1st February 2011 12:14

Quote:

Originally Posted by fifan (Post 355077)
А что такое STK200/300? Просто выводы DB-25?

Quote:

Схема переходника программирования "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

Quote:

Разводка колодки X2 на приведенной схеме соответствует принятой фирмой Atmel для производимых ею плат, однако никто не мешает использовать и разводку, соответствующую Altera Byte Blaster.
Quote:

Originally Posted by fifan (Post 355077)
Судя по этой ссылке - да.

В смысле "да", AVReAl'ом с помощью STK200/300 можно прошить EPM?

Ewgeny7 1st February 2011 13:00

Конечно нет. Программатор Квартусовый не понимает STK.
А АВРеал к ПЛИС вообще никаким боком.

---------- Post added at 12:00 ---------- Previous post was at 11:56 ----------

Вот покури, а лучше переделай свой проггер под это:
http://www.zxkit.ru/katalog-1/zxkit-003-1


All times are GMT +4. The time now is 06:39.

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