PDA

Просмотр полной версии : ПЛИС и всё что с ними связано



Страницы : 1 2 3 4 [5] 6 7 8

palsw
11.05.2012, 00:10
WingLion, уже гуглил в нете - вопросы подобные задают ,но решения нет как стереть.
сделать сам прошивку не смогу.нуб я в этом деле .вот смотрю я на cyclone 1 ep1c3t144 и понимаю ,что нужно заказать макетку и сделать себе микро-девбоард для обучения.еще в комплекте есть конф-пзу,ft245bl,pic18f76 - как раз пойдут на доноры

http://s015.radikal.ru/i331/1205/be/b0f060f2b010.jpg (http://www.radikal.ru)

Keeper
11.05.2012, 00:51
35451

Вывод: забыть про замшевелый MAX+PLUS и использовать актуальный софт...

palsw
11.05.2012, 18:28
Keeper, выхода нет - буду качать.но дибилизм полнейший.макс весит 14 мб и не требует креков итд итп.

Quartus II Web Edition Service Pack 2 2,5gb - ужас нах,просто стереть микруху

aniSKY
11.05.2012, 19:18
у них есть чисто Квартус-програмер, без всего остального, ссылка на фтп-шник ftp://ftp.altera.com/outgoing/release/ , можно от девятой версии качнуть, проверено - у меня шил циклона первого.

Keeper
11.05.2012, 22:25
чисто Квартус-програмер
Называется например 91sp2_quartus_programmer.exe


просто стереть микруху
Только вот от чистой микрухи толку мало... Имеет смысл раз скачать крякнутый квартус, поставить и забыть...

palsw
11.05.2012, 22:29
Keeper, уже скачал Quartus II Web Edition Service Pack 2 2,5gb,установил и стер плис :)

oracleua
24.03.2013, 23:27
Подскажите где найти в схематике проект квартуса типа ПЛИС+Z80+ПЗУ+ОЗУ(типа ру5,7,симм).
Хотелось бы заменить Т34ВГ1 (КА1515ХМ1-216) на ПЛИС EPM3128ATC100-10N...
Спасибо..

oracleua
25.03.2013, 00:08
Много уже времени прошло...уже наверное и забыл о проекте..
Я сам пытался запихнуть ленинград 2012 в плис...но на макетке так и не заработал..

vlad
25.03.2013, 00:08
Был тут однажды такой проект (это же MAX3000A ?)Используется обычная статика (SRAM) а нужно DRAM
+ОЗУ(типа ру5,7,симм)
Это скорее сюда: Робик АЛУ - Модуль расширения (http://zx.pk.ru/showthread.php?t=19862)

oracleua
25.03.2013, 00:16
Используется обычная статика (SRAM) а нужно DRAM
Это скорее сюда: Робик АЛУ - Модуль расширения (http://zx.pk.ru/showthread.php?t=19862)

Там проект на VHDL...к сожалению еще не изучил..

oracleua
25.03.2013, 00:25
Вот тут (http://marsohod.org/forum/index.php?option=com_kunena&func=view&catid=8&id=1517&Itemid=2) человек то жи подвиг хотел совершить, но видимо раздумал...

Видел это....жаль что так и не совершил..

oracleua
25.03.2013, 02:34
Есть спекки 2010, проект на CPLD, есть Реверсы от Влада и есть туториалы, от Женя7 и ещё кого-то (уже не помню), т.к. сегодня у меня день выпал - завтра или послезавтра выложу тут ссылками.
З.Ы.: относительно исходников, Олег (solegstar) пересылал мне их почтой, там есть ошибки.http://s57.radikal.ru/i156/1303/47/2fc64b9bbd73t.jpg (http://radikal.ru/F/s57.radikal.ru/i156/1303/47/2fc64b9bbd73.jpg)
Но. ИМХО, выискивать их в схемном вводе - довольно бессмысленная затея. Имеет смысл потратить немного больше времени, но ознакомиться с HDL языками...

Спасибо...А можно ошибки в исходниках мне на почту???

oracleua
25.03.2013, 03:14
Нет :)
1. Я просмотрел по диагонали исходник и то что получается в RTL Viewer`e, нашел только две потенциальных проблемы
http://s020.radikal.ru/i705/1303/75/870887984ed7t.jpg (http://radikal.ru/F/s020.radikal.ru/i705/1303/75/870887984ed7.jpg)
2. Лучше не выкладывать свои емаил адреса на индексируем страницах форума, спам-боты не дремлют :)
3. ИМХО, имеет смысл всё(!) переписать на HDL, т.к. исходник станет намного проще анализировать. И это позволит избежать проблем с куда-попало подключенными входами лог. элементов... как минимум.

Это так в схеме...
Жаль..но на HDL не смогу понять..

lisica
25.03.2013, 09:56
Жаль..но на HDL не смогу понять..
Я тоже раньше так думал. Влад с Женей7 заставили передумать.


Это скорее сюда: Робик АЛУ - Модуль расширения
Дык там Z80 нету. Это к реверсу.

---------- Post added at 08:56 ---------- Previous post was at 08:53 ----------

PS Если что - всем миром можо написать прошивку. Заодно и хоть и не совсем, как я, но кое что выучишь в VHDL e. Я тож учился по Жениному проэкту реверса.

vlad
25.03.2013, 23:59
Жаль..но на HDL не смогу понять..
Краткий курс HDL (http://kit-e.ru/articles/circuit/2008_3_161.php)

РУКОВОДСТВА И ОПИСАНИЯ ЯЗЫКА VHDL (http://vhdl-manual.narod.ru/)

iceoflame
28.03.2013, 20:06
Да не такой он и страшный, ну да женская логика, все процессы начинаются сразу, ну да подход другой чем у большинства языков программирования, дык он и не язык программирования, он все таки язык описания электроники.

Да, привыкнуть сложно, нужно просто брать тоториал к реверси и курить его, папутно разбираясь в мелочах самого спектрума.

DDp
30.03.2013, 16:14
Подскажите где найти в схематике проект квартуса типа ПЛИС+Z80+ПЗУ+ОЗУ(типа ру5,7,симм).
Хотелось бы заменить Т34ВГ1 (КА1515ХМ1-216) на ПЛИС EPM3128ATC100-10N...


Основная плисина для Pentagon1024SL v2.2 (http://pentagon.nedopc.com/info.htm) в схематике.
---
Обычно лежит и здесь (http://realddp.narod.ru/zx/p1024sl2/files/7128_DDp090607.7z), но в связи с переездом narod-а может пропасть.

oracleua
30.03.2013, 17:27
Основная плисина для Pentagon1024SL v2.2 (http://pentagon.nedopc.com/info.htm) в схематике.
---
Обычно лежит и здесь (http://realddp.narod.ru/zx/p1024sl2/files/7128_DDp090607.7z), но в связи с переездом narod-а может пропасть.

Спасибо...то что нужно...

13joe
01.04.2013, 14:02
Заранее извиняюсь если запостил не в ту тему...

А можно в altera usb-blaster-e (плата от zorel-a) вместо плис 3064атс44 использовать 3032атс44 ? Если да, то нужно ли перекомпилировать прошивку под 3032атс44 ?

ZEK
01.04.2013, 15:07
Нужно и не факт что влезет, емкость в 2 раза меньше

13joe
01.04.2013, 19:16
А проверить влезет прошивка или нет можно только запустив компиляцию под эту ПЛИС-ку ?

lisica
01.04.2013, 20:48
Ага.

zebest
01.04.2013, 22:21
кстатида, а что например по поводу защиты от перезаписи?? Есть пост-карта (http://www.masterkit.ru/main/set.php?code_id=144979), собранная на ПЛИС Altera EPM3064ALC44-10. Вроде как и прошивка есть посвежее, правда урезанная демка. Вопрос в том, покупать ли чистую плис-ку и пробовать шить, или можно родную через JTAG залить попробовать. Как определить?

ZEK
01.04.2013, 23:02
Есть защита от чтения, но никак не от записи. Так что можно шить

palsw
07.04.2013, 22:24
http://www.aliexpress.com/item/FPGA-development-board-learning-board-mini-system-board-Altera-Cyclone-EP1C3T144-Quaranteed-100-/556057847.html


наткнулся на не дорогую платку ,кто то заказывал ?
Вот думаю стоит купить для "просветления" или нет смысла и проще и интересней тот же Speccy2010 собрать? (уже паяю потихоньку,но не знаю как для обучения подойдет или нет)

Еще рассматриваю сделать лутом печатку с минимальным кол-во элементов для запуска первого Cyclone .возможно уже есть готовые монтажки или печатки в продаже у нас с минимальным обвесом?

WingLion
07.04.2013, 22:36
http://www.aliexpress.com/item/FPGA-development-board-learning-board-mini-system-board-Altera-Cyclone-EP1C3T144-Quaranteed-100-/556057847.html
А 40 баксов за старый циклон не жирно ли? да еще и доверия китайцам нет...

вот такая штучка намного вкуснее http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=593

palsw
07.04.2013, 23:00
WingLion, Если выпалю первый Cyclone то паялкой его вывалю и новый впаяю без проблем паялником.

А на той борде уже BGA монтаж и уже не каждый в случае чего отремонтирует,еще пайка на без свинцовом олове не внушает доверия и цена выше 2 раза :)

---------- Post added at 22:00 ---------- Previous post was at 21:49 ----------

вот намного функциональный боард

http://www.aliexpress.com/item/100-NEW-FPGA-STARTER-Altera-FPGA-Development-board/705109654.html
http://www.aliexpress.com/item/free-shipping-Altera-FPGA-EP1C3T100-development-board/572868376.html

ZEK
08.04.2013, 00:12
вот такая штучка намного вкуснее
+ доставка $70

WingLion
08.04.2013, 19:05
А это ответ от питерского дистрибьютера Альтеры на запрос о возможности приобретения DE-0:

Иван, добрый день!

Можем предложить Вам следующие условия поставки:

Артикул DE0-Nano
Производитель Terasic
Кол-во 1
Цена за шт. в USD (с НДС) 106,95
Срок поставки 4-5 н.

Условия поставки: самовывоз из одного из наших офисов,

С.-Петербург, Москва, Казань, Екатеринбург, Ростов-на-Дону, Пермь, Нижний

Новгород (адреса см. наш сайт www.efo.ru),

или мы можем организовать курьерскую экспресс-доставку в пределах РФ.

Можем оформить счет:

1) на частное лицо, оплата в любом отд. Сбербанка (эл. копию бланка для оплаты вышлем),

2) на организацию, в этом случае нам нужны реквизиты Вашей организации:

palsw
08.04.2013, 19:08
WingLion, Для начала имхо достаточно и этого девайса http://www.aliexpress.com/item/100-NEW-FPGA-STARTER-Altera-FPGA-Development-board/705109654.html за 35$ с доставкой.
А 107$ и 35$ как говорят "Две большие разници"

palsw
08.04.2013, 19:42
vlad, Поподробнее :)
где посмотреть нужно?

palsw
08.04.2013, 20:06
vlad, цель - по изучать Плис,глянуть на языки программирования и поморгать светодиодами - всё как обычно.

Нужно что то простое -если не попрёт то будет просто валяться и нет смысла брать от 100$ и выше.

Вот думаю заказать платку у MICK http://zx.pk.ru/showthread.php?t=20459&highlight=%CF%EB%E8%F1 но пугает CPLD - там идея жестко прошить 1 раз плис и баловаться с внешними картами на ZX-BUS.Зато Z80 есть и можно ножками подрыгать

fifan
08.04.2013, 20:24
Если из самого простого, то можно попробовать это:
Плата Марсоход (http://marsohod.org/index.php/prodmarsohod)
µGalaksija (http://galaksija.petnica.rs/index.php/)
Из ссылки первого сайта я повторил Улучшенный частотомер на EPM7128SLC84, из второго сайта - готовлю реплику Галаксии на u10.

shurik-ua
28.04.2013, 14:23
Недавно только начал осваивать плисы и vhdl и как первый проект сделал видеоадаптер с выводом на телевизор.

есть такой код:


if vcount = 312 then
vcount <= "000000000";
else
vcount <= vcount + 1;
end if;


Возник такой вопрос - как на vhdl написать чтобы по чётным кадрам счётчик считал до 312, а по нечётным до 313.

Думал сделать вот так:



if vcount = 312 + vdiv then
vcount <= "000000000";
vdiv <= not(vdiv);
else
vcount <= vcount + 1;
end if;


выдает ошибку.

vlad
28.04.2013, 15:51
if (vdiv = '0' and vcount = 312) or
(vdiv = '1' and vcount = 313) then
...

PS. vdiv='1' можно опустить...

shurik-ua
28.04.2013, 17:21
Ps? а зачем так сложно, ну и пусть и четный и нечетный будут одинаковы. Не?

хотелось придерживаться стандарта )


Кидай проект, посмотрим...


да пожалуйста ):


library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;

entity video1 is
port(
clock: in std_logic; -- 40 Mhz clock
ram_data: inout std_logic_vector(7 downto 0) := "ZZZZZZZZ";
ram_addr: out std_logic_vector(15 downto 0);
ram_wr: out std_logic;
cpu_data: in std_logic_vector(7 downto 0);
cpu_addr: in std_logic_vector(15 downto 0);
cpu_wr: in std_logic;
cpu_mreq: in std_logic;
clk_out: out std_logic;
int: out std_logic;
sync: out std_logic;
video: out std_logic
);
end video1;

architecture rtl of video1 is

signal cnt: std_logic_vector(1 downto 0):="00";
signal hcount: std_logic_vector(9 downto 0);
signal vcount: std_logic_vector(8 downto 0);
signal hsync: std_logic;
signal vsync: std_logic;
signal hblanc: std_logic;
signal vblanc: std_logic;
signal blanc: std_logic;
signal vid: std_logic;
signal wr_video_ram: std_logic;
signal temp_data: std_logic_vector(7 downto 0);
signal temp_addr: std_logic_vector(13 downto 0);
signal temp_video: std_logic_vector(7 downto 0);
signal vdiv: std_logic;

begin
------------------------------------------------------------
process(clock) --40 MHz
begin
if rising_edge(clock) then
if wr_video_ram = '0' then
temp_data <= cpu_data;
temp_addr <= cpu_addr(13 downto 0);
end if;
cnt <= cnt + 1;
if cnt(0) = '1' then
temp_video <= ram_data;
end if;
if cnt = "00" then
if hcount = 640 then
hcount <= "0000000000";
if (vdiv='0' and vcount = 312) or vcount = 313 then
vcount <= "000000000";
vdiv <= not(vdiv);
else
vcount <= vcount + 1;
end if;
else
hcount <= hcount + 1;
case hcount (2 downto 0) is
when "000" => vid <= temp_video(7);
when "001" => vid <= temp_video(6);
when "010" => vid <= temp_video(5);
when "011" => vid <= temp_video(4);
when "100" => vid <= temp_video(3);
when "101" => vid <= temp_video(2);
when "110" => vid <= temp_video(1);
when "111" => vid <= temp_video(0);
end case;
end if;
end if;
end if;
end process;
------------------------------------------------------------
hsync <= '0' when (hcount >= 532 and hcount < 572) else '1';
vsync <= '0' when (vcount >= 276 and vcount < 284) else '1';
hblanc <= '0' when hcount >= 512 else '1';
vblanc <= '0' when vcount >= 256 else '1';
blanc <= hblanc and vblanc;
sync <= hsync and vsync;
video <= vid and blanc;

--wr_video_ram <= cpu_mreq or cpu_wr or (cpu_addr(15) nand cpu_addr(14));--video ram starts at 0xC000
wr_video_ram <= cpu_mreq or cpu_wr or not(cpu_addr(14)) or cpu_addr(15);--video ram starts at 0x4000
ram_wr <= cnt(0);
ram_data <= temp_data when cnt(0) = '0' else "ZZZZZZZZ";
ram_addr(7 downto 0) <= vcount(7 downto 0) when cnt(0) = '1' else temp_addr(7 downto 0);
ram_addr(13 downto 8) <= hcount(8 downto 3) when cnt(0) = '1' else temp_addr(13 downto 8);
ram_addr(15 downto 14) <= "00";

int <= vsync;
clk_out <= cnt(0);
------------------------------------------------------------
end rtl;


реализован режим 512 х 256 монохром, но код позволяет реализовать байт на точку - причём абсолютно прозрачно для проца (и любого устройства на шине)

всё опробовано в железе и прекрасно работает )
скрины:
1. скриншот с тюнера.
2. исходная картинка.

P.S. критика и замечания всячески приветствуются )))

lisica
28.04.2013, 22:07
blanc <= hblanc and vblanc;Здесь, по моему or надо.

shurik-ua
29.04.2013, 00:31
логически их действительно нужно объединить по OR, но так как используется отрицательная логика то OR превратился в AND. )

приведённый код немного глючный - на скринах видно:


Нашёл в чём было дело :)
эту строку:


hblanc <= '0' when hcount >= 512 else '1';


нужно заменить на:


hblanc <= '1' when (hcount >= 1 and hcount < 513) else '0';


и всего делов, а то я с перепугу жменю статики перепроверил :v2_cool:

да и вот тут чуточку подправил:


hsync <= '0' when (hcount >= 533 and hcount < 573) else '1';

fifan
29.04.2013, 18:07
Немного не в тему. Но может кто-нибудь сталкивался с кодером компонентного видео сигнала в VGA. Интересуюсь по поводу встраивания данного кодера в проект на ПЛИС ПК "Галаксия".

shurik-ua
30.04.2013, 01:32
shurik-ua, почему не сделать 512х384? Мне было легче переделать его на VGA 1024x768x8bpp@60Hz. Можно было-бы масштабировать х1 256х192, x2 512x384 x3 1024x768 :)

этот формат выбран из-за удобства программирования именно на 8-мибитных процессорах.

все эти форматы с соотношением сторон 4:3 потихоньку устаревают, мониторы и телевизоры сейчас выпускаются в основном широкоформатные 16:9 или 16:10.

на тюнере я выставил пропорции экрана 16:9 и картинка выглядит абсолютно симметричной - просто тюнер сохраняет только с такими пропорциями.

кстати пока писал этот ответ придумал, что если тактировать схему 32 MHz кварцем и изменить несколько констант в коде то получим режим 384х256 - что можно использовать как компромисс для любителей "квадратных" пропорций. ))

Да и вот ещё - в будущем планирую подключить Циклон какой нибудь и 3128 использовать как преобразователь уровней - в проекте Reverse есть что-то похожее, но исходников не нашёл. Так как я ещё начинающий - могу ошибиться , вот взгляните на код - покритикуйте:



library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;

entity extender is
port (
dir: in std_logic;
cpu_adr: inout std_logic_vector(15 downto 0);
adr: inout std_logic_vector(15 downto 0);
cpu_data: inout std_logic_vector(7 downto 0);
data: inout std_logic_vector(7 downto 0);
wr,rd,mreq,iorq,m1: inout std_logic;
busrq,cpu_busak: in std_logic;
int,nmi,clock,reset,wait0: in std_logic;
cpu_int,cpu_nmi,cpu_clock: out std_logic;
cpu_busrq,busak: out std_logic;
cpu_reset,cpu_wait0: out std_logic;
cpu_wr,cpu_rd,cpu_mreq,cpu_iorq,cpu_m1: inout std_logic);
end extender;

architecture ext of extender is

begin
cpu_clock <= clock;
cpu_int <= int;
cpu_nmi <= nmi;
cpu_reset <= reset;
cpu_wait0 <= wait0;

cpu_busrq <= busrq;
busak <= cpu_busak;

mreq <= cpu_mreq when cpu_busak = '1' else 'Z';
cpu_mreq <= mreq when cpu_busak = '0' else 'Z';
iorq <= cpu_iorq when cpu_busak = '1' else 'Z';
cpu_iorq <= iorq when cpu_busak = '0' else 'Z';
wr <= cpu_wr when cpu_busak = '1' else 'Z';
cpu_wr <= wr when cpu_busak = '0' else 'Z';
rd <= cpu_rd when cpu_busak = '1' else 'Z';
cpu_rd <= rd when cpu_busak = '0' else 'Z';
m1 <= cpu_m1 when cpu_busak = '1' else 'Z';
cpu_m1 <= m1 when cpu_busak = '0' else 'Z';

data <= cpu_data when dir = '1' else "ZZZZZZZZ";
cpu_data <= data when dir = '0' else "ZZZZZZZZ";
adr <= cpu_adr when cpu_busak = '1' else "ZZZZZZZZZZZZZZZZ";
cpu_adr <= adr when cpu_busak = '0' else "ZZZZZZZZZZZZZZZZ";

end ext;

DDp
30.06.2013, 12:03
«Теннис» на FPGA (http://realddp.narod.ru/fpga/#tennis) - реализации для «Altera DE1 Starter Board», «Speccy2010», «ZX Evolution», «Pentagon-1024SL v2.2»

---
ZX-Evo_compatible-версия с мая 2013 (http://tslabs.info/forum/viewtopic.php?f=12&t=193) идёт в конфигурации TS-Labs как "пасхальное яйцо".

krotan
11.01.2014, 23:47
Победитель конкурса на звание "самый простой ByteBlaster" (http://marsohod.org/index.php/howtostart/programmer) :)
Там же есть прекрасный учебник для начинающих по Verilog HDL (http://marsohod.org/index.php/verilog) и по Altera Quartus II (http://marsohod.org/index.php/aquartus2)
Большое спасибо Николаю и Юрию из Таганрога, авторам марсохода!

fifan
12.01.2014, 08:18
Я понимаю, что лень столько постов этой темы читать. Но данная ссылка уже приводилась.

solegstar
05.03.2014, 15:19
Приветствую! заметил недавно такой глюк на верхней плате Profi 5.06: когда вставлен usbblaster в jtag разъем епм570, то сдкарта работает стабильно, если только его вытащить, то всё, сдкарта не работает или работает, но со страшными глюками из разряда неправильные каталоги показывает или при копировании образа зависает комп. но больше не работает конечно. причем это как с включеным, так и с выключеным бластером. возможно глюк епмки, но т.к. платы еще не ушли в производство, думаю, может че с платой надо сделать. подтяжка всех 4х линий jtag у меня есть к +3.3В через 10к.

проследил, что происходит, когда включаю разъем - практически все линии показывают 0В. в бластере стоит ап5 на выходе. попробовал 1кОм повесить на 4 линии, ниче не поменялось, как на +5В, так и на GND.

сегодня попробую глянуть, какое сопротивление при выключеной микрухе, но это реально странно. еще есть вариант, что флюс я нормально не отмыл и он дает такой эффект, хотя программируется всё без проблем и заминок. собственно глюк был обнаружен только сейчас, т.к. при написании прошивки jtag-разъем был всегда вставлен... попробую отпаять плис, промыть и заново впаять.

SD-CARD подключена к выводам 129-132 ЕПМки, выводы для программирования вообще находятся на другой стороне плисины 33-36, каким образом они могут влиять на работу карты я не представляю, т.к. напряжение 3.3В не меняется и "не шумит".

у кого какие предположения? заранее спасибо. :)

vlad
05.03.2014, 15:35
подтяжка всех 4х линий jtag у меня есть к +3.3В через 10к.
Не уверен, что это из-за JTAG. У меня TCK подтянут к GND через 1К.

solegstar
05.03.2014, 17:30
vlad, глюк очень стабильный. разъем jtag бластера (вкл./выкл. всё равно) соединен с платой - работает карта, отсоединен - глючит. попробую перепаять заново епмку, скорее всего это флюс.

TSL
05.03.2014, 18:48
zek через меня вангует, что проблема в асинхронщине в дизайне.

---------- Post added at 16:44 ---------- Previous post was at 16:42 ----------

Со своей стороны добавляю, что есть такие страшные звери, как метастабы.

---------- Post added at 16:48 ---------- Previous post was at 16:44 ----------

Ну и да, сырец чтоль покажи хоть, а то телепатор перегревается :v2_dizzy_tea:

solegstar
05.03.2014, 22:01
zek через меня вангует, что проблема в асинхронщине в дизайне. Ну и да, сырец чтоль покажи хоть, а то телепатор перегревается :v2_dizzy_tea:

клок для синхронизации с клоком проца в дизайн заведен. сорец и черновик текущей принципиалки верхушки тут - http://zx-pk.ru/showthread.php?p=558382#post558382

зыж просьба не пинать ногами и помидорами не забрасывать - это мой первый дизайн для плисины! :)

TSL
05.03.2014, 22:20
port77_wr <= '1' when adress(7 downto 0)=X"77" and iorq='0' and m1='1' and wr='0' and cpm='1' else '0';

elsif (port77_wr'event and port77_wr='0') then

Так низя делать, асинхронщина во все дыры.
Клокать ТОЛЬКО по глобалклоку, с условиями по port77_wr и проч.

vlad
05.03.2014, 22:47
TSL, может подскажешь как в данном случае правильно переписать асинхронную защелку? При условии, что rd_sig должен быть сброшен импульсом clr_flag и при ram_rd = 1.


ram_rd <= '1' when (mreq_n = '0' and rd_n = '0') else '0';

process (ram_rd, clr_flag)
begin
if (clr_flag = '1') then
rd_sig <= '0';
elsif (ram_rd'event and ram_rd = '1') then
rd_sig <= '1';
end if;
end process;

TSL
06.03.2014, 03:44
Ну я бы делал примерно так:


process (flck)
begin
if (fclk'event and fclk = '1')
begin
if (clr_flag = '1') then
rd_sig <= '0';
elsif (ram_rd = '1') then
rd_sig <= '1';
end if;
end
end process;
flck - некий клок системы, в домене которого находятся все сигналы модуля. Например 14 мгц.
При этом, дабы избежать метастабов, если сигналы clr_flag и ram_rd в другом клоковом домене, их бы нефигово пересинхрить на клок flck.

В общем проблему надо разделить на две:
1. (главная!) НИКОГДА не использовать выход комбинаторики как клок, а только как клок енабле, да и то желательно пересинхренный.
2. Пересинхривать любые сигналы другого клокового домена на текущий.

---------- Post added at 01:43 ---------- Previous post was at 01:41 ----------

Сорри, в вхдл могут быть ошибки, я в нем никогда не писал, езык для мну иностраннише.

---------- Post added at 01:44 ---------- Previous post was at 01:43 ----------

На уютном верилоге так:

always @(posedge fclk)
if (clr_flag)
rd_sig <= 1'b0;
else if (ram_rd)
rd_sig <= 1'b1;

vlad
06.03.2014, 11:41
Ну я бы делал примерно так:

process (flck)
begin
if (fclk'event and fclk = '1')
begin
if (clr_flag = '1') then
rd_sig <= '0';
elsif (ram_rd = '1') then
rd_sig <= '1';
end if;
end
end process;
Вот тут и проблема, что это не сработает, в асинхронном примере сигнал rd_sig устанавливается в 1 только по стробу ram_rd. А у тебя и после clr_flag = 0 при ram_rd = 1. Есть еще варианты?

IanPo
06.03.2014, 12:15
always @(posedge fclk)
begin
ram_rd_old <= ram_rd;
if (clr_flag)
rd_sig <= 1'b0;
else if ( ram_rd & ~ram_rd_old )
rd_sig <= 1'b1;
end
за счет детектора фронта получаем запаздывание

solegstar
06.03.2014, 13:05
port77_wr <= '1' when adress(7 downto 0)=X"77" and iorq='0' and m1='1' and wr='0' and cpm='1' else '0';

elsif (port77_wr'event and port77_wr='0') then

Так низя делать, асинхронщина во все дыры.
Клокать ТОЛЬКО по глобалклоку, с условиями по port77_wr и проч.
кстати, не понятно как оно вообще работало, ведь port77_wr присваивается "1"ца для записи 1 бита шины данных на SDCS, а записывается по спаду port77_wr. пипец вобщем. Эта часть прошивы из модуля расширения для робика, её не трогал. попробую с условием port77_wr='1' и вроде если правильно тебя понял про синхронность, сделал пока так:


port77_wr <= '1' when adress(7 downto 0)=X"77" and iorq='0' and m1='1' and wr='0' and cpm='1' else '0';
process (port77_wr, res, f14)
begin
if res='0' then
nSDCS <= '1';
elsif f14'event and f14='1' then
if port77_wr='1' then
nSDCS <= Data(1);
end if;
end if;
end process;

вчера пропаял плис с жидкой канифолью и промыл спиртом - ниче не поменялось. буду смотреть таки питание, может какие фильтры поставлю, как в эве на питание сдкарты, для начала. также вечером проверю прошиву.

vlad
06.03.2014, 13:17
port77_wr <= '1' when adress(7 downto 0)=X"77" and iorq='0' and m1='1' and wr='0' and cpm='1' else '0';
Непонятно участие сигнала M1# в конкретном случае. Скорей всего M1# здесь ненужен.

TSL
06.03.2014, 15:39
IanPo, да действительно, я не учел фронт.
В общем я так из фронтов стробы и выделяю.
А где задежка кроме периода fclk?

IanPo
06.03.2014, 21:15
Задержка от 0 до fclk, другой нет.

TSL
06.03.2014, 21:21
А вот такая задачка:

reg [7:0] cnt;
always @(posedge clk)
if (stb)
cnt <= cnt + 8'b1;

stb - сигнал внешнего интерфейса асинхронный по отношению к домену clk.
Что нужно сделать с stb, чтоб избежать тотального глюкалова?

IanPo
06.03.2014, 21:47
Не совсем понятно, в чем глюкалово(покажи, что за сигнал), поэтому пока что вот так:
http://www.kit-e.ru/articles/circuit/2009_02_102.php
http://www.fpga4fun.com/CrossClockDomain.html

ЗЫ. Вместо 8'b1 можно написать 1'b1 безо всякого ущерба, компилятор наверняка так и оптимизирует

TSL
06.03.2014, 22:03
Ссылки хорошие, собсна в них описана и проблема, и ее решение :)

Вместо 8'b1 можно написать 1'b1 безо всякого ущерба, компилятор наверняка так и оптимизирует
Угу.

---------- Post added at 20:03 ---------- Previous post was at 20:01 ----------


Не совсем понятно, в чем глюкалово
Метастабы.

solegstar
07.03.2014, 00:50
:) мой вопрос решился установкой фильтра из катушки 100мкГн (буду подбирать, т.к. поставил то, что нашел) и конденсатора 10мкф по питанию перед ЕПМкой. теперь карта всегда определяется четко. также оставил поправленную прошивку. Спасибо TSL и Alvis за наводки! :)

Mick
26.03.2014, 12:46
Господа, кто нибудь компилил когда нибудь VHDL в Max Plus II.
Вопрос в чем, почему компилятор выкидывает внутренние сигналы описанные как std_logic. Причем ошибок в синтаксисе не выдает.

Или может кто скинет рабочий проект VHDL для MAX PLus в качестве примера. А то я как то в недоумении.

lisica
26.03.2014, 19:40
Вопрос в чем, почему компилятор выкидывает внутренние сигналы описанные как std_logic
В квартусе такое, когда эти сигналы никуда не подключены то он автоматом их игнорирует.

Mick
26.03.2014, 20:40
В квартусе такое, когда эти сигналы никуда не подключены то он автоматом их игнорирует.

Ну как бы тебе объяснить. Про Кактус я не спрашивал, там все нормально. Мне интересен тот факт, что в Максе творится.
Тем более, я взял и написал такой же кусок только на AHDL - так вот в последнем случае код получился какой нужно. А вот VHDL явно делает не то что то.

Mick
26.03.2014, 20:51
VHDL Syntax (IEEE Std 1076-1987) небось юзаете?

А по проще можно для не особо продвинутых юзеров. Пользую там то что есть, может оно как то меняется - я не в курсе.

kox
30.03.2014, 13:23
Добрый день!
Подскажите как в Quartus прикрутить ядро T80 к проекту, выполненному в графическом редакторе?
Имеется проект, нарисованный схемным вводом, схемный файл установлен как Top-level Entity.
Проц T80, имеет 6 файлов:
T80_ALU.vhd
T80.vhd
T80_MCode.vhd
T80_Pack.vhd
T80_Reg.vhd
T80se.vhd
Вообщем как эти 6 файлов ввернуть в схемный ввод, в виде проца?
Сильно не пинайте- с языками verilog и vhdl не знаком, ковыряю потихоньку схемный ввод на досуге.
Заранее спасибо!

kox
30.03.2014, 17:35
С этим уже разобрался, скомпилил, варнинги не нравятся мне, которые компилятор выдает.

Ewgeny7
30.03.2014, 17:38
Варнинги разные бывают. Некоторые можно просто побоку пускать. Остальные - иметь ввиду.

kox
30.03.2014, 18:54
Что например делать с этими варнингами:

Warning: Timing characteristics of device EP4CE10F17C8 are preliminary

Critical Warning: Synopsys Design Constraints File file not found: 'z80.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design.

Critical Warning: Timing requirements not met

И как к ним относиться?

Ewgeny7
30.03.2014, 19:29
По большому счету - не обращать внимания. а проверить в работе.
Аналайзер лучше переключи на Classic Time Analizer, он не будет вываливать тебе гору ненужных (пока) сообщений. TimeQuest - штука понавороченней, и пока не нужна.
Третье сообщение говорит, что с точки зрения анализатора, проект где-то не укладывается во временнЫе рамки. Но он может и ошибаться, если у тебя данные где-то задерживаются логикой схемы, поэтому тоже - сразу в панику не впадай.
Проверяй проект в работе. а потом уже разгребай глюки варнингов. если что-то криво работает.
Это в общих чертах...
Позже научишься искать по варнингам "слабые места" и подчищать их для стабильности работы схемы.

---------- Post added at 19:29 ---------- Previous post was at 19:24 ----------

Варнинги будут практически всегда. Например, при компиляции исходников ПентЭвы, даже ничего не трогая там, получим около 20 ахтунгов, но там ничего катастрофического нет. Да и от версии Кактуса количество зависит, почему-то...

kox
30.03.2014, 19:50
Если компилировать проект под 4 циклон, то на Classic Time Analizer переключится не получается, тупо не активен этот радиобатон в настройках, на 2 циклоне можно без проблем переключится.
По 3 сообщению- то что проект не укладывается во временные рамки- я компилирую голый проц без схемы, только пины ввода/вывода навесил. И настораживает, что голый проц во временные рамки не укладывается. Циклон 4 только в пути с Китая, так сто в железе проверить не могу.
Компилировал под 2 циклон с Classic Time Analizer, такого косяка нет, симулировал встроенным симулятором, подавая на вход проца клок, ресет и wait прижав к vcc, в симуляторе проц перебирант адреса, генерит стгнал mreq, m1.
Вообщем можно наверное забить на этот варнинг?

Ewgeny7
30.03.2014, 19:53
Вообщем можно наверное забить на этот варнинг?
Правильно понял :)

shurik-ua
30.03.2014, 19:56
попробуй создать пустой файл - 'z80.sdc' и положи в папку с проектом.
звучит глупо - но этот варнинг должен исчезнуть : Critical Warning: Timing requirements not met

kox
30.03.2014, 21:33
попробуй создать пустой файл - 'z80.sdc' и положи в папку с проектом.
звучит глупо - но этот варнинг должен исчезнуть : Critical Warning: Timing requirements not met
Этот варнинг не исчез, зато исчез этот:
Critical Warning: Synopsys Design Constraints File file not found: 'z80.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design.

:v2_dizzy_punk:

И еще вопрос к Ewgeny7:
создал в мегавизарде rom компонент, у него помимо адресов и данных есть
сигнал clock. Это я так понимаю тактирование регистров защелок для адреса и данных?
откуда его лучше затактировать?

Ewgeny7
30.03.2014, 23:18
лучше от клока после pll, например, процессорного. тактов вполне хватит.

kox
30.03.2014, 23:24
Спасибо за консультацию!
Я вообще хотел от 14 мегагерц затактировать, для перестраховки.

Ewgeny7
31.03.2014, 08:03
Ну, это было бы неплохо :)
Все обвеску процессора нужно тактировать клоком, кратным основному клоку процессора. В данном случае хуже не будет, если на память подашь клок 7 или 14 или 28 Мгц :)

HardWareMan
31.03.2014, 10:04
Если пишет "Warning: Timing characteristics of device ХХХХ are preliminary", где "ХХХ" имя текущего девайса, то это значит, что в родном анализаторе нет точных таймингов данного девайса и он выбрал дефолтные "предварительные" или "приблизительные". Если хочется копать дальше то надо подключать полноценно таймквест и забивать тайминги руками (все те же *.SDC файлы). В 60% случаях этот варнинг можно игнорировать.

Mick
10.04.2014, 16:23
Народ, я тут все ретроградством занимаюсь. Вот стало интересно. SPI микрухи памяти могут подойти для конфигурации ПЛИС. Допустим FLEX или APEX серий.
У них есть пассивный последовательный режим. Вот например цепляем к меге эту SPI память и тот же SPI интерфейс цепляем на конфигурационные входы ПЛИС.
Мега при старте как бы начинает чтение из памяти и одновременно записывает конфигурацию в ПЛИС.
Память например серий AT25256 или AT25128, т.е. 32кб и 16кб соотвественно.
Никто не заморачивался?
Это я для общего образования. Не все ПЛИС имеют паралельный режим конфигурирования :)

solegstar
10.04.2014, 16:53
Народ, я тут все ретроградством занимаюсь. Вот стало интересно. SPI микрухи памяти могут подойти для конфигурации ПЛИС.
я не скажу за конфигурацию ПЛИС с SPI микросхем памяти, но у меня на заводе стоят станки, в них стоят для хранения конфигурации 24с512. я их раз в год меняю, т.к. летят ячейки памяти. причем проблема не в кол-ве циклов записи/чтения, а проблема с частым включением/выключением. Даже тест проводили - спецом загоняли в цикл запись и проверка записи всех ячеек, ну где-то около 10000 раз оно записалось и проверилось без проблем, на этом и остановились и решили, что проблема из-за частых ВКЛ/ВЫКЛ. меняли производителя - пофиг. с питанием на плате всё в порядке, но вот такая неприятная штука выяснилась.

Mick
10.04.2014, 16:59
я не скажу за конфигурацию ПЛИС с SPI микросхем памяти, но у меня на заводе стоят станки, в них стоят для хранения конфигурации 24с512. я их раз в год меняю

24C512 это ивасевые микрухи (I2C). У них вроде протокол другой.
А ПЛИС альтеровские или может Xilinx или еще какие?

Mick
10.04.2014, 18:08
Mick, я думаю это реально. Только nCONFIG фпга нужно дергать после того, как пошлешь флэшке команду чтения и 3 (2) байта адреса. Т.е. Команда, адрес, пинок на PS, читаешь данные. Плюсы метода: можно выбирать адрес флэша, где лежит конфиг (при AS он всегда = 0).

Что же, ты меня обнадежил. Надо будет поподробнее изучить этот вопрос.

Mick
13.05.2014, 21:35
Народ, вопрос по Кактусу. Можно ли настроить его чтобы он в отчетах показывал как он преобразует исходный текст в логическое представление, т.е. его логический синтез. Вот в Мах Plus в файле с расширением rpt это можно увидеть.
А как бы в Кактусе такое провернуть.

А то заткнулся на одной вещи, понять не могу во что он ее синтезирует.

tnt23
14.05.2014, 22:58
Спрошу и я: возможно ли у Cyclone II включить On-Chip Termination (встроенный последовательный резистор) для выхода типа Open Drain?

Mick
17.05.2014, 07:41
Так, мой вопрос остался без ответа, попробуем по другому.

Я попытался переложить интерфейс SD карты, написанный на vhdl Keeper на AHDL.
Но нифига не работает зараза и не врублюсь почему.
Может кто незамутненным взглядом найдет ошибку.

Вот мой кусок кода


------------------------------------------------------------------------------------
-- Интерфейс SD карты, работает на частоте 14МГц
------------------------------------------------------------------------------------
-- Порт xx57h = 01010111b
------------------------------------------------------------------------------------
CS_57 = CA[7] # !CA[6] # CA[5] # !CA[4] # CSx7 # IO_ENABLE;

SD_start_sync.d = !CS_57;
SD_start_sync.clk = CLK_14MHZ;
-----------------------------------------------------------------------------------
-- Счетчик
------------------------------------------------------------------------------------
SD_count_en = SD_count[0].q # SD_count[1].q # SD_count[2].q # !SD_count[3].q;

SD_count[].clk = !CLK_14MHZ;
SD_count[0].clrn = !SD_start_sync.q;
SD_count[1].prn = !SD_start_sync.q;
SD_count[2].prn = !SD_start_sync.q;
SD_count[3].prn = !SD_start_sync.q;
IF SD_count_en ==1 THEN
SD_count[].d = SD_count[].q+1;
END IF;
------------------------------------------------------------------------------------
-- Входной сдвигающий регистр
------------------------------------------------------------------------------------
SD_shift_in[].clk = CLK_14MHZ;
IF SD_count[3].q ==0 THEN
SD_shift_in[].d = (SD_shift_in[7-1..0].q,SD_MISO);
END IF;
------------------------------------------------------------------------------------
-- Выходной сдвигающий регистр = xx57h = 01010111b
------------------------------------------------------------------------------------
WR_57 = CS_57 # C_WR;

SD_shift_out[].clk = !CLK_14MHZ;
IF WR_57 ==0 THEN
SD_shift_out[].d = CD[];
ELSIF SD_count[3].q ==0 THEN
SD_shift_out[].d = (SD_shift_out[7-1..0].q,VCC);
END IF;
-----------------------------------------------------------------------------------
-- Вывод данных в SD
------------------------------------------------------------------------------------
SD_MOSI = SD_shift_out[7].q;
------------------------------------------------------------------------------------
-- Выходная частота SD
------------------------------------------------------------------------------------
SD_SCK = CLK_14MHZ & !SD_count[3].q;
------------------------------------------------------------------------------------
-- Процесс записи в порт управления SD карты = xx77h = 01110111b
------------------------------------------------------------------------------------
WR_77 = CA[7] # !CA[6] # !CA[5] # !CA[4] # CSx7 # IO_WR;

SD_rule_r.d = CD[1];
SD_rule_r.clk = WR_77;
SD_rule_r.prn = C_RESET;

SD_CS = SD_rule_r.q;



Почему то cчетчик SD_count доходя до 8 не останавливается и продолжает считать.

А вот исходный вариант на vhdl


library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;

entity SPI is
port(
--INPUTS
DI : in std_logic_vector(7 downto 0);
CLC : in std_logic;
START : in std_logic;
MISO : in std_logic;
WR_EN : in std_logic;
--OUTPUTS
DO : out std_logic_vector(7 downto 0);
SCK : out std_logic;
MOSI : out std_logic
);
end;

architecture spi_rtl of SPI is

signal COUNTER : std_logic_vector(3 downto 0);
signal SHIFT_IN : std_logic_vector(7 downto 0);
signal SHIFT_OUT : std_logic_vector(7 downto 0);
signal COUNTER_EN : std_logic;
signal START_SYNC : std_logic;

begin
SCK <= CLC and not COUNTER(3);
DO <= SHIFT_IN;
MOSI <= SHIFT_OUT(7);
COUNTER_EN <= not COUNTER(3) or COUNTER(2) or COUNTER(1) or COUNTER(0);

process(CLC)
begin
if CLC'event and CLC = '1' then
START_SYNC <= START;
end if;
end process;

process(CLC,COUNTER(3))
begin
if CLC'event and CLC = '1' then
if COUNTER(3) = '0' then
SHIFT_IN <= SHIFT_IN(6 downto 0)&MISO;
end if;
end if;
end process;

process(CLC,WR_EN,COUNTER(3))
begin
if CLC'event and CLC = '0' then
if WR_EN = '1' then
SHIFT_OUT <= DI;
else
if COUNTER(3) = '0' then
SHIFT_OUT(7 downto 0) <= SHIFT_OUT(6 downto 0)&'1';
end if;
end if;
end if;
end process;

process(CLC,START_SYNC,COUNTER_EN)
begin
if START_SYNC = '1' then
COUNTER <= "1110";
else
if CLC'event and CLC = '0' then
if COUNTER_EN = '1' then
COUNTER <= COUNTER+"0001";
end if;
end if;
end if;
end process;

end spi_rtl;

balu_dark
17.05.2014, 09:51
Так, мой вопрос остался без ответа, попробуем по другому.

Я попытался переложить интерфейс SD карты, написанный на vhdl Keeper на AHDL.
Но нифига не работает зараза и не врублюсь почему.
Может кто незамутненным взглядом найдет ошибку.

Вот мой кусок кода




------------------------------------------------------------------------------------
-- Интерфейс SD карты, работает на частоте 14МГц
------------------------------------------------------------------------------------
-- Порт xx57h = 01010111b
------------------------------------------------------------------------------------
CS_57 = CA[7] # !CA[6] # CA[5] # !CA[4] # CSx7 # IO_ENABLE;

SD_start_sync.d = !CS_57;
SD_start_sync.clk = CLK_14MHZ;
-----------------------------------------------------------------------------------
-- Счетчик
------------------------------------------------------------------------------------
SD_count_en = SD_count[0].q # SD_count[1].q # SD_count[2].q # !SD_count[3].q;

SD_count[].clk = !CLK_14MHZ;
SD_count[0].clrn = !SD_start_sync.q;
SD_count[1].prn = !SD_start_sync.q;
SD_count[2].prn = !SD_start_sync.q;
SD_count[3].prn = !SD_start_sync.q;
IF SD_count_en ==1 THEN
SD_count[].d = SD_count[].q+1;
END IF;
------------------------------------------------------------------------------------
-- Входной сдвигающий регистр
------------------------------------------------------------------------------------
SD_shift_in[].clk = CLK_14MHZ;
IF SD_count[3].q ==0 THEN
SD_shift_in[].d = (SD_shift_in[7-1..0].q,SD_MISO);
END IF;
------------------------------------------------------------------------------------
-- Выходной сдвигающий регистр = xx57h = 01010111b
------------------------------------------------------------------------------------
WR_57 = CS_57 # C_WR;

SD_shift_out[].clk = !CLK_14MHZ;
IF WR_57 ==0 THEN
SD_shift_out[].d = CD[];
ELSIF SD_count[3].q ==0 THEN
SD_shift_out[].d = (SD_shift_out[7-1..0].q,VCC);
END IF;
-----------------------------------------------------------------------------------
-- Вывод данных в SD
------------------------------------------------------------------------------------
SD_MOSI = SD_shift_out[7].q;
------------------------------------------------------------------------------------
-- Выходная частота SD
------------------------------------------------------------------------------------
SD_SCK = CLK_14MHZ & !SD_count[3].q;
------------------------------------------------------------------------------------
-- Процесс записи в порт управления SD карты = xx77h = 01110111b
------------------------------------------------------------------------------------
WR_77 = CA[7] # !CA[6] # !CA[5] # !CA[4] # CSx7 # IO_WR;

SD_rule_r.d = CD[1];
SD_rule_r.clk = WR_77;
SD_rule_r.prn = C_RESET;

SD_CS = SD_rule_r.q;




Почему то cчетчик SD_count доходя до 8 не останавливается и продолжает считать.

А вот исходный вариант на vhdl



library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;

entity SPI is
port(
--INPUTS
DI : in std_logic_vector(7 downto 0);
CLC : in std_logic;
START : in std_logic;
MISO : in std_logic;
WR_EN : in std_logic;
--OUTPUTS
DO : out std_logic_vector(7 downto 0);
SCK : out std_logic;
MOSI : out std_logic
);
end;

architecture spi_rtl of SPI is

signal COUNTER : std_logic_vector(3 downto 0);
signal SHIFT_IN : std_logic_vector(7 downto 0);
signal SHIFT_OUT : std_logic_vector(7 downto 0);
signal COUNTER_EN : std_logic;
signal START_SYNC : std_logic;

begin
SCK <= CLC and not COUNTER(3);
DO <= SHIFT_IN;
MOSI <= SHIFT_OUT(7);
COUNTER_EN <= not COUNTER(3) or COUNTER(2) or COUNTER(1) or COUNTER(0);

process(CLC)
begin
if CLC'event and CLC = '1' then
START_SYNC <= START;
end if;
end process;

process(CLC,COUNTER(3))
begin
if CLC'event and CLC = '1' then
if COUNTER(3) = '0' then
SHIFT_IN <= SHIFT_IN(6 downto 0)&MISO;
end if;
end if;
end process;

process(CLC,WR_EN,COUNTER(3))
begin
if CLC'event and CLC = '0' then
if WR_EN = '1' then
SHIFT_OUT <= DI;
else
if COUNTER(3) = '0' then
SHIFT_OUT(7 downto 0) <= SHIFT_OUT(6 downto 0)&'1';
end if;
end if;
end if;
end process;

process(CLC,START_SYNC,COUNTER_EN)
begin
if START_SYNC = '1' then
COUNTER <= "1110";
else
if CLC'event and CLC = '0' then
if COUNTER_EN = '1' then
COUNTER <= COUNTER+"0001";
end if;
end if;
end if;
end process;

end spi_rtl;




А объясни как в твоем языке происходит инкремент счетчика - в VHDL коде там в последней секции он инкрементится


if CLC'event and CLC = '0' then
if COUNTER_EN = '1' then
COUNTER <= COUNTER+"0001";

а в твоем куске он только присваивается но никаких движняков именно по изменению, я в коде не вижу. Может конечно в AHDL есть какое то автоинкрементирование - но я в этом сомневаюсь.

---------- Post added at 09:51 ---------- Previous post was at 09:29 ----------

Ага тормозю - нашел!
твой код :


IF SD_count_en ==1 THEN
SD_count[].d = SD_count[].q+1;

попробуй переписать как :


IF SD_count_en ==1 THEN
IF SD_count[].d == 7 THEN SD_count[].d=0;
ELSE
SD_count[].d = SD_count[].q+1;

Синтаксис я мог нарушить ( не знаю его ) но идея думаю ясна.
Это если должно считать 8 раз от 0 до 7.
И вопросы по .d и .q не понятно - почему разная разрядность до и после присваивания (SD_count[].d = SD_count[].q+1). если я правильно врубаюсь - это дабл и квад ? По идее оно должно быть одинаковым. А приведение сделать потом, типа and 7 если надо только 3 разряда. Но вообще - желательно просто ввести условие дополнительное а операнды делать равными по ширине. для данного случая - 4 бита.

Mick
18.05.2014, 14:09
И вопросы по .d и .q не понятно - почему разная разрядность до и после присваивания (SD_count[].d = SD_count[].q+1). если я правильно врубаюсь - это дабл и квад ? По идее оно должно быть одинаковым. А приведение сделать потом, типа and 7 если надо только 3 разряда. Но вообще - желательно просто ввести условие дополнительное а операнды делать равными по ширине. для данного случая - 4 бита.

В смысле разная разрядность.
Счетчик в данном примере основан на D триггерах, у которых
.d - это D-вход,
.q - это выход
[] тоже самое что и [3..0] - тоесть применительно ко всем разрядам
А запись SD_count[].d = SD_count[].q+1 равносильна записи в VHDL как SD_count = SD_count+1

balu_dark
18.05.2014, 19:17
Ух как все интересно .
Я не увидел что это обращение к полям структуры.
Теперь понятно. Но вопросы - остаются.
И все таки попробуйте ввести проверку о которой я написал - если код равен 7 на выходе тригера при необходимости увеличить счетчик - присваивать входу значение 0. А то я так и не понял - было ли это сделано или нет.

Ewgeny7
24.05.2014, 11:48
Откопал у себя в завалах старенький даташит на CPLD MAX3000A (http://yadi.sk/d/wqImiXcVR9Vqv). Там внятно расписан часто возникающий вопрос о совместимости любимых народом EPM3032, 3064, 3128 с пятивольтовым окружением. Раздел Output Configuration.
В упрощенном переводе с ангельского - чипы полностью толерантны к пятивольтовым входным сигналам, танцы с бубном не требуются. Выходные сигналы (при питании ядра 3.3вольт) - вполне укладываются для подключения к пятивольтовой логике. В общем, ничего нового, просто для закрепления информации :)

balu_dark
25.05.2014, 20:55
a Mick то куда пропал ? Одолел интересно или нет? Вернее даже добавил сброс счетчика при переходе через 7 или оставил переполняться?

Mick
01.06.2014, 10:16
a Mick то куда пропал ? Одолел интересно или нет? Вернее даже добавил сброс счетчика при переходе через 7 или оставил переполняться?

Да никуда я не пропал, просто неделю возился с ZXM-GeneralSound, но и там не преуспел. :(

Tronix
07.06.2014, 21:13
Глупый вопрос, чем в основном отличается Altera от Xilix? Хочу сделать IDE контроллер для XT, часть или всю логику упрятать в ПЛИС. Паять буду на макетке, поэтому корпус PPLC44 (или больший по размеру PPLC) предпочтителен.
Так же неплохо, что бы питалось все от 5 вольт, ну или хотя бы TTL уровни были с 5в толерантными. Но тогда придется помимо ПЛИС ставить еще буферы на IDE?

С наскоку мне, в принципе, понравилась EPM3032ALC44-10 . Шьется вроде программатором из "проводков". Quantus (или как там его) опять таки халявный, позволяет схемы рисовать...

С другой стороны вот эти ребята (http://dangerousprototypes.com/2012/02/13/xt-ide-adapter-tested-and-working/) сначала (v1) делали на 44ногой XC9536 пяти вольтовой, но буферы вынесли на плату. А потом взяли (v2) и упаковали все в 100 ногую XC9572XL трех вольтовую. И вроде пашет у них все. Вот я и в раздумьях, это пашет потому что Xilix, или пашет просто, не важно Xilix или Altera?

TSL
09.06.2014, 06:47
1. Софты Xilinx-а тормозные, я предпочитаю Альтеру.
2. 5В толерант только лапы, питание все равно должно быть 3.3В. Вопреки тому, что у некоторых выбегалл они работают на 5В, они гарантированно убиваются при прошивании на этой напруге.
3. Для дизайна рекомендую использовать МАХ II, например ЕРМ240 ибо ЕРМ3ххх это уже старье.

balu_dark
11.06.2014, 00:05
Tronix был вроде фришный контроллер IDE для ISA кем то нашим произведенный. Сейчас поищу - если что - добавлю ссылку в этот пост.
наш не нашел но первый линк это http://dangerousprototypes.com/docs/XT_IDE_disk_controller

TSL
15.06.2014, 01:17
Для дизайна рекомендую использовать МАХ II, например ЕРМ240 ибо ЕРМ3ххх это уже старье.
Прошу прощения за неточность, у МАХ 2 толерантны к 5В только 2 топовых чипа в линейке, да и то требуют резистора и внутреннего диода, так что для дизайна не подходят.

Tronix
16.06.2014, 19:08
А что скажите про EPM7064SLC44-10(N) ? Думаю взять на пробу ее... Это серия MAX 7000. В даташите есть оговорка, что MultiIO 5V не доступно в PPLC 44 корпусе. Но она же все равно толерантна к 5V TTL? Или нет?

Или не выеживаться, и взять самое простое - EPM3032ALC44-10?

TSL
17.06.2014, 01:34
2e.

Tronix
17.06.2014, 09:08
2e.
Так то да, но с другой стороны 7000 сама по себе же 5 вольтовая вроде. Значит меньше гемороя с DC-DC конвертером, да и 5V TTL уровнями?

Возьму наверное и то, и то. Гулять так гулять :\

TSL
17.06.2014, 11:14
Значит меньше гемороя с DC-DC конвертером, да и 5V TTL уровнями?
3.3V LDO на питание стоит 10 штук за бакс. С 5В уровнями никаких проблем.

Tronix
17.06.2014, 12:37
Купил и то и то. Начну пожалуй с 7000 серии. Чем шить?

TSL
17.06.2014, 12:50
Этим (www.ebay.com/itm/181379827152), например.

Tronix
17.06.2014, 13:00
Этим (www.ebay.com/itm/181379827152), например.

Да ну не, у меня ж есть LPT и DOS/Win 98/Win XP. Зачем мне с китая заказывать и ждать месяц эту погремушку? Такая хреновина на 555АП5 разве не подойдет?
http://read.pudn.com/downloads114/doc/fileformat/478934/ByteblasterMV/byteblastermv.gif

TSL
17.06.2014, 15:36
Подойдет конечно, я сам таким пользовался. Но на новом компе у меня нету лпт, например.

SpecialistMK87
17.06.2014, 15:41
от нетерпения довелось шить даже таким
http://ic.pics.livejournal.com/texas_88/27648373/2425/2425_original.gif

balu_dark
17.06.2014, 17:36
все таки проще (безопаснее ) байтбластер на 74245 собирать - схема была в альтеровском даташите( в каком именно не помню но по моему чтото про прошивку чипов).


P.S.
Так - сорри - не увидел - Tronix уже дал его схему выше :)

Tronix
17.06.2014, 19:35
Хорошо, сделаем на 555АП5. У меня не хватает пинов :( Как можно заюзать пины, которые для программирования нужны? Отключить JTAG в настройках Device? Если я их использую, смогу я потом прошиться то по новой или уже все, досвидос?
http://habrastorage.org/files/8b6/a85/e31/8b6a85e316b64124b65f87c03a7095ee.png

solegstar
17.06.2014, 19:56
У меня не хватает пинов Как можно заюзать пины, которые для программирования нужны? Отключить JTAG в настройках Device? Если я их использую, смогу я потом прошиться то по новой или уже все, досвидос?
а сколько не хватает? вроде если задействуешь пины для программирования, то jtag будет не доступен. возможно будет доступен режим высоковольтного программирования, если конечно он есть в этой серии...

Tronix
17.06.2014, 20:04
2 пина не хватает :(

solegstar
17.06.2014, 20:18
Tronix, думаю reset можно проинвертировать и внешними элементами. он же в прошиве не используется?

Tronix
17.06.2014, 20:27
Tronix, думаю reset можно проинвертировать и внешними элементами. он же в прошиве не используется?

Не используется. Ну RESET можно и транзистором инвертнуть, в принципе. Но нужен еще 1 пин :(

solegstar
17.06.2014, 20:28
Не используется. Ну RESET можно и транзистором инвертнуть, в принципе. Но нужен еще 1 пин :(

да, но ведь если ресет убрать из прошивы, то освободятся как раз два пина. или тебе еще к этим двум нужен еще один???

Tronix
17.06.2014, 20:37
да, но ведь если ресет убрать из прошивы, то освободятся как раз два пина. или тебе еще к этим двум нужен еще один???

Точно, это я просто из двух один не смог вычесть. Затупил, бывает -)
Но все-таки интересно, можно ли юзать пины
а) Ded. input (dedicated input?), Global Clock
б) Пины для программирования TDI/TMS/TDO/TCK
?

Вот вариант А - это ваще для чего надо? Пытался на них повесить output - ругается при компиляции:

Error: Node "RESET" assigned to PIN_2 is a dedicated input pin, but you cannot assign an output/bidir pin, input register, or macrocell to a dedicated input pin

lisica
17.06.2014, 22:28
Пытался на них повесить output
Оно только на IN

TSL
18.06.2014, 08:10
У меня была мамка с ЛПТ 3.3В. С нее я использовал джтаг без 245. Но в общем случае - преобразователь уровней ставить обязательно.

Tronix
18.06.2014, 08:23
У меня была мамка с ЛПТ 3.3В. С нее я использовал джтаг без 245. Но в общем случае - преобразователь уровней ставить обязательно.

АП5 (74hc244) - это буфер ващето, а не преобразователь уровней.

TSL
18.06.2014, 08:28
Да ну, really? :)

Ewgeny7
18.06.2014, 09:10
Но все-таки интересно, можно ли юзать пины
а) Ded. input (dedicated input?), Global Clock
б) Пины для программирования TDI/TMS/TDO/TCK
Global Clock - только вход. У него есть своя особенность, "сетка" его магистралей проходит по всему кристаллу, поэтому его настоятельно рекомендуют использовать как вход тактовой, которая используется для большей части проекта. Время прохождения сигнала - минимально, синхронность работы получается лучше, чем использовать обычный вход и гнать тактовый сигнал через ячейки/магистрали.
Если в проекте используется, к примеру, сигнал записи в кучу триггеров-регистров, то это применение будет самое то.
Но вполне можно использовать и как самый обычный вход.
Аналогично используется и Glоbal Reset.
Использовать пины JTAG - дело личное, но... лучше не трогать. Один хрен, потом понадобится что-то поправить, а поезд уехал. Перешить чип пятью проводками не удастся.

SpecialistMK87
18.06.2014, 09:52
буфер ставят чтобы не спалить LPT,
пины JTAG даже в голову не приходило использовать. Кстати, на приведенной схеме дешифраторы 74.... рекомендую заменить на одну мегафункцию decoder, это и Altera рекомендует. Работать будет быстрее, меньше места займет на кристалле, и схема будет красивее выглядеть

Tronix
18.06.2014, 10:11
Использовать пины JTAG - дело личное, но... лучше не трогать. Один хрен, потом понадобится что-то поправить, а поезд уехал. Перешить чип пятью проводками не удастся.

А чем удастся? Чем и как шьют чипы, у которых ноги JTAG были использованы в проекте под собственные нужды?

PS: Спасибо за развернутый ответ.

Ewgeny7
18.06.2014, 10:28
А чем удастся? Чем и как шьют чипы, у которых ноги JTAG были использованы в проекте под собственные нужды?

PS: Спасибо за развернутый ответ.
Тут лучше бы ответил Микка_А, но он сюда почти не заходит.
При отключенных пинах ISP чипы можно перешить с помощью параллельного программатора. Они есть, как правило, у дилеров, торгующих плисами. В Питере такой программатор есть у "ЭФО", например. Более точно суть я описать не могу, не знаю...
Схем в инете не валяется, можно сделать вывод, что там или всё жутко сложно, или не менее жутко секретно. В общем, нафиг....

---------- Post added at 10:28 ---------- Previous post was at 10:23 ----------

Чуть отступлю от темы - заказывал на алиэкспрессе недавно EPM3064ATC44 (http://ru.aliexpress.com/item/100-new-original-EPM3064ATC44-10N-EPM3064ATC44-10-EPM3064ATC44-EPM3064-ALTERA-TQFP44/1660786412.html).
Пришли быстренько, и цена очень неплохая, по 49рэ. Ножки паябельны для начинающих, пригодны для ЛУТа.

Tronix
18.06.2014, 11:15
А вообще нужно было брать PLCC84, хоть и дороже. Я бы тогда туда весь контроллер зафигачил, а так приходится регистры-защелки вынести в обычные 555ИР33 (3 штуки). Мало ног :( Кстати, всего 9 ячеек получилось занято. Я бы в 32 точно бы уложился, при таком раскладе.

И еще вопрос - а можно где-то посмотреть, как выглядит получившиеся схема "в целом", то есть как 74138 раскладывается на отдельные элементы и как все связывается. То есть как бы общую схематику после прохода компилятора? Или как она в VHDL преобразуется..
А то я только свою схему вижу, а вдруг у меня сигнал CS не соединяется с CS после дешифратора? Может я в CS русскую С поставил вместо латинской C?

SpecialistMK87
18.06.2014, 12:32
я обычно все схемы на симуляторе встроенном прогоняю, там рисуешь времянку входных сигналов и смотришь расчетные осциллограммы выходных, ошибки быстро находятся

Tronix
18.06.2014, 13:30
я обычно все схемы на симуляторе встроенном прогоняю, там рисуешь времянку входных сигналов и смотришь расчетные осциллограммы выходных, ошибки быстро находятся

А где это? Я чет не могу найти... У меня квартус 9.1 sp2 WEB edition, без лицензий... Крякать надо?

Ewgeny7
18.06.2014, 14:25
Там есть RTL Viewer, в нем отображается реальная картина соединений.
По какому-нибудь сигналу кликни правой мышкой, в меню выбрать RTL...

SpecialistMK87
18.06.2014, 15:11
А где это? Я чет не могу найти... У меня квартус 9.1 sp2 WEB edition, без лицензий... Крякать надо?
крякать скорее всего не надо,
схема рисуется в редакторе схем, надо искать как переключиться в Simulator,
я Quartus'oм пользовался в режиме пользовательского интерфейса Max Plus, там несколько больших кнопок было, в том числе и вызов симулятора

lisica
18.06.2014, 21:01
крякать скорее всего не надо,
Надо, без кряка компилить будит, но pof не запишет.

Tronix
21.06.2014, 20:08
Хм... Распаял байтбластер на 1533АП5. То определяет, то определяет не правильно, то не определяет вообще. Ставлю блокировочный кондер 0,1мкф рядом с 1533АП5 - не определяет вообще никогда. Мистика какая-то.

Mick
21.06.2014, 20:23
Хм... Распаял байтбластер на 1533АП5. То определяет, то определяет не правильно, то не определяет вообще. Ставлю блокировочный кондер 0,1мкф рядом с 1533АП5 - не определяет вообще никогда. Мистика какая-то.

Рекомендуют вообще-то ставить не 1533АП5 а импорт типа 74HC244.
И кстати у тебя ноутбук c LPT или стационарный системник. Просто у ноутбуков LPT какой то недоделанный, бластеры там видятся через раз, а то и вообще не видятся.

Tronix
21.06.2014, 20:58
Рекомендуют вообще-то ставить не 1533АП5 а импорт типа 74HC244.
И кстати у тебя ноутбук c LPT или стационарный системник. Просто у ноутбуков LPT какой то недоделанный, бластеры там видятся через раз, а то и вообще не видятся.

Заменил на 555АП5 - все сразу поехало как по маслу. Зашился нормально без проблем. Мож 1533АП была не исправна, а мож нельзя ее ставить просто. В любом случае я ее уже не проверю, ибо расколол на две части когда выпаивал. Ну да и туда ей и дорога, из-за нее столько времени убил впустую :)

Комп - да, ноутбук, но на LPT у него я не жаловался. Например, на нем нормально работает Willem, LPT-AY, программатор РТ4-РТ5 и прочие самоделкины. С портом все нормально.

Tronix
22.06.2014, 13:38
Хых, распаял ПЗУ на IDE контроллер, работает. Альтера нормально дешифрует адрес. Теперь запаяю регистры и можно хард пробовать подцепить...

solegstar
22.06.2014, 14:30
А вообще нужно было брать PLCC84, хоть и дороже. Я бы тогда туда весь контроллер зафигачил, а так приходится регистры-защелки вынести в обычные 555ИР33 (3 штуки).
поверь - это не минус, а наоборот плюс - развязка с винтом. нагрузочная способность шин плисины очень маленькая. я, да и все остальные тоже, допустим специально оставил буферы на контроллер винта, когда разводил новый верх Профи 5.06. если 1533 серия не справляется с шлейфом IDE, что приходится ставить 555 серию, чтобы его прокачала, то что можно говорить о 3.3В выходах плисины. посмотри схему ZX-EVO. там тоже стоят буферы. в конце-концов если будет какая-то бяка на шине винта, то выгорит буфер за копейки, а не плисина.

Tronix
22.06.2014, 15:45
поверь - это не минус, а наоборот плюс - развязка с винтом. нагрузочная способность шин плисины очень маленькая. я, да и все остальные тоже, допустим специально оставил буферы на контроллер винта, когда разводил новый верх Профи 5.06. если 1533 серия не справляется с шлейфом IDE, что приходится ставить 555 серию, чтобы его прокачала, то что можно говорить о 3.3В выходах плисины. посмотри схему ZX-EVO. там тоже стоят буферы. в конце-концов если будет какая-то бяка на шине винта, то выгорит буфер за копейки, а не плисина.

Ну, во-первых я делаю на EPM7064S, поэтому сигналы у меня все-таки пяти вольтовые (надеюсь), ибо питаю ее от 5V.

Во-вторых, как тогда у пацанов (http://dangerousprototypes.com/docs/XT_IDE_disk_controller) на Xilix 3.3v XC9572XL 100pin работает? Ведь работает же как-то...

Ewgeny7
22.06.2014, 20:40
Да будет она работать без буферов, но... Держи про запас вторую плисину...
Лучше в таком случае прицеплять не винт, а CF-карту. С ней будет спокойней.

Tronix
25.06.2014, 08:23
В общем спаял кое-как. Не работает. Точнее, так:
На XT 8088: когда винт стоит мастером - не определяет никогда. Когда винт стоит слейвом - иногда нормально детектит его (пишет правильно модель и отдает нормальные параметры), обнаруживает Boot sector, но после небольшой паузы либо Error loading operation system, либо, чаще - Non system disk or disk error, press any key for reboot... Хотя диск загрузочный, на нем установлена DOS 5.0. Пробовал два харда разных моделей. Поведение примерно одинаковое: мастером - нет детекта совсем, слейвом иногда детект, но на этом все.

На первопневой матери с iP233 MMX на борту: работает как часы o_O Хошь мастер хошь слейв, читает, пишет, DOS загружает, ну, прям как по маслу.

Мистика какая-то. Замучился уже... Ведь на IDE все (абсолютно все) сигналы идут через регистры ИР33 (у меня 74HC573). Альтера рулит только выбором микросхем (CS), выбором драйва мастер/слейв.. Че ей надо блин.

solegstar
25.06.2014, 09:58
Tronix, попробуй поменять на LS (555) серию буферы. на древней мультяхе стоят именно они - http://zx-pk.ru/showthread.php?t=21356&page=7 . возможно с питанием проблемы, может на хт оно занижено?

Tronix
25.06.2014, 10:57
Самый прикол, что я тоже думал про питание... Но я пробовал и пень и XT запускать от одного и того-же блока питания. На пне - работает, на XT - нет. Правда тестером я не мерял, но на ISA по идее же должно +5V сразу с БП идти.... Померю тестором, но сомневаюсь что от одного и того же БП могут быть разные напряжения по +5V

---------- Post added at 10:57 ---------- Previous post was at 10:02 ----------

1) Как запустить временной расчет прохождения сигналов? У мены Quartus 9.1 чото там говорит в варнингах, что типа он для данного девайса не знает временных интервалов...

2) Как в ПЛИС организоваать задержку? Я пробовал LCELL, в настройках отключил игнор LCELL... Но все равно я не знаю, как проходит сигнал - увеличивается время или нет.

Ewgeny7
25.06.2014, 17:43
Как в ПЛИС организоваать задержку?
только триггерами и прочими счетчиками, тактируемые клоком.
Типа вот так, просто для понимания...


process(CLOCK)
begin
if (rising_edge CLOCK) then
shift(7 downto 0)<= shift(6 downto 0) & Input_signal;
end if;
end process;

Output_signal <= shift(7);


В схемном вводе можно использовать, к примеру, наш любимый регистр ТМ9 (74174),
замкнув его выходы со входами нижележащих разрядов. И по сигналу клока данные будут двигаться. А можно и обычный сдвиговый регистр, но это уже слишком банально :)

Tronix
25.06.2014, 18:41
Еще бы знать, где эту задержку организовывать и надо ли задержку, а не наоборот, ускорять схему....

palsw
29.06.2014, 14:14
отпишу тут ,так как в теме о сборке спекки2010 уже все собрали платки и забили на них.А тут более тема подходит к квартусу и исходникам прошивок.
компилирую 64 версию квартус 9.1.

если по умолчанию делать компиляцию то выскакивает 59 варнингов.
Можно как то уменьшить кол-во Warning ?они меня напрягают :)
http://i.piccy_.info/i9/b1c53508c14f4e3074785bf300084632/1403858509/45133/758237/komplyt_500.jpg (http://piccy_.info/view3/6615704/f29836c629d5991d2949b005aaccb69f/)http://i.piccy_.info/a3/2014-06-27-08-41/i9-6615704/489x341-r/i.gif (http://i.piccy_.info/a3c/2014-06-27-08-41/i9-6615704/489x341-r)[COLOR="Silver"]

если настройки cyclon такие :
выбираю вручную свой чип,тип корпуса,кол-во ног,спидгрейт.
Варнингов намного меньше сейчас (20 шт )
но есть 1 критический Critical Warning: Timing requirements not met

http://i.piccy_.info/i9/426cc868a911fd21d57fc0841b21c081/1404036128/108596/758237/12334_800.jpg (http://piccy_.info/view3/6624942/f0e0eac892257dd78a09fc0ca731852c/orig/)http://i.piccy_.info/a3/2014-06-29-10-02/i9-6624942/716x596-r/i.gif (http://i.piccy_.info/a3c/2014-06-29-10-02/i9-6624942/716x596-r)
при проверке так же все глючит.


Еще питание ядра должно быть 1,2в ,а у нас упрощенно до 1,24-1,25в

Warning (10540): VHDL Signal Declaration warning at speccy2010.vhd(29): used explicit default value for signal "JOY0_SEL" because signal was never assigned a value
Warning (10540): VHDL Signal Declaration warning at speccy2010.vhd(31): used explicit default value for signal "JOY1_SEL" because signal was never assigned a value
Warning (10541): VHDL Signal Declaration warning at speccy2010.vhd(136): used implicit default value for signal "memDataIn2" because signal was never assigned a value or an explicit default value. Use of implicit default value may introduce unintended design optimizations.
Warning (10541): VHDL Signal Declaration warning at speccy2010.vhd(138): used implicit default value for signal "memDataMask2" because signal was never assigned a value or an explicit default value. Use of implicit default value may introduce unintended design optimizations.
Warning (10036): Verilog HDL or VHDL warning at speccy2010.vhd(342): object "trdosFifoReadFull" assigned a value but never read
Warning (10036): Verilog HDL or VHDL warning at speccy2010.vhd(351): object "trdosFifoWriteFull" assigned a value but never read
Warning (10036): Verilog HDL or VHDL warning at ps2fifo.vhd(48): object "ps2_obf_o" assigned a value but never read
Warning: Inferred dual-clock RAM node "doubleByffer~35" from synchronous design logic. The read-during-write behavior of a dual-clock RAM is undefined and may not match the behavior of the original design.
Warning: Inferred RAM node "fifo:U07|buff~27" from synchronous design logic. Pass-through logic has been added to match the read-during-write behavior of the original design.
Warning: Inferred RAM node "ps2fifo:U06|fifo:U01|buff~14" from synchronous design logic. Pass-through logic has been added to match the read-during-write behavior of the original design.
Warning: Inferred RAM node "ps2fifo:U05|fifo:U01|buff~14" from synchronous design logic. Pass-through logic has been added to match the read-during-write behavior of the original design.
Warning: Inferred RAM node "fifo:U09|buff~19" from synchronous design logic. Pass-through logic has been added to match the read-during-write behavior of the original design.
Warning: Inferred RAM node "fifo:U08|buff~19" from synchronous design logic. Pass-through logic has been added to match the read-during-write behavior of the original design.
Warning: Inferred RAM node "ps2fifo:U05|fifo:U02|buff~13" from synchronous design logic. Pass-through logic has been added to match the read-during-write behavior of the original design.
Warning: Inferred RAM node "ps2fifo:U06|fifo:U02|buff~13" from synchronous design logic. Pass-through logic has been added to match the read-during-write behavior of the original design.
Warning: Output pins are stuck at VCC or GND
Warning: Design contains 1 input pin(s) that do not drive logic
Warning (15610): No output dependent on input pin "CLK_20_ALT"
Warning: No paths exist between clock target "pMemClk" of clock "clk84_pin" and its clock source. Assuming zero source clock latency.
Warning: Found 104 output pins without output pin load capacitance assignment
Warning: No paths exist between clock target "pMemClk" of clock "clk84_pin" and its clock source. Assuming zero source clock latency.

kox
09.07.2014, 21:46
Доброго времени суток!
Пытаюсь наваять на верилог переключалку клока для z80, мультиплексор вообщем- имеем 2 входа для частоты 3,5 и 7мгц, также имеем выход тактовой частоты и вход для выбора с какого входа подать частоту на выход.
В верилоге полный профан, нацарапал такой вот былокод:


module CLK_MUX(

input wire ONE_CLK,
input wire DOUBLE_CLK,
input wire Turbo,
output reg CLK_CPU
);



always @*
begin
if (Turbo==1'b1)
begin
CLK_CPU <= DOUBLE_CLK;
end

else
begin
CLK_CPU <= ONE_CLK;
end

end

endmodule


Квартус компилирует с матюком, все вроде бы работает, но загрузка программ с кассетного входа чаще всего приводит к перезагрузке компа.
Тогда как при подключении клока напрямую к процу загрузка тех же программ происходит всегда на ура.
Подскажите пожалуйста коректный код для моей задачи.
Спасибо за внимание:D

IanPo
09.07.2014, 22:25
По-моему, так лучше:
assign CLK_CPU = Turbo ? DOUBLE_CLK : ONE_CLK;
Но вообще, это тоже быдлокод, т.к. переключение Turbo хорошо бы синхронизировать с 7 МГц (DOUBLE_CLK), чтобы не было глитчей (Turbo через триггер пропустить). Надеюсь, что 3.5 и 7 МГц тоже синхронизированы ;)

Ewgeny7
09.07.2014, 22:36
Сделай клок 7Мгц. Это будет турбо.
А для обычной частоты используй тот же турбоклок, но через один импульс. Скважность изменится вдвое, зато всё останется синхронно по самые помидоры :)

kox
09.07.2014, 22:39
Сделай клок 7Мгц. Это будет турбо.
А для обычной частоты используй тот же турбоклок, но через один импульс. Скважность изменится вдвое, зато всё останется синхронно по самые помидоры :)
Прикольное решение, а как это в verilog описать?

Ewgeny7
09.07.2014, 23:03
Верилог я умею читать, а вот писать....
Ну, поставь триггер, срабатываюий по спадающему фронту клока. Выход триггера - сигнал ENA для "ключа", через который идет клок на систему/процессор. Вот и всё.

---------- Post added at 23:03 ---------- Previous post was at 23:02 ----------

Для управления частотой подавай на ключ или единицу, пойдет чистое 7МГц, или сигнал с триггера, будет 3,5МГц.

IanPo
09.07.2014, 23:38
Схема такая?

Ewgeny7
09.07.2014, 23:49
Схема такая?
Чудесно, даже синхронное переключение предусмотрел.
Переложить на текстовый язык труда не составит.

IanPo
10.07.2014, 21:23
reg Q;

always @(negedge DOUBLE_CLK)
Q <= Turbo | ~Q;

assign CLK_CPU = DOUBLE_CLK & Q;

Минус такого решения в том, что тактовый сигнал используется как данные.

Ewgeny7
10.07.2014, 22:26
Если он используется в небольшом числе приемников, то и фиг с ним.

Mick
23.07.2014, 16:00
Народ, вопрос на засыпку.
Какой MAX PLUS II или Qartus может программировать EPM7128EQC?

У меня MAX PLUS II как бы знает о них и компилит под них, но вот в программатор ихний о них не знает.

MVV
23.07.2014, 18:39
Какой MAX PLUS II или Qartus может программировать EPM7128EQC?
Возможно можно доустановить нужное с оф. сайта. http://www.altera.com/support/kdb/solutions/rd03142013_389.html?GSA_pos=1&WT.oss_r=1&WT.oss=max%207000%20quartus

Mick
23.07.2014, 19:58
Возможно можно доустановить нужное с оф. сайта. http://www.altera.com/support/kdb/solutions/rd03142013_389.html?GSA_pos=1&WT.oss_r=1&WT.oss=max%207000%20quartus

Вряд ли в Квактусе будет эта старая CPLD. Тут скорее всего надо искать полный MAX PLUS II

Blade
23.07.2014, 20:04
У нее же нет ISP.

Mick
23.07.2014, 20:31
У нее же нет ISP.

В смысле, а как ее тогда программируют.

Mick
24.07.2014, 09:17
В поисках в инете информации программирования древних CPLD, набрел на интресный ресурс http://matthieu.benoit.free.fr/120.htm
Это сайт о программаторе ALL-03, тоже похоже древнем, там и софт под DOS.
Но обратил внимание на то что там проскакивает инфа о программирвании EPM7032LC44. Помнится кто то говорил, что серию LC нужно програмировать специальным программатором. Так вот на этот программатор не только схемы есть, но и софт.
Так что, может кому пригодится.

aniSKY
08.08.2014, 17:25
Может не актульно но все же:
Случайно наткнулся на такой програматор "USB JTAG программатор MBFTDI" (http://marsohod.org/index.php/prodmbftdi)
http://marsohod.org/images/stories/blog/mbftdi2/mbftdi2_schema.png
Вроде как достаточно спаять и работает, ничего дополнительно прошивать не надо
Ну и большой ПЛЮС то что они написали нужные длл-ки для квартуса, от его видит и шиться можно сразу из него.
Может у кого уже есть что нить на этом чипе, можно было бы проверить, но думаю врать не будут, так как продвигают как дешевый аналог програматора для свои плат (также на ALTERA).
Также думаю это стоит учесть всем кто разрабатывает новые платы\клоны\девборды.

Woland
15.09.2014, 14:46
Итак, из всех перечисленных драйверов интересует нас 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\A lteraByteBlaster" в поле "DependIOnService". Перезагрузка компьютера, и вуаля.


Уже несколько дней пытаюсь подружить Quartus II Programmer 14.0 -x64 (также пробовал 11.1sp1 - x86) c PCI LPT Moschip msc9865IV-AA, для которой скачал последние дрова от производителя от 2013 года, с поддержкой Win7/8 64bit.
ОС пробовал как Win7 64bit, так и Win8.1 64bit - результат одинакого неуспешный - "Kernel mode driver not installed".

Делал всё, как в инструкциях в инете:
1. После установки драйверов PCI LPT захожу в диспетчер устройств, порту присвоен номер LPT1, выбран пункт "Use any interrupt assigned to the port", далее смотрю информацию по драйверу, вижу среди используемых файл PCIPPorts.sys
2. Запускаю окно cmd с правами администратора, перехожу в папку bin установленного Quartus II Programmer, выполняю bblpt /i и получаю ошибку "Can't start Altera ByteBlaster service".
3. Захожу в regedit, в ветку HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Service\Al teraByteBlaster, в поле DependOnService вместо ParPort пишу PCIPPorts. Кстати, везде в инете упоминается параметр DependIOnService, но у меня всегда после выполнения пункта 2 в реестр прописывается именно DependOnService, и никакого DependIOnService нету. Видимо, в инете опечатку все копипастят друг у друга?
4. Набираю в окне cmd строку
SC query PCIPPorts и получаю информацию:

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
5. Рестартую компьютер, и ничего не меняется, по-прежнему в квартусе "Kernel mode driver not installed", и команда bblpt /i выдает мне ошибку "Can't start Altera ByteBlaster service"..

Как победить, может это вообще невозможно сделать под Win7/8 64bit ? Если ставлю на всём том же оборудовании WinXP 32bit, то все работает и квартус шьет ПЛИСины через LPT PCI.

fifan
15.09.2014, 19:50
Да всё нормально было у меня при установке PCI LPT платы при подключении Byte Blaster'а. См. инструкцию здесь (http://zx-pk.ru/showpost.php?p=348565&postcount=752). Сейчас я приобрёл USB Blaster. Надобность в плате отпала.

Woland
15.09.2014, 21:15
Ну собственно я всё так и делал - не работает и всё тут.

fifan
15.09.2014, 21:58
Ну собственно я всё так и делал - не работает и всё тут.
Ну тогда нужно было прочитать всю тему (http://zx-pk.ru/showthread.php?p=348565#post348565). Там у народа тоже не получилось под 64 разрядную винду плату запустить. Выход в этом случае один - покупать USB Blaster.

Mick
12.10.2014, 11:29
А вот и я с глупыми вопросами. Вопрос к гуру такой.

Имеем CPLD допустим EPM7064SLC84. В ней 4 логических блока A,B,C,D. Есть входы напряжения питания VCCINT, равное 5V, это понятно - типа как напряжение ядра.
А вот есть еще VCCIO, типа напряжение ввода вывода. Оно может принимать значения 3,3Vили 5V. Как я понимаю, VCCIO подается на каждый логический блок независимо от другого блока.

Так вот можно например на логический блок VCCIO подать 3,3V для реализации SD интерфейса, а на остальные блоки VCCIO подать 5V, для реализации других схем, например дешифраторов. Напряжение всей системы 5V.

Ewgeny7
12.10.2014, 11:44
"can be set for either 3.3-V or 5.0-V operation, allowing
MAX 7000 devices to be used in mixed-voltage systems."
Судя по этим строчкам из даташита, блоки I/O могут работать независимо с разным напряжением, поскольку mixed-voltage.
Ищу еще информацию, но больше пока не нашел.

Mick
12.10.2014, 11:47
"can be set for either 3.3-V or 5.0-V operation, allowing
MAX 7000 devices to be used in mixed-voltage systems."
Судя по этим строчкам из даташита, блоки I/O могут работать независимо с разным напряжением, поскольку mixed-voltage.
Ищу еще информацию, но больше пока не нашел.

Было бы круто, если можно так делать. Я бы тогда SD интерфейс без преобразователей уровня зaпендюрил :)

Ewgeny7
12.10.2014, 11:54
Mick, с другой стороны, Кактус как-то без энтузиазма относится к этому:

http://savepic.org/6207663.png

Mick
12.10.2014, 12:00
Ну как бы ты кактус на плату ставить не будешь. И как вольтаж влияет на логику в кактусе.

Ewgeny7
12.10.2014, 12:07
Остается прозвонить пины VCCIO на предмет отсутствия связи между ними :)
А кактус просто пишет, что разбивка разновольтного VCCIO на разные банки ему непонятна, и для этого семейства недоступна.

---------- Post added at 12:07 ---------- Previous post was at 12:06 ----------

Вот еще строки из даташита для MAX7000, но там опять нету прямого ответа:
"MultiVolt I/O Interface
MAX 7000 devices—except 44-pin devices—support the MultiVolt I/O
interface feature, which allows MAX 7000 devices to interface with
systems that have differing supply voltages. The 5.0-V devices in all
packages can be set for 3.3-V or 5.0-V I/O pin operation. These devices
have one set of VCC pins for internal operation and input buffers (VCCINT),
and another set for I/O output drivers (VCCIO).
The VCCINT pins must always be connected to a 5.0-V power supply. With
a 5.0-V VCCINT level, input voltage thresholds are at TTL levels, and are
therefore compatible with both 3.3-V and 5.0-V inputs.
The VCCIO pins can be connected to either a 3.3-V or a 5.0-V power supply,
depending on the output requirements. When the VCCIO pins are
connected to a 5.0-V supply, the output levels are compatible with 5.0-V
systems. When VCCIO is connected to a 3.3-V supply, the output high is
3.3 V and is therefore compatible with 3.3-V or 5.0-V systems. Devices
operating with VCCIO levels lower than 4.75 V incur a nominally greater
timing delay of tOD2 instead of tOD1."

Mick
12.10.2014, 12:11
и для этого семейства недоступна.

Дело в том что твой кактус не понимает в данном случае какая микруха перед ним. Например EPM7032 идет только в корпусе с 44 ногами, а там нет помоему вообще такого напряжения VCCIO, только одно VCC.

У EPM7064 может быть также корпус 44 ногий и одно напряжение VCC, так и 68 ногая и 84 ногая PLCC. И вот у них уже идет разделение на логические блоки и напряжение питания на VCCINT и VCCIO.

Ewgeny7
12.10.2014, 12:31
Дело в том что твой кактус не понимает в данном случае какая микруха перед ним.
В проекте я прописал EPM7128SLC84, у нее полный функционал для своего семейства.

Mick
12.10.2014, 12:59
Все вопрос снят. Я их прозвонил тестером и все ноги между собой звонятся. Печалька. :(

---------- Post added at 12:59 ---------- Previous post was at 12:32 ----------

Правда стоит отметить, что я проверял на ATF1504, но они вроде как аналоги EPM7064S

http://s019.radikal.ru/i634/1410/50/9782fbf17679t.jpg (http://radikal.ru/F/s019.radikal.ru/i634/1410/50/9782fbf17679t.jpg)

balu_dark
12.10.2014, 19:47
они не обязательно попиновые аналоги!
они скорее - функциональные но не схемотехнические аналоги.
Вообще - атмеловские чипы везде хаяли в свое время и они не получили такого распространения как альтера - надо погуглить чего у них не так было , но нареканий было много.

ram_scan
12.10.2014, 22:00
Он может быть аналогом и пин в пин. Но тем не менее программироваться совершенно по разному. Канонiчный пример - PAL и GAL. Или менее канонiчные 556РТ1 и 82S101 совпадают пин в пин, но по разному программируются и наша микросхема без внутренних лупбэков, или 155РЕ3 и 82S23, которые полные аналоги и функционально и попиново, но с разным алгоритмом программирования.

balu_dark
12.10.2014, 22:45
Я имел ввиду - что в альтере может и развязаны напряжения по банкам - то есть у каждой стороны свое питание , а вот в Атмеле решили что это не важно и тупо все повесили на общее питание. ( пару лет назад когда игрался с альтерой - в даташите читал что на каждый банк идет свое напряжение и напряжения могут быть разные у каждого банка. Но серию какую смотрел - сейчас не вспомню.)

AlexG
12.10.2014, 23:06
За алтеру не скажу а вот ксайликс умеют разное напряжение на разных банках. по крайней мере спартаны 3 , 6 и новое 7 семейство... (один только минус - они не умеют 5 вольт на вход-выход). отсутствие 5 вольт - это тенденция в плисостроении.

Mick
13.10.2014, 09:48
они не обязательно попиновые аналоги!
они скорее - функциональные но не схемотехнические аналоги.
Вообще - атмеловские чипы везде хаяли в свое время и они не получили такого распространения как альтера - надо погуглить чего у них не так было , но нареканий было много.

Скажем, я сколько игрался с ATF1502 и ATF1504 в корпусах PLCC44 проблем не возникало. На счет распространения, может у нас в России и да, но за бугром похоже пользовались спросом - у китайцев в продаже они до сих пор есть.

---------- Post added at 09:24 ---------- Previous post was at 09:22 ----------


Я имел ввиду - что в альтере может и развязаны напряжения по банкам - то есть у каждой стороны свое питание , а вот в Атмеле решили что это не важно и тупо все повесили на общее питание. ( пару лет назад когда игрался с альтерой - в даташите читал что на каждый банк идет свое напряжение и напряжения могут быть разные у каждого банка. Но серию какую смотрел - сейчас не вспомню.)

Это можно проверить например на EPM7128, такая у меня есть. Это тоже конечно не будет точным сравнением, так как серии разные - 7064 и 7128.

---------- Post added at 09:48 ---------- Previous post was at 09:24 ----------

Вот проверил питание VCCIO EPM7128SLC84
У ней по даташиту VCCIO пины: 13, 26, 38, 53, 66, 78
Так вот 13, 26, 38, 53, 66 звонятся между собой. А вот 78 с ними не звонится.
Интересно, он вообще внутри подключен или как :)

Ewgeny7
13.10.2014, 10:31
У меня есть "лишняя" EPM7128SLC84.
И там 78 действительно не звонится.
Если тебе интересно, я могу попробовать запитать 78 от 3,3В эксперимента ради.
Только можно ли будет результаты принять за допустимое правило?

Mick
13.10.2014, 14:25
У меня есть "лишняя" EPM7128SLC84.
И там 78 действительно не звонится.
Если тебе интересно, я могу попробовать запитать 78 от 3,3В эксперимента ради.
Только можно ли будет результаты принять за допустимое правило?

Мне интересно :) Если такой финт ушами провернется, то EPM7128 явно в фаворе :)
На счет правила, трудно сказать. В идеале надо было бы EPM7064 проверить на пердмет прозвонки. Да и для полной чистоты эксперимента нужна еще и ATF1508 в таком же корпусе.

Ewgeny7
13.10.2014, 14:35
Проверю дома.
Кстати, "Выводы ПЛИС MAX 7000S могут быть настроены как выводы с открытым коллектором.".
Это не решение твоей проблемы?

Mick
13.10.2014, 14:46
Проверю дома.
Кстати, "Выводы ПЛИС MAX 7000S могут быть настроены как выводы с открытым коллектором.".
Это не решение твоей проблемы?

В принципе это и может прокатить. Но как поведет себя этот выход, если его подтянуть резистором к 3,3В и с него будут клоки 14МГц шпарить для SD карты

Ewgeny7
13.10.2014, 15:12
Это уже инженерам виднее...
Но частота не сильно высокая по сравнению с бешеными мегагерцами, которые может выдавать плиса на обычном выходе... Есть ли большая принципиальная разница между внешним резистором и внутренним сопротивлением подтяжки?

---------- Post added at 15:12 ---------- Previous post was at 15:10 ----------

У меня тоже вопрос к знающим - а как на VHDL выходы сконфигурировать для ОК?

Mick
13.10.2014, 15:16
Есть ли большая принципиальная разница между внешним резистором и внутренним сопротивлением подтяжки?

Наверное зависит от того как его изготовили. В микрухах резисторы вроде исполняются на основе диффузионных слоев транзисторной структуры (эмиттерная и базовая области).
А вот внешние резисторы....

Ewgeny7
13.10.2014, 15:23
Не, я имел ввиду не технологию изготовления, а влияние на сигнал...

IanPo
13.10.2014, 22:30
У меня тоже вопрос к знающим - а как на VHDL выходы сконфигурировать для ОК?
Для ОС, во-первых.
1. Явно задать в коде через PORT MAP (см.исходники конвертера ZXKit1 VGA&PAL, там что-то было такое)
2. Неявно задать в коде (выход должен принимать значения только Z и 0 , плюс в Quartusе должна быть включена какая-то настройка, к-я автом-ки делает ОС, если выполняется указанное условие
3. Кажется, можно задать в Assignments

Посмотреть, что скомпилировалось в ОС, можно в отчете.

solegstar
22.01.2015, 14:46
подниму темку, т.к. есть вопрос:
есть схема кеша - http://zxpress.ru/article.php?id=12346


ТМ2 ┌───┐1
_____ 4┌─┬────┐ 3│1 ├──── A14
RESEТ ──────┤R│ │ BLОK ┌─┤ │2
2├─┤ Q├──── │ │ ├──── A15
A7 ──────┤D│ │5 │ └───┘
3├─┤ │ │4┌───┐
┌──┤C│ _│6 └─┤ 1│6 ______
___ │ 1├─┤ Qo────────┐ 5│ ├──── CS_RAМ
МAG ───┼──┤S│ │ └──┤ │
│ └─┴────┘ ЛЛ1 └───┘
│ ┌───┐12 ┌───┐9 ____
│ 11│1 ├───┐8│1 ├──── IОRQ
└───┤ │13 └─┤ │10
│ ├──┐ │ ├──── A2
__ └───┘ │ └───┘
RD ──────────────┘ ┌───┐1
_______ 3│1 ├─── BLОK
CS_RОМ0 ───┤ │2 ______
│ ├─── CS_RОМ
└───┘
хочу её перенести в плисину и получаю примерно такое выровненное по F14 на VHDL :

----------------CACHE------------------------
cache_cs <= '0' when adress(2)='0' and iorq='0' else '1';
process(f14,reset,mag,adress,cache_cs,rd)
begin
if reset='0' then
blok_rom <= '0';
elsif mag='0' then
blok_rom <= '1';
elsif f14'event and f14='1' then
if cache_cs='0' and rd='0' then
blok_rom <= adress(7);
end if;
end if;
end process;
cs_ram <= not blok_rom or pzu;
сигнал pzu это уже смесь А14 OR A15 (используется в бетадиске), сигнал cs_ram выведен наружу и блокирует 0м основное пзу и подключает выходы озу кеша. всё вроде бы ничего, но мне не нравится после компиляции в rtl viewer, что на вход pre тригера приходит не чистый сигнал mag, а суммированный с reset т.е. mag AND reset. reset приходит точно на clr вход тригера и вроде всё должно заработать если у clr приоритет над pre (так ли это?). в железе пока не проверял. может кто подскажет, как завести чистый mag на вход pre триггера с сохранением синхронизации по F14? Спасибо.

shurik-ua
23.01.2015, 21:35
как завести чистый mag на вход pre триггера с сохранением синхронизации по F14?
так вход MAG асинхронный - и у тебя правильно сделано.


у clr приоритет над pre (так ли это?)
В микрухе входы S и R равноценны - это уже в коде VHDL появляется приоритет и он только к лучшему, так как в микрухе подача двух нулей на эти входы считается запрещённой комбинацией.

13joe
10.03.2015, 11:21
Уважаемые гуру !

Подскажите может ep4ce6e22c8n сгореть от 5в питания ?

fifan
10.03.2015, 11:30
может ep4ce6e22c8n сгореть от 5в питания ?
Может, если оно (5в) было подано как основное. Входы/выходы могут держать 5в.

13joe
10.03.2015, 11:43
Спасибо за ответ !

И еще один вопрос - могут ли сгоревшие чипы (flash, eeprom, DAC и т.д.) подключенные к ногам ep4ce6e22c8n так коротить ноги ПЛИС, что ПЛИС не видна ByteBlaster-ом ? Или такая ситуация однозначно говорит о выходе из строя самой ПЛИС ?

13joe
10.03.2015, 11:54
А все таки могут ли сгоревшие чипы (flash, eeprom, DAC и т.д.) подключенные к ногам ep4ce6e22c8n так коротить ноги ПЛИС, что ПЛИС не видна ByteBlaster-ом ? Или такая ситуация однозначно говорит о выходе из строя самой ПЛИС ?

MVV
10.03.2015, 12:03
А все таки могут ли сгоревшие чипы (flash, eeprom, DAC и т.д.) подключенные к ногам ep4ce6e22c8n так коротить ноги ПЛИС, что ПЛИС не видна ByteBlaster-ом ? Или такая ситуация однозначно говорит о выходе из строя самой ПЛИС ?
Не могут. А куда, если не секрет подавали 5В питания? :) Вы сами припаивали чип?

13joe
10.03.2015, 12:14
Питание подавал с программатора на разъем JTAG девборды. Плис припаяна к девборде WXEDA (китайская борда http://www.aliexpress.com/snapshot/6182578469.html?orderId=63345858912705)

MVV
10.03.2015, 12:35
Питание подавал с программатора на разъем JTAG девборды.
Программатор где-то еще используется, т.е. можете его проверить? Плата(ну и лапоть :) при её функционале) я думаю должна была быть сконфигурирована какой-нить демонстрационной фигней. После включения что-то мигает, пищит или показывает на мониторе?

13joe
10.03.2015, 13:08
До подачи 5в с программатора при включении показывала демонстрационную прошивку (пищала, при нажатии на кнопки пищала и изменяла цифровые значения на индикаторе, мигала разными светодиодами и т.д.). Через несколько минут после 5в с программатора запахло горелым в районе SPI - Flash 25-ой серии или EPCS4. При включении теперь загорается только один светодиод.

MVV
10.03.2015, 13:24
Да ерунда это все, если есть паяльная станция и компоненты. Прозвони линии питания 3.3/2.5/1.2B на КЗ и пробой LM1117(возможно потребуется замена сдохшей от такого издевательства и мучений фигни). Замени EPCS4, на любую SPI-Flash с совместимым ID. Включай плату, проверь соответствие напруг питания. Через JTAG напругу не подавай (напруга отдельно я так понял через USB шнурок :)) FPGA в квартусе по любому должна определится. Если нет, то или в прогере чет сдохло или нужна замена FPGA.

13joe
10.03.2015, 13:39
Линии питания уже прозвонил. КЗ нет, все значения напряжения в норме. А если просто выпаять EPCS4 и попробовать в квартусе через ByteBlaster определить ПЛИС ?
Или без EPCS4 совсем или при сгоревшей EPCS4 ПЛИС через ByteBlaster в квартусе определяться не должна (разумеется при поданом питании от USB) ?

MVV
10.03.2015, 13:44
При поданном питании на плату (через USB) и подключенном программаторе (питать плату 5В он не должен) по JTAG FPGA должна определяться даже с выпаянным или дохлым EPSC.

Ewgeny7
10.03.2015, 14:01
Через JTAG может подаваться Vcc I/O вроде как. Даже если там пять вольт, то вероятность сдыхания невелика, трехвольтовики могут какое-то время жить. Есть экземпляр, который уже семь лет живет :)
Если подавалось питание по JTAG и одновременно по основному каналу питания, теоретически может навернуться стаб 3.3 вольта на плате девборды. Стаб для Vcc core должен выдержать повышенное напряжение на входе, но все равно его проверять.
Пины JTAG на самой плисине по практике не боятся сигналов с амплитудой 5в.
Воть... как-то так.
А вообще, подавать питание по JTAG - категорически нафиг.

13joe
10.03.2015, 14:17
А осциллятор (с питанием от 3.3в (возможно тоже сгоревший от 5в)) подключенный к ПЛИС может как-то помешать определению ПЛИС по JTAG ?

Ewgeny7
10.03.2015, 14:21
13joe, нет. Во-первых, осциллятор, EPCS4 и прочее с большой долей вероятности - не пострадало.
Во-вторых - генератор на конфигурирование ПЛИС вообще никак не влияет. Его может вообще не быть.
Подключал штатное питание и проверял напругу на выходах стабов?

---------- Post added at 14:21 ---------- Previous post was at 14:20 ----------

Схема девборды есть в электронном виде?

13joe
10.03.2015, 14:55
Штатное питание подключал. С напругой на выходах стабов все нормально (напруга в пределах нормы).
Схема борды:
51434

Ewgeny7
10.03.2015, 17:46
блджад.... Питание с JTAG-разъема идет не на VCCIO 3.3, а на 2,5в. Хреново...

---------- Post added at 17:46 ---------- Previous post was at 17:37 ----------

2,5 идет прямо на альтеру, как аналоговое питание. Мог быть и кирдык... Эта напруга вроде как используется для PLL и прочей фигни, возможно и для самого JTAG, надо мануал читать.
Еще одна странность в схеме - разъем PS/2 прицеплен к ПЛИСе без согласователей уровней. Конечно, я и сам так делаю, за что меня справедливо пинают грамотные люди :) Но в промышленном изделии...

MVV
10.03.2015, 18:08
13joe, зачем было связываться с WXEDA? К ней же еще куеву кучу расширитей нужно делать. Уже что-то из Altera DE для полноты коллекции брал.

13joe
10.03.2015, 18:44
Из доработок для WXEDA нужно только подцепить раъем SD-Card.
WXED-у брал как самую дешевую и достаточно функциональную борду.
Для полноты коллекции у меня имеются:
Altera DE0 Nano
Altera DE0
Altera DE1
Altera DE2
Altera DE2-70

MVV
10.03.2015, 19:25
Для полноты коллекции у меня имеются:
Altera DE0 Nano
Altera DE0
Altera DE1
Altera DE2
Altera DE2-70
Впечатляет. Вы наверно зав. кафедрой универа. Для полноты все-же не хватает DE1-SoC (http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=836). Так-как именно на неё, перенесли самую лучшую на сегодняшней день конфигурацию - TS-Conf (http://forum.tslabs.info/viewtopic.php?f=31&t=480) :)

Anubis_OD
10.03.2015, 21:45
При таком богатом опыте владения девбордами - вас искренне расстраивает сгоревшая пзушка. посмотреть в лупу - сгоревшая "с дымом" всегда оставляет прогары в корпусе. выпаять. а дальше по ситуации.

13joe
11.03.2015, 09:07
Как ни странно, но даже под лупой никаких следов горения не видно, хотя запах гари именно в районе нахождения EPCS4 и соседних с ней чипов, попробую её выпаять и попробовать задетектить ПЛИС по JTAG-у, и я уже решил где буду покупать новую ПЛИС.

stealth_w
11.03.2015, 10:00
Подскажите может ep4ce6e22c8n сгореть от 5в питания ?

Если мне не изменяет память то у нее уже 3.3в с ограничениями. Так что если мощность приложили большую то скорее всего труп :(

Еще один нюанс у циклонов - если загрузчик что то пытается грузить, но у него это не получается - например поток сбойный - то плисина по JTAG может быть не видна. Еще у меня один раз SignalTap переклинило и JTAG отключился :)

Mick
14.03.2015, 21:36
Народ, наверняка кто то юзал в ПЛИС или CPLD интерфейс I2C. Влезет оно в EPM7064 или нет?

doorsfan
23.03.2015, 13:59
Прошу помощи (http://zx-pk.ru/showpost.php?p=790731&postcount=651) у опытных.
Акцентирую внимание, что ПЛИСина впаяна в работающую плату

Mick
23.03.2015, 14:15
Прошу помощи (http://zx-pk.ru/showpost.php?p=790731&postcount=651) у опытных.
Акцентирую внимание, что ПЛИСина впаяна в работающую плату

Собственно, palsw тебе правильно написал. В ноутбуках LPT порт не полноценный. У меня тоже на Самсунге байтбластер не работает ни под Максом, ни под Кактусом.
Возможно тебя спасет USBбластер, если не сможешь найти комп с подходящим LPT.

Я для таких целей собрал себе миникомп (материнка mITX) c реальными COM и LPT портами. Вопросы сразу все пропали.

doorsfan
25.03.2015, 15:05
Вроде, прошил, пассивным шнурком ББ2, подключенным к обычному компу. Потребовалось в прошивальщике поставить галочку security.

Anubis_OD
25.03.2015, 15:34
Наткнулся тут на просторах интернета на платку miniSpartan6+ (http://www.scarabhardware.com/product/minispartan6-with-spartan-6-lx-25/).
Практически наш ReVerSE-U16.

Anubis_OD
25.03.2015, 16:14
бери на ней и будешь практиковаться.
Не. У меня уже есть реверси и аеон. на них и буду практиковаться.

perestoronin
29.11.2015, 10:50
Архив с учебниками на русском языке
http://ebook.pldworld.com/_eBook/FPGA_HDL_Books/Ru/

s_kosorev
30.11.2015, 15:44
Там дело в парадигме, если есть опыт программирования, то надо именно сломать моск, чтобы понять как С- или паскалеподобный синтаксис описывает логические конструкции
Я писал простой код на Verilog и смотрел во что он превращается схемно, когда прочувствовал все синтаксические элементы можно сказать язык выучил, оно впринципе и офф. документации описывается во что конструкции превращаются, но пощупать как то лучше усвоилось.

ram_scan
01.12.2015, 16:01
Друзья, а кто программировал PAL16L8 (и вообще палки или наши 1556ХЛ/ХП) микросхемы ? В том плане что не просто в программатор толкал а прошивки составлял ?

Документации внятной очень немного. По таблице-разблюдовке стерховского программатора вобщем-то становится все понятно, она наглядная. Непонятны два вопроса.

1) согласно документации PAL-ка с инвертирующими выходами (при этом внутренний фидбэк есть и прямой и инверсный). Какой результат логической функции у нее получается на физическом выдохе, особенно если в шитодате на нее написано "positive logic" ? И как люди выкручиваются если нужен неинверсный выход ?

2) что такое линия OE. Согласно структурной схемы микросхемы там можно набрать комбинацию входных сигналов для разрешения прохождения его на выход (причем на некоторых обозначениях существует нога отмеченная как /OE но судя по структурной схеме и таблице программирование /OE можно любой комбинацией набрать). Штука энта сделана видимо чтобы на лету "вход выход" в зависимости от комбинации сигналов менять у нее, но мне не вполне понятно что в нее шить если мне таких чудес не надо. Нашел прошивку 1556ХЛ8 от профи, там линейка эта не запрограммирована вовсе, хотя казалось бы входы-выходы надо как-то обозначить как выходы. Другиъх прошивок найти не смог, а то что смог - программатор давится.

Можно конечно поставить натурный эксперимент, но микросхемы жалко. Даже не потому-что дорогие, а потому-что хрен достанешь.

Поэтому если кто в курсе заясните плиз. Или примеров готовых прошивок подкиньте, чтобы я умом своим сам допетрить мог, жалко микросхемы портить.

Да, предложение "не конопать мозги, возьми GAL-ку" я рассмотрел. Там во первых eqn2jed справляется, во вторых руками ее не распишешь да и не надо. У меня есть практическая задача разобраться именно с PAL/ХЛ/ХП.

Vslav
01.12.2015, 19:04
Давно все было, мало что помню, сейчас смотрел вот эту документацию (http://www.ti.com/lit/ds/symlink/pal16l8am.pdf)



И как люди выкручиваются если нужен неинверсный выход ?

Дык, там же на входе буфера функция в нормальной конъюктивной форме. Можно любую задать. Просто формируешь инверсную и все. На примере функции двух переменных, пусть нужен простой x OR y. Переписываем как ~x AND ~y добавляем выходную инверсию и получаем тождественный нужному результат.



2) что такое линия OE. Согласно структурной схемы микросхемы там можно набрать комбинацию входных сигналов для разрешения прохождения его на выход (причем на некоторых обозначениях существует нога отмеченная как /OE

Как я понял из документации, отдельная нога /OE для разрешения версий PAL16R, которые с триггерами, там их выход разрешается одновременно этой ногой. А для PAL16L каждый выход может быть разрешен отдельным произведением, видимо, если ничего не прошить - то всегда будет разрешен.

alvis
01.12.2015, 19:18
Нашел прошивку 1556ХЛ8 от профи
Можно подробнее? Или ты с АТМ перепутал?

ram_scan
02.12.2015, 06:31
Можно подробнее? Или ты с АТМ перепутал?

Может и перепутал, помню что от навороченого спектрума какого-то. Мне важно было найти прошивку как таковую, чтобы посмотреть внутрь нее в программаторе, а от чего она я сильно внимания не обращал.

Totem
02.12.2015, 13:17
стр 34 :)
http://www.vzpp-s.ru/production/catalog.pdf

solegstar
22.12.2015, 16:37
Итак, имеется некая девборда с ПЛИС epm3128atc144-10n и atmega32. кварц на девборде подключен к XTAL1 и XTAL2 атмеги и в плис, по задумке автора, заводилась частота синхронизации с XTAL2 вывода меги. сейчас ситуация такая, что плис не видит эту частоту из-за маленкого размаха сигнала.
55307
посмотрел на XTAL1 - там размах чуть больше, но не на много, всего на 0,2В.
55306
Народ, имеется вопрос: каким образом можно эту частоту синхронизации завести в плис с нормальным размахом сигнала? сейчас идея сделать только высокоскоростной компаратор, но не знаю, прокатит или нет, всё таки частота большая. преобразователи уровня еще существуют в виде TXS0102, но боюсь не дотянет мой уровень до рабочего уровня микросхемы. еще вариант городить отдельно генератор и заводить его выход на плис и мегу, но хотелось поменьше соплей городить, вот кто, что посоветует?

PS: напряжение питания чипов 3.3В, частота 7.37МГц.

Mick
22.12.2015, 16:44
Ставишь либо кварцевый генератор, либо по старинке на инверторах и тактируешь от него обе микрухи.

solegstar
22.12.2015, 17:07
вобщем чукча "не читатель мануалов" :), бит CKOPT в фьюзах меги решил проблему. теперь размах правильный на XTAL2 - 3.3В.

Totem
10.01.2016, 18:58
http://www.xess.com/shop/product/xula2-lx25/

Ewgeny7
10.01.2016, 19:36
http://www.xess.com/shop/product/xula2-lx25/
Название понравилось, ласковое такое - Хуля..... :)

kox
10.01.2016, 22:48
Сейчас Viktor2313 набежит сюда, и извините за выражение вздрочнёт на эту плату:)
А по факту- даже если отбросить то, что я не пользуюсь Xilinx, все равно у этой платы мало пинов, имею DE0-Nano, так она не критично проигрывает по размерам, но у нее 88 пинов под GPIO.

Ewgeny7
10.01.2016, 23:39
Сейчас Viktor2313 набежит сюда, и извините за выражение вздрочнёт на эту плату
Уже все сделал, спасибку видишь? :)

Totem
10.01.2016, 23:45
Сейчас Viktor2313 набежит сюда, и извините за выражение вздрочнёт на эту плату:)
А по факту- даже если отбросить то, что я не пользуюсь Xilinx, все равно у этой платы мало пинов, имею DE0-Nano, так она не критично проигрывает по размерам, но у нее 88 пинов под GPIO.
"не пином единым"
http://24.87.49.120/z80computer/z80computer.html
У не фром фактор заточен под беспаечные макетки.

s_kosorev
11.01.2016, 00:10
думаю более понятно станет:
Viktor2312 научился открывать вкладки в IE и пользоваться панелью избранное, или что должно быть понятно?

Totem
15.02.2016, 02:31
Viktor2312
http://www.devic.us/hacks/z80-the-heart/
познали дзен?
Рекомендую прогуляться, по сайту.

Ewgeny7
19.02.2016, 12:27
Если процессов несколько, то имена внутри каждого из процессов переменных, сигналов и т. д. могут и совпадать
Нет, сигналы видны всем процессам. Это не локальные переменные в функциях Си.
Поэтому имена должны быть уникальны. Иначе получим "multiply constant driver..." или что-то в этом роде (попытка управления сигналом из нескольких процессов).

Ewgeny7
19.02.2016, 14:52
Я локальными переменными пользовался только однажды, чтобы собрать гирлянду сигналов в один вектор, который уже "щупала" функция выбора CASE.
Стараюсь обходиться без переменных.

s_kosorev
20.02.2016, 00:05
Стараюсь обходиться без переменных.
ну и зря, в verilog гораздо удобнее с ними

always `pe_clk()
begin
reg [15:0] tmp =
......
end

always `pe_clk(`pe_res)
begin
reg [15:0] tmp =
......
end

много раз tmp и не надо выдумывать tmp1, tmp2 итд, да и вообще сигналы называть можно как нужно

- - - Добавлено - - -


я. И для проверки переполнения. Хотя вот не знаю будет ли нормально она восприниматься эта 64-разрядная переменная или компилятор опять меня пошлёт
битовому вектору глубоко все равно размер

s_kosorev
20.02.2016, 00:13
только это вектор шириной 65 бит а не 64

Ewgeny7
20.02.2016, 09:19
Значит тогда буду пробовать применить внутри procedure, вот такую запись:
Нет, переменные описываются по другому маленько:



process(СLK)
variable tmp: std_logic_vector(63 downto 0);
begin
tmp := main_vector(62 downto 0) & tst;
................................
...............................
end process;


- - - Добавлено - - -

Обрати внимание на знак присваивания значения, он вот такой - ":=", а не привычный "<=".

- - - Добавлено - - -


ну и зря, в verilog гораздо удобнее с ними
Зря, не зря - это всё дело индивидуальной привычки, наверное.
Просто я практически нигде не видел использование переменных в проектах, на которых я учился. Вот и сам такой же стал :)
А когда оно понадобилось (Кактус ругался, что не понимает, что я от него хочу в одной конструкции), то пришлось изучить еще и этот момент.

