реклама на сайте
подробности

 
 
> Ассинхронная логика, Можно ли использовать CPLD без клока?
Serega_YSV
сообщение Jul 4 2006, 05:41
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 30-04-06
Пользователь №: 16 628



Имеется кучка логических микросхем на плате. Работают как дешифратор. Как заменить их на CPLD XC9500XL если нет клока. Возможна ли работа микросхемы как комбинационной схемы без тригеров в асинхронном режиме?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
cornflyer
сообщение Jul 14 2006, 12:56
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 166
Регистрация: 11-07-06
Из: Dubna
Пользователь №: 18 729



да. я уже так делал. просто реализуешь логическую функцию на асинхронных триггерах
вот типичный код проекта для XC9572XL (посредник между DSP и платой сбора данных):
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity linux is
port(
LD_DAC : in STD_LOGIC; -- load strobe for DAC
CS_DAC : in STD_LOGIC; -- chip select for LLD and ChW DAC's (Channel width DAC)
RDHB : in STD_LOGIC; -- RDHB' enable signal ('0' - active low level )
RDLB : in STD_LOGIC; -- RDLB' enable signal
REQ : out STD_LOGIC; -- data ready-signal for DSP
DAO : out STD_LOGIC_VECTOR(7 downto 0); -- data for DSP
DTIME : out STD_LOGIC; -- inquiry about dead time
SLD0 : out STD_LOGIC; -- strobe for LLD (low level discriminator)
SLD2 : out STD_LOGIC; -- strobe for ChW (Channel width DAC)
IRQ : in STD_LOGIC; -- data ready-signal from mezzanine:'
IACK : out STD_LOGIC; -- acknowledge from mediator-FPGA clears IRQ:'1'
DIO : in STD_LOGIC_VECTOR(13 downto 0);-- data from mezzanine
IORD : inout STD_LOGIC; -- '0' to output data from Mux to Count(out_port)
DT : in STD_LOGIC;
ConvEn: out STD_LOGIC;
EnaRST : out STD_LOGIC -- OUTPUT DRIVER STARTING VALUE is '1'
);
end linux;
architecture Behavioral of linux is
signal mux:STD_LOGIC_VECTOR(7 downto 0);
signal input:STD_LOGIC:='1';
begin
process(RDHB,DT)
begin
if DT='1' then
IACK<='0';
elsif RDHB'event and RDHB='1' then
IACK<='1';
end if;
end process;
ConvEn<='1';
------------------------------------------------
SLD0<=LD_DAC when CS_DAC='1' else '1';
SLD2<=LD_DAC when CS_DAC='0' else '1';
------------------------------------------------
process(LD_DAC,input)
begin
if (LD_DAC'event and LD_DAC='0') then
EnaRST <= input;
end if;
end process;
------------------------------------------------
DTIME<=DT;
------------------------------------------------
IORD<=(RDLB and RDHB);
REQ<=IRQ;
DAO<=mux when IORD='0' else "ZZZZZZZZ";
mux(0)<=(('0' and (not RDLB)) or (DIO(6) and RDLB));
mux(1)<=(('0' and (not RDLB)) or (DIO(7) and RDLB));
mux(2)<=((DIO(0) and (not RDLB)) or (DIO(8) and RDLB));
mux(3)<=((DIO(1) and (not RDLB)) or (DIO(9) and RDLB));
mux(4)<=((DIO(2) and (not RDLB)) or (DIO(10) and RDLB));
mux(5)<=((DIO(3) and (not RDLB)) or (DIO(11) and RDLB));
mux(6)<=((DIO(4) and (not RDLB)) or (DIO(12) and RDLB));
mux(7)<=((DIO(5) and (not RDLB)) or (DIO(13) and RDLB));
------------------------------------------------
end Behavioral;

Цитата(cornflyer @ Jul 14 2006, 16:53) *
да. я уже так делал. просто реализуешь логическую функцию на асинхронных триггерах
вот типичный код проекта для XC9572XL (посредник между DSP и платой сбора данных):
Тут все порты - это внешние ноги PLD

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity linux is
port(
LD_DAC : in STD_LOGIC; -- load strobe for DAC
CS_DAC : in STD_LOGIC; -- chip select for LLD and ChW DAC's (Channel width DAC)
RDHB : in STD_LOGIC; -- RDHB' enable signal ('0' - active low level )
RDLB : in STD_LOGIC; -- RDLB' enable signal
REQ : out STD_LOGIC; -- data ready-signal for DSP
DAO : out STD_LOGIC_VECTOR(7 downto 0); -- data for DSP
DTIME : out STD_LOGIC; -- inquiry about dead time
SLD0 : out STD_LOGIC; -- strobe for LLD (low level discriminator)
SLD2 : out STD_LOGIC; -- strobe for ChW (Channel width DAC)
IRQ : in STD_LOGIC; -- data ready-signal from mezzanine:'
IACK : out STD_LOGIC; -- acknowledge from mediator-FPGA clears IRQ:'1'
DIO : in STD_LOGIC_VECTOR(13 downto 0);-- data from mezzanine
IORD : inout STD_LOGIC; -- '0' to output data from Mux to Count(out_port)
DT : in STD_LOGIC;
ConvEn: out STD_LOGIC;
EnaRST : out STD_LOGIC -- OUTPUT DRIVER STARTING VALUE is '1'
);
end linux;
architecture Behavioral of linux is
signal mux:STD_LOGIC_VECTOR(7 downto 0);
signal input:STD_LOGIC:='1';
begin
process(RDHB,DT)
begin
if DT='1' then
IACK<='0';
elsif RDHB'event and RDHB='1' then
IACK<='1';
end if;
end process;
ConvEn<='1';
------------------------------------------------
SLD0<=LD_DAC when CS_DAC='1' else '1';
SLD2<=LD_DAC when CS_DAC='0' else '1';
------------------------------------------------
process(LD_DAC,input)
begin
if (LD_DAC'event and LD_DAC='0') then
EnaRST <= input;
end if;
end process;
------------------------------------------------
DTIME<=DT;
------------------------------------------------
IORD<=(RDLB and RDHB);
REQ<=IRQ;
DAO<=mux when IORD='0' else "ZZZZZZZZ";
mux(0)<=(('0' and (not RDLB)) or (DIO(6) and RDLB));
mux(1)<=(('0' and (not RDLB)) or (DIO(7) and RDLB));
mux(2)<=((DIO(0) and (not RDLB)) or (DIO(8) and RDLB));
mux(3)<=((DIO(1) and (not RDLB)) or (DIO(9) and RDLB));
mux(4)<=((DIO(2) and (not RDLB)) or (DIO(10) and RDLB));
mux(5)<=((DIO(3) and (not RDLB)) or (DIO(11) and RDLB));
mux(6)<=((DIO(4) and (not RDLB)) or (DIO(12) and RDLB));
mux(7)<=((DIO(5) and (not RDLB)) or (DIO(13) and RDLB));
------------------------------------------------
end Behavioral;
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Serega_YSV   Ассинхронная логика   Jul 4 2006, 05:41
- - Волощенко   Все можно, т.к. CPLD заменяют схемы, как с внутрен...   Jul 4 2006, 06:04
- - Serega_YSV   Интересует вопрос такого плана: При использовании ...   Jul 4 2006, 06:12
|- - dmivs   Но ваша схема на "рассыпухе" работает-же...   Jul 4 2006, 06:40
- - Serega_YSV   Вывод: 1. Хотим получить стабильно работающую сист...   Jul 4 2006, 07:05
|- - makc   Цитата(Serega_YSV @ Jul 4 2006, 11:05) Вы...   Jul 4 2006, 07:34
- - sazh   Да какая разница, синхронная схема или асинхронная...   Jul 4 2006, 07:43
- - Димыч   Ну да, всё по полочкам хорошо разложили Действите...   Jul 4 2006, 07:44
- - almay   2. Если старая плата на логических элементах (не, ...   Jul 4 2006, 09:23
|- - Serega_YSV   Цитата(almay @ Jul 4 2006, 12:23) C меньш...   Jul 5 2006, 12:37
- - maior   Для простых проектов можно, а иногда и нужно испол...   Jul 5 2006, 19:29
|- - javalenok   CPLD любит асинхронность больше FPGA? Тулзы точно ...   Jul 10 2006, 11:46
- - dmivs   Цитата(javalenok @ Jul 10 2006, 14:46) CP...   Jul 10 2006, 12:03
|- - javalenok   Цитата(dmivs @ Jul 10 2006, 15:03) Если-ж...   Jul 10 2006, 12:52
- - maior   ASIC это понятие растяжимое. Большинство успешных ...   Jul 10 2006, 16:27
- - Harbour   есть даже ресурс в сети посвященный переводу синхр...   Jul 14 2006, 14:37


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 16:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01275 секунд с 7
ELECTRONIX ©2004-2016