Перейти к содержанию
    

ПЛИС 5576ХС1Т применение...

На всех альтеровских ПЛИС в момент конфигурирования все выводы в третьем состоянии со слабой подтяжкой (20-50кОм) к VCCIO.

Возможно, что в 5576ХС эта подтяжка не реализована, поэтому приведены требования на внешние резисторы.

Попробуйте померить напряжение на каком-либо входе у не сконфигурированной ПЛИС и сразу станет ясно нужна внешняя подтяжка или нет.

Понятно, улучшили называется...

Так подковали заморскую блоху, что она прыгать перестала...

:(

Спасибо, скорее всего придётся резисторы добавлять. Как это ни прискорбно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пришла мне наконец отладочная плата. Резисторов нет. В руководстве, приложенном к плате, сказано в обязательном порядке задать Unused pins как Tri-stated. В этом же руководстве в картинках разрисовано как программировать. Файл .pof заливать непосредственно в 5576РС1У (которая установлена на плате) без всяких конвертаций. 

Я, тем не менее, успел ввести в схему 43 резистора. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 06.05.2017 в 17:45, oleg74ls сказал:

1. Обозначение правильное - 5576ХС1Т АЕЯР.431260.478 ТУ (с буквами ТУ в конце!)

2. Вот ссылка на ТО и инструкцию по программированию (два разных документа в одном файле) - http://my-files.ru/avc83h. В инструкции есть требуемая таблица.

3. Про 5576ХС8Т ничего не знаю. Совсем не обязательно, что фикция. Нужно всю информацию официально запрашивать у разработчика - КТЦ Электроника.

Можете выложить еще раз?

При переходе по ссылке появляется сообщение "Истек срок хранения файла", а эту информацию больше нигде не могу найти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 10.01.2019 в 17:04, Alex90 сказал:

Можете выложить еще раз?

При переходе по ссылке появляется сообщение "Истек срок хранения файла", а эту информацию больше нигде не могу найти.

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

Целым файлом выложить не получилось, форум чудит, поэтому разбил на тома.

5576ХС1Т(Д4).7z.001

5576ХС1Т(Д4).7z.002

5576ХС1Т(Д4).7z.003

5576ХС1Т(Д4).7z.004

5576ХС1Т(Д4).7z.005

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет ли у кого работающего примера двухпортовой памяти в XC1? Не хочет никак, только на триггерах, а не на встроенном EAB. Не знаю что и делать. И мегавизард в квартусе говорит что используется один блок - ан нет.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте, коллеги!

Может осеннее настроение натолкнуло на такую мысль, но всё же)

У всех у нас есть некий багаж знаний, которые мы накопили или из чужого опыта, либо из своего собственного. Это знание и/или понимание неких "фишичек", ньюансиков, мелких деталек. И это именно то знание, которое отличает новичка от гуру своего дела.

Теперь конкретно, как для новичка, на примере ХС1: какие есть рекомендации, особенности по использованию специализированных выводов и выводов со спец.функциями?

Какие привелегии имеют выделенные входы INPUTx над остальными I/O? Как их лучше использовать (reset, enable всякие, тактовые)? И почему?

Или сбросом by-design является опциональная ф-ция I/O152 DEV_CLRn?  Триггеры сбрасывает, а блоки памяти? И в ногах тоже? И direction-триггеры тоже?

То же касательно I/O153 DEV_OE. Приоритет, наверное, высший. Но почему это не доп.ф-ция одного из INPUT'ов (было бы логичнее, наверно)?  Чем выделенная доп.ф-ция лучше, чем тот же функционал, заложенный в прошивку?

Такие вот детали) Спасибо!

ПС: Я думаю концептуально такие фишки есть не только в этом семействе ПЛИС и не только у этого производителя ПЛИС (Альтеру имею в виду, но у воронежцев могут быть свои скелеты в шкафу))).

UPD: как эти спец. возможности учитываются при разработке (т.е. галочку поставить это одно, а как тот же DEV_CLRn проходит в триггры?) и описываются в HDL? =)

Изменено пользователем prostoRoman

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, prostoRoman сказал:

UPD: как эти спец. возможности учитываются при разработке (т.е. галочку поставить это одно, а как тот же DEV_CLRn проходит в триггры?) и описываются в HDL? =)

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

Ну и учитывается это соответственно:

