реклама на сайте
подробности

 
 
> Работа с флэш-памятью, Или какие еще способы проверки декодера?
Muscat
сообщение Nov 2 2010, 16:45
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Те, кто видел мои прошлые темы, наверное уже догадался, что я снова про декодер Витерби :-)

Я дописал HDL код, погонял его, все работает Ок. Перехожу к синтезу и отладке в железке.
И возникает вот какой вопрос.

Последовательность из демодулятора для проверки декодера я моделирую в матлабе, записать их можно в каком угодно виде.
Сейчас я объявил их в виде константы в упаковке
Код
type Ara is array (NATURAL RANGE <>) of std_logic_vector (Input_Bits-1 downto 0);
constant InP: Ara:=("011111","000111","000001","101000",..............................,"000000");


Далее описал генератор, который читает эти данные и выдает на кодер. Все работает Ок.
Теперь вопрос, каким образом тестировать реальную ПЛИС

Имеется отладочная плата
http://www.actel.com/products/hardware/dev...sic3l.aspx#docs
На ней есть встроенная флэш-память, есть 2 USB порта, один для программирования, вторым собсно можно пользоваться.

У меня нет никакого опыта в работе с флэш-память, в книгах тоже пока ничего не нашел.
Подскажите какой нибудь материал по тому, как работать с памятью? Я это вижу так, что предварительно во флэш записываются кодированные символы, затем небольшой блок внутри самого ПЛИСа обращается к этой памяти и подает данные на вход кодера. Как это сделать? Ткните пальцем что ли.

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


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Muscat
сообщение Nov 8 2010, 10:42
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Про кортекс да,хорош вопрос был, вчера уже мозги туго соображали. В любом случае спасибо за ссылки =)

_ANDREW, я тоже уже склоняюсь к тому, чтобы попробовать положить все на блочную память.
Как это лучше сделать в HDL коде?
1) Внутри архитектуры сигнала объявить сигнал типа массив с предварительным заданием значений
2) Внутри процесса объявить переменную, с предварительным заданием
3) Оставить все, как есть у меня сейчас - массив входных данных объявлен константой в упаковке

Насколько я помню из описаний, синтезатор игнорирует все предварительные задания сигналов вида
Код
signal A: std_logic_vector(2downto0) :="111";


Кодер стандартный 7(133,171), реализация алгоритма на трейбеке (меня тут помнится уверяли, что трейкбек обязателен, так вот если что трейбек это просто один из вариантов реализации), мягкие решения по 3 бита, глубина 64.

Сообщение отредактировал Muscat - Nov 8 2010, 10:42


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
_ANDREW
сообщение Nov 8 2010, 16:53
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 14-03-06
Пользователь №: 15 223



Цитата(Muscat @ Nov 8 2010, 13:42) *
_ANDREW, я тоже уже склоняюсь к тому, чтобы попробовать положить все на блочную память.
Как это лучше сделать в HDL коде?
1) Внутри архитектуры сигнала объявить сигнал типа массив с предварительным заданием значений
2) Внутри процесса объявить переменную, с предварительным заданием
3) Оставить все, как есть у меня сейчас - массив входных данных объявлен константой в упаковке


Я всегда делаю 1. вот небольшой пример
CODE

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity ROM is
port (CLK : in std_logic;
EN : in std_logic;
ADDR : in std_logic_vector(15 downto 0);
DATA : out std_logic_vector(31 downto 0));
end ROM;

architecture syn of ROM is





type rom_type is array (0 to 1007) of std_logic_vector (31 downto 0);
signal ROM : rom_type:= (


X"00000000", X"00040050", X"000d00c0", X"00cc01f0", X"00ea0180", X"01bb0080", X"01aa0090", X"01720120",
X"014d0100", X"011001f1", X"010a00c1", X"00000010", X"00110160", X"00710200", X"00810110", X"008901a0",
X"008d0111", X"00b801e0", X"00c10112", X"01cb0230", X"016c0091", X"015a0150", X"00000020", X"00130181",
X"004d0210", X"006800c2", X"006c0140", X"00cc0092", X"01e401d0", X"01c00130", X"01a201e1", X"01630093",
X"01200141", X"00000030", X"001200d0", X"001901c0", X"00620231", X"00680211", X"007800a0", X"009d0142",
X"00ad00f0", X"01d401c1", X"01b30220", X"01740190", X"00000040", X"00120212", X"00310131", X"00550170",
X"009b0221", X"00bd00d1", X"00e300a1", X"01400232", X"012b0041", X"012d0070", X"01220171", X"00000051"

-- и так далее

);
attribute ROM_STYLE : string; ---атрибуты для того чтобы при синтезе распределение было в блоковую память
attribute ROM_STYLE of ROM: signal is "block";

begin



process (CLK)
begin
if (CLK'event and CLK = '1') then
if (EN = '1') then
DATA <= ROM(conv_integer(ADDR));
end if;
end if;
end process;

end syn;

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

Сообщение отредактировал _ANDREW - Nov 8 2010, 16:55
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Muscat   Работа с флэш-памятью   Nov 2 2010, 16:45
- - XVR   Все зависит от способа подключения FLASH к FPGA. С...   Nov 3 2010, 08:06
- - Muscat   Нашел программу для заливки данных во флэш. Уже хо...   Nov 3 2010, 17:20
|- - XVR   Цитата(Muscat @ Nov 3 2010, 20:20) Теперь...   Nov 4 2010, 08:54
- - Muscat   Прошу прощения, я не обратил внимание, что по прив...   Nov 7 2010, 05:58
- - XVR   Посмотрел. ЦитатаВ общих чертах становится понятн...   Nov 7 2010, 09:14
- - Muscat   А что такое Cortex?   Nov 7 2010, 15:20
|- - Maverick   Цитата(Muscat @ Nov 7 2010, 17:20) А что ...   Nov 8 2010, 07:32
|- - XVR   Цитата(Muscat @ Nov 7 2010, 18:20) А что ...   Nov 8 2010, 08:08
- - _ANDREW   Muscat, я не тестировал декодер Витерби, и с Actel...   Nov 7 2010, 19:20
|- - Maverick   Цитата(Muscat @ Nov 8 2010, 12:42) Про ко...   Nov 8 2010, 10:50
- - XVR   Цитатая тоже уже склоняюсь к тому, чтобы попробова...   Nov 8 2010, 13:21
- - Muscat   Описание блочной RAM памяти присутствует в CodingS...   Nov 8 2010, 13:37
|- - Maverick   Цитата(Muscat @ Nov 8 2010, 15:37) О встр...   Nov 8 2010, 15:10
- - Muscat   Maverick, 1,024 bits of user flash memory не спас...   Nov 8 2010, 15:25
|- - Maverick   Цитата(Muscat @ Nov 8 2010, 17:25) Maveri...   Nov 8 2010, 15:30
- - Muscat   Цитата(Maverick @ Nov 8 2010, 18:10) Напр...   Nov 8 2010, 15:52
- - Muscat   ANDREW, спасибо! Последний вопрос - это ведь п...   Nov 8 2010, 17:06
- - _ANDREW   Это для XILINX, атрибуты для родного XILINX SYN TO...   Nov 8 2010, 17:26
|- - Maverick   Muscat Сравните то что в документе на стр. 78 и то...   Nov 8 2010, 19:43
|- - _ANDREW   Цитата(Maverick @ Nov 8 2010, 22:43) Musc...   Nov 8 2010, 20:26
|- - Maverick   Цитата(_ANDREW @ Nov 8 2010, 22:26) на 78...   Nov 8 2010, 20:49
|- - _ANDREW   Цитата(Maverick @ Nov 8 2010, 23:49) PS У...   Nov 9 2010, 10:38
- - Muscat   пробовал использовать атрибуты синтеза, делал акку...   Nov 16 2010, 11:02
- - XVR   ЦитатаСинтезировал кусок кода из coding Style Guid...   Nov 16 2010, 14:44
- - Muscat   ЦитатаВ настройках синтезатора не запрещено синтез...   Nov 16 2010, 20:18
- - Muscat   Пришел ответ от службы технической поддержки, огро...   Nov 17 2010, 07:44
- - XVR   ЦитатаПоэтому вовзаращаясь к первоначальной теме -...   Nov 17 2010, 07:54


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 06:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01422 секунд с 7
ELECTRONIX ©2004-2016