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

 
 
> Описание стека на Verilog, подскажите что не так
Consigliere
сообщение Mar 13 2008, 07:27
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 13-03-08
Пользователь №: 35 869



Идея в том, чтоб описать 8-битный стек, запись и чтение производится с помощью управляющего сигнала "wr"
Код
module stack(out_stack, in_stack);
    output [7:0] out_stack;
    input [7:0] in_stack;
    wire st0 [7:0],
    st1 [7:0],
    st2 [7:0],
    st3 [7:0],
    st4 [7:0],
    st5 [7:0],
    st6 [7:0],
    st7 [7:0];
    wire wr;
    
        
    always in_stack
        
    if (wr)
        st7 = st6;
        st6 = st5;
        st5 = st4;
        st4 = st3;
        st3 = st2;
        st2 = st1;
        st1 = st0;
        st0 = in_stack;
        
endmodule

при компиляции выдает данное сообщение
Цитата
# Pass 1. Scanning modules hierarchy.
# Error: VCP2000 stack.v : (20, 8): Syntax error. Unexpected token: =. Expected tokens: '#' , '(' , ':' , 'delay' , ',' ... .
# Error: VCP2000 stack.v : (21, 8): Syntax error. Unexpected token: =. Expected tokens: '#' , '(' , ':' , 'delay' , ',' ... .
# Error: VCP2000 stack.v : (22, 8): Syntax error. Unexpected token: =. Expected tokens: '#' , '(' , ':' , 'delay' , ',' ... .
# Error: VCP2000 stack.v : (23, 8): Syntax error. Unexpected token: =. Expected tokens: '#' , '(' , ':' , 'delay' , ',' ... .
# Error: VCP2000 stack.v : (24, 8): Syntax error. Unexpected token: =. Expected tokens: '#' , '(' , ':' , 'delay' , ',' ... .
# Error: VCP2000 stack.v : (25, 8): Syntax error. Unexpected token: =. Expected tokens: '#' , '(' , ':' , 'delay' , ',' ... .
# Error: VCP2000 stack.v : (26, 8): Syntax error. Unexpected token: =. Expected tokens: '#' , '(' , ':' , 'delay' , ',' ... .
# Warning: VCP2515 stack.v : (21, 1): Undefined module: st4 was used. Port connection rules will not be checked at such instantiations.
# Warning: VCP2515 stack.v : (20, 1): Undefined module: st5 was used. Port connection rules will not be checked at such instantiations.
# Warning: VCP2515 stack.v : (23, 1): Undefined module: st2 was used. Port connection rules will not be checked at such instantiations.
# Warning: VCP2515 stack.v : (22, 1): Undefined module: st3 was used. Port connection rules will not be checked at such instantiations.
# Warning: VCP2515 stack.v : (26, 1): Undefined module: in_stack was used. Port connection rules will not be checked at such instantiations.
# Warning: VCP2515 stack.v : (25, 1): Undefined module: st0 was used. Port connection rules will not be checked at such instantiations.
# Warning: VCP2515 stack.v : (24, 1): Undefined module: st1 was used. Port connection rules will not be checked at such instantiations.
# Compile failure 7 Errors 7 Warnings Analysis time : 0[s].
# done

не могу понять что я делаю не так...
Заранее спасибо за помощь.)

если не туда разместил тему перенесите пожалуйста в нужный раздел форума
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Consigliere
сообщение Mar 15 2008, 14:22
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 13-03-08
Пользователь №: 35 869



XVR, вобщем как выяснилось, смысл был не совсем тот.
Поправки:
1. Сама шина I2C со стеком не работает. Работает через устройство управления стеком.
2. Необходимо спроектировать это устройство. Взаимодействие с шиной и со стеком. Порядок такой: проверка адреса(берем из шины), совпадает -> проверка команды read/write -> соответственно действие если read то отправляем на стек сигнал rd, для получения информации и сдвига стека, если write, то берем информацию из шины, сдвигаем стек и записываем. Запись и чтение между устройством управления и стеком производятся через 2 буфера(в качестве них выбраны регистры), т.е. один на чтение, второй на запись (не совсем понятна конечно эта идея, зачем оно надо).
Описание стека было удовлетворительно, т.е. зачет. На данный момент поставлена задача разработать устройство управления. Я пока что не думал, идей нет. Планирую завтра заняться этим, соответственно сообщу.
По Вашему предложению: 1. Адрес в обменах по I2C игнорируется, направление обмена определяется битом R/W в первом байте - получается, что нетsmile.gif
2. Размер стека - 8 байт - да.
3. Обмен со стеком поддерживается только побайтовый (1 байт за один цикл шины I2C) - не совсем понятна идея, если смысл в том что за 1 такт только заполняется 1 ячейка стека, то да.
4. Запись в стек производится только при наличие в нем свободного места, данные для записи берутся из байта данных (2й байт цикла записи шины I2C) - изначально он пуст. Думаю просто переполнение не будет допускаться.
5. Запрос записи подтверждается ACK в адресном цикле шины I2C только при наличии свободного места в стеке - не до конца понимаю этот процессsad.gif
6. Чтение из стека производится только в случае непустого стека в первом байте ответа цикла чтения по I2C - естественно что пустую информацию брать не целесообразно.
7. Запрос чтения подтверждается ACK в адресном цикле шины I2C только при наличии данных в стеке - аналогично не понимаю, как при записиsad.gif
Go to the top of the page
 
