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

Управление синтезом в VHDL

Привет!

Можно ли как-нибудь подсказать компилятору генерить вместо сумматора счетчик в следующем описании

 

std_logic_vector (2 downto 0) length := length + (или -) "001";

или

integer 0 to 7 length := length + (или -) 1;

 

Спасибо!

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


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

вообще-то счетчик есть аккумулятор только когда на одном из входов у него 1 а описать это так

process©

begin

if (C'event and C='1') then

Length<= length+'1'

end if;

end process;

только не уверен что пройдет Length поскольку это атрбут в вхдл

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


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

А вы уверены, что синтезируется именно сумматор? Вообще синтезатор хорошо распознает такие вещи.

 

signal length : std_logic_vector (2 downto 0)

length <= length + "001";

 

Попробуйте

length <= length + '1';

или

length <= length + 1;

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


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

вообще-то счетчик есть аккумулятор только когда на одном из входов у него 1

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

Счетчик --- это не сумматор с регистром на выходе.

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


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

вообще-то счетчик есть аккумулятор только когда на одном из входов у него 1

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

Счетчик --- это не сумматор с регистром на выходе.

 

Хмм тут зависит уже от того, как посмотреть. По идее суматор с регистром, на одном входе которого 1, функционально эквивалентен, счетчику на тригерах, но синтезирватсья можут по разному (тут уже нужно смотреть RTL), по тут еще завист от свойств самого счетчика и архитектуры плис

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


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

А вы уверены, что синтезируется именно сумматор? Вообще синтезатор хорошо распознает такие вещи.

 

Работаю в Quartus 5.0 - Смотрел RTL View'ом

Пробовал Simplify 8.1 - опять сумматор

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


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

[Работаю в Quartus 5.0 - Смотрел RTL View'ом

Пробовал Simplify 8.1  - опять сумматор

В Synplify - Взгляни на Gate Netlist. Тогда понято будет, что там получилось на самом деле.

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


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

А вы уверены, что синтезируется именно сумматор? Вообще синтезатор хорошо распознает такие вещи.

 

Работаю в Quartus 5.0 - Смотрел RTL View'ом

Пробовал Simplify 8.1 - опять сумматор

А если чип эдитором глянуть ? или по топологии ?

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


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

А вы уверены, что синтезируется именно сумматор? Вообще синтезатор хорошо распознает такие вещи.

 

Работаю в Quartus 5.0 - Смотрел RTL View'ом

Пробовал Simplify 8.1 - опять сумматор

Я так и думал. RTL --- это RTL и есть, он кажет то, что написано. Поэтому надо смотреть, как советовали коллеги, technology view. Там все станет ясно.

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


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

Summator s registrom na vihode - eto s'hema *universal'nogo* schetchika. On rabotaet pri lyuboy skvazhnosti taktovogo signala i obespechivaet polnost'yu sinhronniy vihod. V drugoy modificatsii - eto posledovatel'no vklyuchennie triggera, gde na Clk vhod sleduyuschego triggera podaetsya signal s vihoda prediduschego. Nedostatok etoy s'hemi - assinhronnost' po vihodu. Sootvetstvenno, sintezator obuchen delat' polnost'yu sinhronniy vihod, vot on i generit summator s registrom po vihodu.

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


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

Summator s registrom na vihode - eto s'hema *universal'nogo* schetchika.

В широком смысле --- да.

V drugoy modificatsii - eto posledovatel'no vklyuchennie triggera, gde na Clk vhod sleduyuschego triggera podaetsya signal s vihoda prediduschego.

Это совершенно другой тип счетчика. Речь не о нем.

Sootvetstvenno, sintezator obuchen delat' polnost'yu sinhronniy vihod, vot on i generit summator s registrom po vihodu.

Да не делает он сумматор. Он делает синхронный счетчик. Он его показывает в RTL View'вере как сумматор, потому что так код написан. На самом деле получается вот что:

 

(говорят, я не могу приаттачить pdf, поэтому аттачу ps)

counter_s.ps

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


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

Да не делает он сумматор. Он делает синхронный счетчик. Он его показывает в RTL View'вере как сумматор, потому что так код написан. На самом деле получается вот что:

 

(говорят, я не могу приаттачить pdf, поэтому аттачу ps)

 

Ostalos' tol'ko ponyat' chem mozhno posmotret' PostScript dlya teh, kto ne sidit po *nix'om :(

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


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

Ostalos' tol'ko ponyat' chem mozhno posmotret' PostScript dlya teh, kto ne sidit po *nix'om :(

GhostView.

 

Приаттачил зазипованный pdf. Зип, оказывается, можно.

 

Но вы и сами можете посмотреть, просинтезируете простейший счетчик.

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

entity counter_s is
 generic(
          w : integer := 4
         );
 port(
      reset :  in std_logic;
      clk   :  in std_logic;
      o     : out std_logic_vector(w - 1 downto 0)
     );
end counter_s;

architecture rtl of counter_s is

signal cnt : std_logic_vector(w - 1 downto 0);

begin

    process(reset, clk)
    begin
         if (reset = '1') then
            cnt <= (others => '0');
         elsif (rising_edge(clk)) then
               cnt <= cnt + '1';
         end if;
    end process;

    o <= cnt;

end rtl;

counter_s.pdf.zip

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


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

A Vi znaete kak viglyadit summator ? Esli vnimatel'no prismotret'sya, to mozhno zametit', chto eto on i est'. Prosto v dannom sluchae Vi vidite raskladku etogo summatora v kristalle s razbieniem na sostavnie chasti. Standartniy summator sostoit iz "XOR" i s'hemi propagirovaniya perenosa, sobrannoy na logicheskih "&". Sobstvenno eto tam i est', prosto nichego drugogo ne pridumali.

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


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

Ostalos' tol'ko ponyat' chem mozhno posmotret' PostScript dlya teh, kto ne sidit po *nix'om :(

gv filename.ps

(gostviewer в линухе стоит по-умолчанию)

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


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

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

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

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

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

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

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

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

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

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