.jackson
03.03.2016, 14:25
Пытаюсь переделать проект из туториала Ewgeny7 с VGA на RGBS. Если уменьшить частоту, убрать лишний бит у vcnt, то картинка через пал кодер на cxa1645 отличная, только чёрно-белая. Если в софте тв-тюнера поставить автоопределение стандарта, то определяется NTSC 4.43 и цвет появляется, но не совсем правильный.
При этом кусок кода из speccy2007 показывает отличную цветную картинку.
В чем может быть проблема?

Отправлено с моего LG-D802 через Tapatalk

Ewgeny7
03.03.2016, 14:53
Счетчик строк посмотри, должно быть в идеале 0..311.
Также, на работу палкодера сильно влияет синхросигналы. Т.е. их положение во фрейме, длина импульсов. Этот момент может "глушить" цвета.

solegstar
03.03.2016, 16:36
я тут тоже развлекаюсь с u9 и спеком из Туториала Жени. :) сделал 60гц, т.к. монитор говорил, что сигнал не подходит 50гц. расширил до 128кб и ессно добавил прошивку васика 128. добрался до тырдоса и меня ожидал облом - памяти в циклоне 46кб, а не 51кб, как где-то писалось. ессно прошивка тырдос не влезла. придется городить как в последней версии спека от Влада - с лоадером из serial flash и т.д... пришло время наладить m25p40, т.к. квартус ругается при заливке .jic файла на 57% failed. что-то с последовательным интерфейсом, память рабочая 100%, т.к. до этого на другом циклоне всё писалось, но это другая история.