sync: process(sys_clk, dev_clrn)
      begin
        if(dev_clrn = '0') then
          state <= s0;
        elsif(sys_clk'event and sys_clk = '1') then
          state <= next_state;
          .......
        end if;
      end process sync;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, StewartLittle said:

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

Ну и учитывается это соответственно:


sync: process(sys_clk, dev_clrn)
      begin
        if(dev_clrn = '0') then
          state <= s0;
        elsif(sys_clk'event and sys_clk = '1') then
          state <= next_state;
          .......
        end if;
      end process sync;

Так он жёстко подаётся на сброс (и триггер сбрасывается не зависимо ни от чего) или это всё же нужно разрешить (HDL'ом) для каждого триггера индивидуально?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, prostoRoman сказал:

Так он жёстко подаётся на сброс (и триггер сбрасывается не зависимо ни от чего) или это всё же нужно разрешить (HDL'ом) для каждого триггера индивидуально?

Разводится - жестко. А использовать этот асинхронный сброс на каждом конкретном триггере или нет - определяет разработчик с своем проекте (HDL'ом, графикой - не важно как).

Но, как правило, DEV_CLRn используется для глобального асинхронного сброса всего проекта целиком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, StewartLittle сказал:

с задержкой, более-менее выровненной по всей площади кристалла

Не выравненной.

47 минут назад, StewartLittle сказал:

Разводится - жестко. А использовать этот асинхронный сброс на каждом конкретном триггере или нет - определяет разработчик с своем проекте

Не определяет. Используется как сброс для всех триггеров без исключения при включенной глобальной опции DEV_CLRn (см. документацию на FLEX10K)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, dvlwork сказал:

Не определяет. Используется как сброс для всех триггеров без исключения при включенной глобальной опции DEV_CLRn (см. документацию на FLEX10K)

Согласен! "chip-wide reset pin that can reset all registers in the device. Use of this feature is set during design entry. In any of the clear and preset modes, the chip-wide reset overrides all other signals."

Был неправ... :blush:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

btw, я старался никогда об этом не думать чтобы не нарушать целостной картины мира, но все же - а как они снимают этот ресет чтобы не ввергать триггеры в метастабильность (с учетом асинхронного внешнего сброса и произвольного набора тактовых сигналов). Речь не про flex, а про fpga в целом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, alexadmin сказал:

- а как они снимают этот ресет чтобы не ввергать триггеры в метастабильность (с учетом асинхронного внешнего сброса и произвольного набора тактовых сигналов). 

Пример Ксайлинкса..


Выставляется асинхронно, снимается под клоки данного региона. И в каждом регионе клоков вставляется вот такой модуль.

//-----------------------------------------------------------------------------
//  
//  Copyright (c) 2008 Xilinx Inc.
//
//  Project  : Programmable Wave Generator
//  Module   : reset_bridge.v
//  Parent   : Various
//  Children : None
//
//  Description: 
//    This is a specialized metastability hardener intended for use in the
//    reset path. The reset will assert ASYNCHRONOUSLY when the input reset is
//    asserted, but will deassert synchronously.
//
//    In designs with asynchronous reset flip-flops, this generates a reset
//    that can meet the "recovery time" requirement of the flip-flop (be sure
//    to enable the recovery time arc checking - ENABLE=reg_sr_r).
//
//    In designs with synchronous resets, it ensures that the reset is
//    available before the first valid clock pulse arrives.
//
//  Parameters:
//    None
//
//  Notes       : 
//
//  Multicycle and False Paths, Timing Exceptions
//    A tighter timing constraint should be placed between the rst_meta
//    and rst_dst flip-flops to allow for meta-stability settling time
//

`timescale 1ns/1ps


module reset_bridge (
  input            clk_dst,      // Destination clock
  input            rst_in,       // Asynchronous reset signal
  output reg       rst_dst       // Synchronized reset signal
);


//***************************************************************************
// Register declarations
//***************************************************************************

  reg           rst_meta;        // After sampling the async rst, this has
                                 // a high probability of being metastable.
                                 // The second sampling (rst_dst) has
                                 // a much lower probability of being
                                 // metastable

//***************************************************************************
// Code
//***************************************************************************

  always @(posedge clk_dst or posedge rst_in)
  begin
    if (rst_in)
    begin
      rst_meta <= 1'b1;
      rst_dst  <= 1'b1;
    end
    else // if !rst_dst
    begin
      rst_meta <= 1'b0;
      rst_dst  <= rst_meta;
    end // if rst
  end // always

endmodule

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...