|
Описание стека на Verilog, подскажите что не так |
|
|
|
Mar 13 2008, 07:27
|
Участник

Группа: Новичок
Сообщений: 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 не могу понять что я делаю не так... Заранее спасибо за помощь.) если не туда разместил тему перенесите пожалуйста в нужный раздел форума
|
|
|
|
|
 |
Ответов
|
Mar 15 2008, 14:22
|
Участник

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

|
XVR, вобщем как выяснилось, смысл был не совсем тот. Поправки: 1. Сама шина I2C со стеком не работает. Работает через устройство управления стеком. 2. Необходимо спроектировать это устройство. Взаимодействие с шиной и со стеком. Порядок такой: проверка адреса(берем из шины), совпадает -> проверка команды read/write -> соответственно действие если read то отправляем на стек сигнал rd, для получения информации и сдвига стека, если write, то берем информацию из шины, сдвигаем стек и записываем. Запись и чтение между устройством управления и стеком производятся через 2 буфера(в качестве них выбраны регистры), т.е. один на чтение, второй на запись (не совсем понятна конечно эта идея, зачем оно надо). Описание стека было удовлетворительно, т.е. зачет. На данный момент поставлена задача разработать устройство управления. Я пока что не думал, идей нет. Планирую завтра заняться этим, соответственно сообщу. По Вашему предложению: 1. Адрес в обменах по I2C игнорируется, направление обмена определяется битом R/W в первом байте - получается, что нет  2. Размер стека - 8 байт - да. 3. Обмен со стеком поддерживается только побайтовый (1 байт за один цикл шины I2C) - не совсем понятна идея, если смысл в том что за 1 такт только заполняется 1 ячейка стека, то да. 4. Запись в стек производится только при наличие в нем свободного места, данные для записи берутся из байта данных (2й байт цикла записи шины I2C) - изначально он пуст. Думаю просто переполнение не будет допускаться. 5. Запрос записи подтверждается ACK в адресном цикле шины I2C только при наличии свободного места в стеке - не до конца понимаю этот процесс  6. Чтение из стека производится только в случае непустого стека в первом байте ответа цикла чтения по I2C - естественно что пустую информацию брать не целесообразно. 7. Запрос чтения подтверждается ACK в адресном цикле шины I2C только при наличии данных в стеке - аналогично не понимаю, как при записи
|
|
|
|
|
Mar 15 2008, 20:11
|
Гуру
     
Группа: Свой
Сообщений: 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 в первом байте - получается, что нет  Это не существенно, добавится один компаратор на адрес. Цитата 3. Обмен со стеком поддерживается только побайтовый (1 байт за один цикл шины I2C) - не совсем понятна идея, если смысл в том что за 1 такт только заполняется 1 ячейка стека, то да. В смысле не поддерживается обмен пакетами данных по I2C - только побайтово (1 байт за один полный цикл обмена) Цитата 4. Запись в стек производится только при наличие в нем свободного места, данные для записи берутся из байта данных (2й байт цикла записи шины I2C) - изначально он пуст. Думаю просто переполнение не будет допускаться. Кем не будет допускаться? И что делать контроллеру стека, если оно все же произошло? Цитата 5. Запрос записи подтверждается ACK в адресном цикле шины I2C только при наличии свободного места в стеке - не до конца понимаю этот процесс  Обмен по шине I2C подтверждается адресуемым устройством в цикле передачи адреса. Имеется в виду, что данное устройство не будет подтверждать обмен (т.е. мастер I2C просто не увидит устройства на шине), если оно (устройство) не может обслужить запрос на чтение или запись. Цитата 6. Чтение из стека производится только в случае непустого стека в первом байте ответа цикла чтения по I2C - естественно что пустую информацию брать не целесообразно. Имеется в виду, что при попытке чтения из пустого стека устройство вообще ничего делать не будет, альтернативой может являться чтение нуля (например) В общем вырисовываются такие сигналы в интерфейсе: - input clk - Системный клок
- input enable - Обращение к контролеру стека
- input write - Цикл записи (1-запись, 0-чтение)
- output full - Признак заполненности стека
- output empty - Признак пустоты стека
- input [7:0] in_data - Шина записи
- output [7:0] out_data - Шина чтения
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|