s_kosorev
03.03.2016, 17:25
памяти в циклоне 46кб, а не 51кб, как где-то писалось
рамблоки 9бит, емкость указывается в килобитах, можно при большом желании всю емкость использовать, к примеру использовать 72бит строки и адрес делить на 9

solegstar
03.03.2016, 17:34
s_kosorev, да, я не уточнил про килобиты, 46кб это уже пересчитаные на 8 бит ячейки. вобщем буду копать дальше. циклон у меня ep3c5, поэтому сильно не разгонишься. :)

.jackson
03.03.2016, 19:29
Счетчик строк посмотри, должно быть в идеале 0..311.
Также, на работу палкодера сильно влияет синхросигналы. Т.е. их положение во фрейме, длина импульсов. Этот момент может "глушить" цвета.
Со счетчиками все ок.
Окончание кадрового СИ должно находиться между строковыми СИ (линк на описание стандарта (http://www.kolumbus.fi/pami1/video/pal_ntsc.html)).
Т.е. в обработчике vsync вместо:

if (vcnt = 240) then
vsync <= '0';
elsif (vcnt = 243) then
vsync <= '1';
end if;
нужно писать:

if (vcnt = 240) then
vsync <= '0';
elsif (vcnt = 243 and hcnt = 128) then
vsync <= '1';
end if;

s_kosorev
03.03.2016, 22:03
Окончание кадрового СИ должно находиться между строковыми СИ (линк на описание стандарта).
Т.е. в обработчике vsync вместо:
там и строк 212.5 или 312.5, т.е. чрезстрочная развертка, тут по всей видимости 312 ровно, так что положение СИ особой роли не играет, уже неправильный сигнал

Ewgeny7
04.03.2016, 08:57
там и строк 212.5 или 312.5, т.е. чрезстрочная развертка, тут по всей видимости 312 ровно, так что положение СИ особой роли не играет, уже неправильный сигнал
Неправильный, да. Только именно этот факт никак не влияет на работу ПАЛкодера. У нас практически на всех клонах количество строк стабильно 312 или 320. Подключи Ленинград-1, там вообще ахтунг-фрейм, будет цветным.
У Пентагонов с их 320 строками были проблемы с ПАЛкодером (пруф не дам, давно слышал про это), а версии с 312 нормально раскрашиваются.

.jackson
04.03.2016, 13:14
Спорить не буду, но факт остаётся фактом, пока не сдвинул задний фронт кадрового си относительно строчного, цвета не было. Передний фронт на наличие цвета не влиял. Могу диаграммы лог анализатора скинуть для наглядности.

Отправлено с моего LG-D802 через Tapatalk

s_kosorev
04.03.2016, 14:00
Спорить не буду, но факт остаётся фактом, пока не сдвинул задний фронт кадрового си относительно строчного, цвета не было. Передний фронт на наличие цвета не влиял. Могу диаграммы лог анализатора скинуть для наглядности.
это все предпочтения конкретного тв-тюнера, на другом тюнере могут быть другие нюансы, у меня монитор к примеру 49 гц, картинка раз в секунду подергивается, на 48гц иди 50гц все ок, не попадалось сообщений что бы у кого то было аналогичное поведение

.jackson
04.03.2016, 15:16
Ещё нужна помощь с прозрачным доступом к памяти. Схема как в спекки2007 128к + тр-дос, только вместо видео ОЗУ стоит одна микросхема на 128к, т.е. процессор подключается к озу через 3 шт 74hc245 трансивера. Если просто взять исходники и изменить все вызовы ОЗУ в соответствии со схемой, то запись в ОЗУ проходит, но при чтении, видеоконтроллер забирает ОЗУ себе как раз в момент, когда процессор читает данные с шины и читается 0xFF. Можно ли что-то сделать, или нужно схему переделывать и добавлять буфер на чтение или ещё что-то?
Память UT611024JC-15, главный клок - 14 МГц.

Отправлено с моего LG-D802 через Tapatalk

Mister
04.03.2016, 23:24
Ещё нужна помощь с прозрачным доступом к памяти. Схема как в спекки2007 128к + тр-дос, только вместо видео ОЗУ стоит одна микросхема на 128к, т.е. процессор подключается к озу через 3 шт 74hc245 трансивера. Если просто взять исходники и изменить все вызовы ОЗУ в соответствии со схемой, то запись в ОЗУ проходит, но при чтении, видеоконтроллер забирает ОЗУ себе как раз в момент, когда процессор читает данные с шины и читается 0xFF. Можно ли что-то сделать, или нужно схему переделывать и добавлять буфер на чтение или ещё что-то?
Память UT611024JC-15, главный клок - 14 МГц.

Отправлено с моего LG-D802 через Tapatalk

Тоже интересует вопрос, только память и процессор подключены к CPLD без внешних буферов.

Totem
11.03.2016, 08:26
что то тут не так

http://i.ebayimg.com/images/g/T~oAAOSwJcZWg7cU/s-l1600.jpg

Ewgeny7
11.03.2016, 08:44
Totem, действительно, терзают какие-то смутные сомнения и догадки... :)

Anubis_OD
11.03.2016, 13:44
что то тут не так

Интересно..только одну палочку дорисовали или целиком перемаркировывали?

Totem
11.03.2016, 17:12
Я брал у этого продавца деталки, нареканий не было, возможно он сам не в курсе, ради прикола я ему отпишу и закажу:) в том, что перемаркировщик весьма туп, сомнений не вызывает.