+Quote Post
XVR
сообщение Mar 15 2008, 20:11
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Consigliere @ Mar 15 2008, 17:22) *
XVR, вобщем как выяснилось, смысл был не совсем тот.
Поправки:
1. Сама шина I2C со стеком не работает. Работает через устройство управления стеком.
Это устройство включает непосредственно стек, или сам стек это еще одно устройство?


Цитата
2. Необходимо спроектировать это устройство. Взаимодействие с шиной и со стеком. Порядок такой: проверка адреса(берем из шины), совпадает -> проверка команды read/write -> соответственно действие если read то отправляем на стек сигнал rd, для получения информации и сдвига стека, если write, то берем информацию из шины, сдвигаем стек и записываем.


Устройство (равно как и все остальные) рекомендуется делать синхронным, т.к. почти все современные схемы синхронные.

Цитата
Запись и чтение между устройством управления и стеком производятся через 2 буфера(в качестве них выбраны регистры), т.е. один на чтение, второй на запись (не совсем понятна конечно эта идея, зачем оно надо).
С этим как раз все просто - гораздо проще сделать 2 раздельные однонаправленные шины, чем одну двунаправленную, к которой понадобятся дополнительные сигналы для управления направлением передачи данных. Кроме того, во многих FPGA просто нет внутренних шин с 3мя состояниями.



Цитата
По Вашему предложению: 1. Адрес в обменах по I2C игнорируется, направление обмена определяется битом R/W в первом байте - получается, что нет smile.gif
Это не существенно, добавится один компаратор на адрес.

Цитата
3. Обмен со стеком поддерживается только побайтовый (1 байт за один цикл шины I2C) - не совсем понятна идея, если смысл в том что за 1 такт только заполняется 1 ячейка стека, то да.
В смысле не поддерживается обмен пакетами данных по I2C - только побайтово (1 байт за один полный цикл обмена)

Цитата
4. Запись в стек производится только при наличие в нем свободного места, данные для записи берутся из байта данных (2й байт цикла записи шины I2C) - изначально он пуст. Думаю просто переполнение не будет допускаться.
Кем не будет допускаться? И что делать контроллеру стека, если оно все же произошло?

Цитата
5. Запрос записи подтверждается ACK в адресном цикле шины I2C только при наличии свободного места в стеке - не до конца понимаю этот процесс sad.gif
Обмен по шине I2C подтверждается адресуемым устройством в цикле передачи адреса. Имеется в виду, что данное устройство не будет подтверждать обмен (т.е. мастер I2C просто не увидит устройства на шине), если оно (устройство) не может обслужить запрос на чтение или запись.

Цитата
6. Чтение из стека производится только в случае непустого стека в первом байте ответа цикла чтения по I2C - естественно что пустую информацию брать не целесообразно.
Имеется в виду, что при попытке чтения из пустого стека устройство вообще ничего делать не будет, альтернативой может являться чтение нуля (например)



В общем вырисовываются такие сигналы в интерфейсе:
  1. input clk - Системный клок
  2. input enable - Обращение к контролеру стека
  3. input write - Цикл записи (1-запись, 0-чтение)
  4. output full - Признак заполненности стека
  5. output empty - Признак пустоты стека
  6. input [7:0] in_data - Шина записи
  7. output [7:0] out_data - Шина чтения
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Mar 15 2008, 21:11
Сообщение #4


тоже уже Гуру
******

Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973



