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

Давайте обговорим создание программируемого коммутатора на VHDL! :)

Не так все просто. Partial reconfiguration mode оперирует целыми колонками CLB, от низа кристала до его верха. Т.е. туда нужно будет помещать сразу множество коммутаторов.
Должны же быть и какие то недостатки :)

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


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

Ну, чтоб вы не ругались, я могу переписать код и с асинхронным Reset'ом :)

Еще раз всем ОГРОМНЕЙШЕЕ спасибо!!!!

Если кто подзабыл тех задание - повторюсь:

 

Необходимо за 1 такт переставить биты в регистре в заранее установленном порядке. Закон перестановки должен загружаться перед началом работы и быть изменяемым в системе.

 

Результат - См. выше.

 

Удачи!

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


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

Короче, разобрался. Пользуйтесь! :) Все нормально.
Не совсем.

 use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.Std_logic_arith.all;
USE IEEE.NUMERIC_STD.ALL;

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

 

 

Если в библиотеке примитивов у Альтеры есть триггеры с синхронным сбросом/установкой, то сочувствовать нужно пользователям квартуса, т.к. налицо проблемы с оптимизацией.
Таки да. У Квартуса проблемы с реализацией локального синхронного сброса -- о этом даже в handbook написано. Мне приходилось насильно в коде ставить lpm_ff, чтобы задействовать синхронный сброс триггера.

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


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

Не совсем.

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

 

Разве без них можно обойтись???? :wacko: Мне кажется, что без этих библиотек вообще синтеза не будет, без второй так точно :( Я считаю, что библиотеки

 

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

 

просто необходимы!!!

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


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

Maverick, IEEE.STD_LOGIC_ARITH и IEEE.STD_LOGIC_UNSIGNED желательно заменять на IEEE.NUMERIC_STD. И уж точно не следует смешивать их во избежание проблем(в них, вроде, по разному переопределены операторы - и неизвестно, что в конечном счете будет применено). А синтез будет, если пользовать IEEE.NUMERIC_STD, правда нужно писать немного по-другому.

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


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

А синтез будет, если пользовать IEEE.NUMERIC_STD, правда нужно писать немного по-другому.

 

Можно по подробнее "немного по-другому" это как?? И еще вопрос: почему мне Xilinx ISE 8.02.03 в Language Templates советуют использовать эти библиотеки, и когда только создаю в ISE VHDL modulе, то он мне автоматически выдается лист в котором присутствуют:

 

Стандартный загаловок: имя файла, кто/где разработал и о чем проект - в коментариях;

Приведенные библиотеки;

Место под описание портов;

Пустое архитектурное тело;

 

наподобии такого:

----------------------------------------------------------------------------------
-- Company: 
-- Engineer: 
-- 
-- Create Date:    10:28:42 07/29/2008 
-- Design Name: 
-- Module Name:    ccc - Behavioral 
-- Project Name: 
-- Target Devices: 
-- Tool versions: 
-- Description: 
--
-- Dependencies: 
--
-- Revision: 
-- Revision 0.01 - File Created
-- Additional Comments: 
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity ccc is
end ccc;

architecture Behavioral of ccc is

begin


end Behavioral;

 

СТАНОВИТСЯ ОЧЕНЬ ИНТЕРЕСНО!!! :) :help:

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


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

Можно по подробнее немного по другому как??
Всё почти тоже самое. Только тип сигналов, участвующих во всех математических операциях, лоджен быть signed или unsigned, а не std_logic_vector. При необходимости делается преобразование типов signed<->std_logic_vector и unsigned<->std_logic_vector.

 

И еще вопрос: почему мне Xilinx ISE 8.02.03 в Language Templates советуют использовать эти библиотеки, и когда только создаю в ISE VHDL modulе, то он мне автоматически выдается лист в котором присутствуют:
Адресуйте этот вопрос к господам из Xilinx, почему они игнорирурт стандарт языка. Текущим стандартом IEEE1076.3 эти пакеты не предусмотрены. В будущем вроде как появятся numeric_std_unsigned и numeric_std_signed, но когда это будет...

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


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