- - - Добавлено - - -

кстати , кто в курсе у Хилых, есть девайс 120 ног io, 5v tolerant . 1000-2000 Les, из стареньких , за вменяемые деньги?
очень не хочется использовать, LVC ALVC.
ног впритык хватает на 208 ногих циклонах. можно использовать SDRAM/DRAM, но очень не хочется.
2 sram 64K,1 512К, -все на отдельных шинах. 8bit VGA + шина процессора.

.jackson
18.03.2016, 21:07
Ещё нужна помощь с прозрачным доступом к памяти. Схема как в спекки2007 128к + тр-дос, только вместо видео ОЗУ стоит одна микросхема на 128к, т.е. процессор подключается к озу через 3 шт 74hc245 трансивера. Если просто взять исходники и изменить все вызовы ОЗУ в соответствии со схемой, то запись в ОЗУ проходит, но при чтении, видеоконтроллер забирает ОЗУ себе как раз в момент, когда процессор читает данные с шины и читается 0xFF. Можно ли что-то сделать, или нужно схему переделывать и добавлять буфер на чтение или ещё что-то?
Память UT611024JC-15, главный клок - 14 МГц.Добавил буфер 74HC573 на чтение по схеме Ленинграда и немного переделал исходники альтеры. Все работает. Если кому-то интересно, могу выложить исходники в соответствующей теме.