господа, не пора ли переместиться в соответствующий раздел форума?
Форум разработчиков электроники - Electronics developers forum > Программируемая логика (ПЛИС) - Programmable Logic (FPGA,CPLD, PLD) > Языки проектирования на ПЛИС - FPGA programming languages


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Consigliere   Описание стека на Verilog   Mar 13 2008, 07:27
- - yuri_d   1) при работе со стеком подразумевается, что есть ...   Mar 13 2008, 08:42
- - XVR   Цитата(Consigliere @ Mar 13 2008, 10:27) ...   Mar 13 2008, 08:47
- - iosifk   Цитата(Consigliere @ Mar 13 2008, 10:27) ...   Mar 13 2008, 09:00
- - Consigliere   спасибо, всем за помощь а можно еще один вопрос Ц...   Mar 13 2008, 10:07
|- - XVR   Цитата(Consigliere @ Mar 13 2008, 13:07) ...   Mar 13 2008, 17:12
- - Consigliere   Ну смотри, это не реальное задание, а так, просто ...   Mar 13 2008, 18:36
|- - CaPpuCcino   http://en.wikipedia.org/wiki/Stack_(data_structure...   Mar 13 2008, 18:58
|- - XVR   Цитата(Consigliere @ Mar 13 2008, 21:36) ...   Mar 13 2008, 20:12
|- - CaPpuCcino   для поведеньческой модели: Кодclass stack #(ty...   Mar 13 2008, 20:26
- - Consigliere   Цитата(CaPpuCcino @ Mar 13 2008, 21:58) h...   Mar 13 2008, 19:13
|- - CaPpuCcino   писал находу без верификации. так что могут быть и...   Mar 13 2008, 19:43
- - Consigliere   XVR, не то чтоб, совсем до лампочки, но рассматрив...   Mar 14 2008, 04:31
|- - XVR   Цитата(Consigliere @ Mar 14 2008, 07:31) ...   Mar 14 2008, 08:50
- - yuri_d   Цитата(CaPpuCcino @ Mar 13 2008, 22:43) п...   Mar 14 2008, 20:52
|- - CaPpuCcino   Цитата(yuri_d @ Mar 14 2008, 23:52) Всё з...   Mar 14 2008, 21:59
|- - Consigliere   Цитата(XVR @ Mar 15 2008, 23:11) Это устр...   Mar 16 2008, 08:35
|- - XVR   Цитата(Consigliere @ Mar 16 2008, 11:35) ...   Mar 17 2008, 08:46
|- - Consigliere   Цитата(XVR @ Mar 17 2008, 11:46) Т.е. пре...   Mar 17 2008, 10:25
|- - XVR   Цитата(Consigliere @ Mar 17 2008, 13:25) ...   Mar 17 2008, 17:05
|- - Consigliere   Цитата(XVR @ Mar 17 2008, 20:05) Предлага...   Mar 17 2008, 17:30
|- - XVR   Цитата(Consigliere @ Mar 17 2008, 20:30) ...   Mar 18 2008, 08:39
- - Consigliere   все только на поведенческом уровне просто описание...   Mar 18 2008, 12:44
|- - XVR   Цитата(Consigliere @ Mar 18 2008, 15:44) ...   Mar 18 2008, 13:25
- - Consigliere   на счет этого не знаю, но предполагаю что абстракт...   Mar 18 2008, 14:26
|- - XVR   Цитата(Consigliere @ Mar 18 2008, 17:26) ...   Mar 18 2008, 17:03
- - Consigliere   я пока что заболел, лежу с температурой, как тольк...   Mar 20 2008, 07:03
- - Consigliere   вот и выздоровил так как на счет такой реализации...   Mar 27 2008, 08:24
|- - XVR   Цитата(Consigliere @ Mar 27 2008, 11:24) ...   Mar 27 2008, 16:50
- - Consigliere   там не 4 шины для обмена со стеком, 2 на стек и 2 ...   Mar 28 2008, 05:28
|- - XVR   Цитата(Consigliere @ Mar 28 2008, 08:28) ...   Mar 28 2008, 06:04
- - Consigliere   я не понимаю принцип действия контроллера какую ро...   Mar 31 2008, 07:12
|- - XVR   Цитата(Consigliere @ Mar 31 2008, 11:12) ...   Mar 31 2008, 07:22
- - Consigliere   а как его делать, вместе со стеком? и опять же он ...   Mar 31 2008, 17:31
- - XVR   Цитата(Consigliere @ Mar 31 2008, 21:31) ...   Apr 1 2008, 08:05


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

 


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


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