Всё почти тоже самое. Только тип сигналов, участвующих во всех математических операциях, лоджен быть signed или unsigned, а не std_logic_vector. При необходимости делается преобразование типов signed<->std_logic_vector и unsigned<->std_logic_vector.

 

Адресуйте этот вопрос к господам из Xilinx, почему они игнорирурт стандарт языка. Текущим стандартом IEEE1076.3 эти пакеты не предусмотрены. В будущем вроде как появятся numeric_std_unsigned и numeric_std_signed, но когда это будет...

 

Извините, не внимательно прочитал в описаниях математических операций, то конечно нужно использовать библиотеку USE IEEE.NUMERIC_STD.ALL;

 

а при описании например счетчика, FSM и т. д.

 

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

 

Во всяком случае я так делаю :) Математику и логику разделяю на модульном уровне

 

Иначе :07: :cranky: :cranky: :cranky:

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


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

а при описании например счетчика, FSM и т. д.

 

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

 

Во всяком случае я так делаю :)

Зачем? Я, например, все счётчики делаю unsigned. И причём тут FSM?

 

Иначе :07: :cranky: :cranky: :cranky:
Не понял. Что, какие-то проблемы?

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


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

Зачем? Я, например, все счётчики делаю unsigned. И причём тут FSM?

 

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

 

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity counter is
    Port ( clk : in std_logic;
           en : in std_logic;
           rst : in std_logic;
           count : out std_logic_vector(7  downto 0));
end counter;

architecture behavioral of counter is
signal cnt: std_logic_vector (7  downto 0):= "00000000";
begin 
pr_d_e: process (clk, en, cnt, rst)
begin
if (rst = '0') then
cnt <= (others => '0');
elsif (clk'event and clk = '1') then
if (en = '1') then
cnt <= cnt + "00000001";
end if;
end if;
count <= cnt;
end process pr_d_e;
end behavioral;

 

Так как правильно все таки это делать на сегодняшний день, в соответствии со стандартами? Какие библиотеки при этом использовать?

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


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

Извините, что еще раз беспокою, но возникли некоторые трудности... :(

Все прекрасно работает... но только в поведенческом моделировании.

как только пытаюсь сделать Sintesize - XST - пишет:

ERROR:Portability:3 - This Xilinx application has run out of memory or has encountered a memory conflict. Current memory usage is 2090724 kb. You can try increasing your system's physical or virtual memory. For technical support on this issue, please open a WebCase with this project attached at http://www.xilinx.com/support.

 

На сайте есть решения, но они относятся к младшим версиям (у меня ISE 10.) Я попробовал опции как предлагалось на сайте - но ничего не дает результатов.

Как запускаю на синтез - на двухголовом Атлоне 4000 синтезит около 15 минут, а потом выдает эту самую ошибку...

Подскажите плиз, в чем проблема...

PS: на сайте Xilinx пишут, что вероятно много вложенных if-ов. Так оно и есть. Пытался немного уменьшить их кол-во, но намного не получилось. Все пытаюсь реализовать подстановку. Теперь правда несколько большего объема.... (Я от темы не ухожу!!! Все в топик!! Про подстановку эту гребаную... Извините... Сорвалось. От незнания и нервы...)

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


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

На сайте есть решения, но они относятся к младшим версиям (у меня ISE 10.)

 

Какой SP?

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


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

Release version 10.1(nt)

Application Version K.31

А про ServicePack не знаю.... 2008 год вроде пишет...

 

я убрал все if - оставил только один по clk. Все равно выдает ошибку. А когда отключаю мультиплексоры - сразу компилится вся схема.... Check Syntax не выдает ни ошибок ни предупреждений.

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


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

Судя по всему, у Вас даже первый SP не стоит. Это плохо. Сейчас есть SP2 и IP Update 1. Поэтому окно About... должно выглядеть так: post-904-1218480948_thumb.jpg

Т.е. версия должна быть как в выделенной красным строке - 10.1.02.

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


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

А как обновиться? Если можно, конечно.... Хотелось бы с Вашей помощью сэкономить время! :) Если не против...

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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