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

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

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

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


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

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

do,следующим макаром,выводя его из-под Clk:

proc_RAM:process (Clk) is
    variable w_addr, r_addr:integer;
begin 

if (Clk'event and Clk = '1') then 
    if (en = '1') then 
        w_addr:=conv_integer(wa);
        if (w_en='1') then
            RAM(w_addr) <= di; 
        end if; 
    end if; 
end if;    
if (en = '1') then
     r_addr:=conv_integer(ra); 
     do <= RAM(r_addr); 
end if;
end process;

 

1. пользуйте теги code и /code помещенные в [ ].

2. Самое оригинальное что вы, для симулятора и может быть для синтезатора не вывели чтение из под клока :)) если уж вы так хотите это сделать то код у вас должен быть такой

 

proc_RAM:process (Clk, en, ra) is -- !!!
    variable w_addr, r_addr:integer;
begin 

if (rising_edge(Clk)) then 
    if (en = '1') then 
        w_addr:=conv_integer(wa);
        if (w_en='1') then
            RAM(w_addr) <= di; 
        end if; 
    end if; 
end if;    
if (en = '1') then
     r_addr:=conv_integer(ra); 
     do <= RAM(r_addr); 
end if;
end process;

 

и этот вариант честно описывает защелку на выходе памяти (которая стоит почти во всех блочных памятях), но синтезаторами, на сколько я помню не распознавалась.

 

ИМХО сделайте 1 entity c 2 мя архитектурами:

1. архитектура для описания памяти через переменную, а не через сигнал для целей моделирования

2. архитектура со вставкой готового компонента из коре генератора.

 

переключаетесь между ними с помошью конфигураций.

 

это даст вам большую скорость моделирования и однозначность синтеза.

 

Удачи!

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


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

Xilinx recorded e-learning

 

Basic FPGA Configuration PartII

http://uxcont3.sabahosted.com/xil52prodcon...13012-rel-2.wmv

 

Basic FPGA Architecure: Architecture Wizard and the Floorplan Editor

http://uxcont3.sabahosted.com/xil52prodcon...ga13013-rel.wmv

 

Basic FPGA Architecure: Memory and Clocking Resources

http://uxcont3.sabahosted.com/xil52prodcon...fpga13011-8.wmv

 

Basic FPGA Architecture: Slice and I/O Resources

http://uxcont3.sabahosted.com/xil52prodcon...fpga13010-8.wmv

 

Spartan-3E FPGA Architecture

http://uxcont3.sabahosted.com/xil52prodcon...ga13008-rel.wmv

 

Spartan-3 FPGA Architecture Overview

http://uxcont3.sabahosted.com/xil52prodcon...13003-6-rel.wmv

 

Global Timing Constraints

https://xilinx.onsaba.net/Saba/Web/Main/got...dtoorderkey=yes

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


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

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

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

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

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

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

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

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

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

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