Важная информация

User Tag List

Показано с 1 по 10 из 1297

Тема: Reverse. Конфигурации

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Master
    Регистрация
    04.12.2008
    Адрес
    г. Черкассы, Украина
    Сообщений
    957
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Но защелки и в самом деле могут работать непредсказуемо, сталкивался с этим.
    Вот, не совсем как хотелось (отличия с первым примером явно видны). Получили мастер-помощник а, хотели к примеру просто защелку по (nCS = '0') AND (nIORIN = '0') с синхронным триггером...

    Код:
    LIBRARY IEEE;
    USE IEEE.std_logic_1164.ALL;
    USE IEEE.std_logic_unsigned.ALL;
    --**********************************************************************************************
    -- Input/Output Declarations
    --**********************************************************************************************
    ENTITY ReadSync IS
    	PORT (
    		RESET			: IN	std_logic;
    		CLK			: IN	std_logic;
    		nIORIN		: IN	std_logic;
    		nCS			: IN	std_logic;
    		ReadEnable	: OUT	std_logic
    	);
    END ReadSync;
    --**********************************************************************************************
    -- Architecture Body
    --**********************************************************************************************
    ARCHITECTURE rtl OF ReadSync IS
    	SIGNAL SampledRead	: std_logic;
    	SIGNAL SyncRead1		: std_logic;
    	SIGNAL SyncRead2		: std_logic;
    BEGIN
    	--
    	-- ReadSampleProc:	
    	--
    	ReadSampleProc: PROCESS ( nCS, nIORIN, CLK, RESET, SampledRead )
    		VARIABLE next_SampledRead : std_logic;
    	BEGIN
    		IF ( RESET = '1' ) THEN
    			next_SampledRead := '1';
    		ELSIF ( (nCS = '0') AND (nIORIN = '0') ) THEN
    			next_SampledRead := '0';
    		ELSE
    			next_SampledRead := '1';
    		END IF;
    		IF ( RESET = '1' ) THEN
    			SampledRead <= '1';
    		ELSIF ( CLK'EVENT AND (CLK = '1') ) THEN
    			SampledRead <= next_SampledRead;
    		END IF;
    	END PROCESS ReadSampleProc;
    
    	--
    	-- ReadSyncProc:	The mode register synchronizer. Synchronizes
    	--						changes in mode register data to the internal
    	--						timing domain i.e. the falling edge of CLK.
    	--
    	ReadSyncProc : PROCESS ( CLK, RESET, SampledRead, SyncRead1, SyncRead2 )
    		VARIABLE next_SyncRead1	: std_logic;	
    		VARIABLE next_SyncRead2	: std_logic;
    
    	BEGIN
    		next_SyncRead1  := SampledRead;	
    		next_SyncRead2  := SyncRead1;
    
    		IF	( (SyncRead1 = '1') AND (SyncRead2 = '0') ) THEN
    			ReadEnable <= '1'; 
    		ELSE
    			ReadEnable <= '0'; 
    		END IF;
    
    		IF ( RESET = '1' ) THEN         -- Asynchronous clear
    			SyncRead1	<= '1';
    			SyncRead2	<= '1';
        	ELSIF ( CLK'EVENT AND (CLK = '0') ) THEN
    			SyncRead1	<= next_SyncRead1;
    			SyncRead2	<= next_SyncRead2;
    		END IF;
    
    	END PROCESS ReadSyncProc;
    
    END rtl;
    Последний раз редактировалось vlad; 10.03.2011 в 09:22.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. ReVerSE - открытый проект ZX Spectrum совместимого компьютера
    от vlad в разделе Клоны на ПЛИС, МК и БМК
    Ответов: 462
    Последнее: 14.12.2020, 11:01
  2. Изготовление плат и продажа Reverse
    от vlad в разделе Новодел
    Ответов: 124
    Последнее: 28.06.2012, 10:46

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •