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

Местный
  
Группа: Свой
Сообщений: 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
|
|
|
|
|
 |
Ответов
|
Nov 8 2010, 10:42
|

Местный
  
Группа: Свой
Сообщений: 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
|
|
|
|
|
Nov 8 2010, 16:53
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|