|
Описание стека на 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 не могу понять что я делаю не так... Заранее спасибо за помощь.) если не туда разместил тему перенесите пожалуйста в нужный раздел форума
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 14)
|
Mar 13 2008, 08:47
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(Consigliere @ Mar 13 2008, 10:27)  Идея в том, чтоб описать 8-битный стек, запись и чтение производится с помощью управляющего сигнала "wr"
не могу понять что я делаю не так... Мда, все не так Код
module stack(output [7:0] out_stack, input [7:0] in_stack, input wr); reg [7:0] st0, st1, st2, st3, st4, st5, st6, st7; always @(posedge wr) begin st7 <= st6; st6 <= st5; st5 <= st4; st4 <= st3; st3 <= st2; st2 <= st1; st1 <= st0; st0 <= in_stack; end
assign out_stack = st7;
endmodule
|
|
|
|
|
Mar 13 2008, 09:00
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(Consigliere @ Mar 13 2008, 10:27)  Идея в том, чтоб описать 8-битный стек, запись и чтение производится с помощью управляющего не могу понять что я делаю не так... У меня на сайте есть статья "микропроцессор своими руками" и к ней есть простой проект. Правда там AHDL, но все же лучше, чем ничего... Стек можно сделать на триггерах, можно на памяти... Удачи!
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Mar 13 2008, 10:07
|
Участник

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

|
спасибо, всем за помощь  а можно еще один вопрос Цитата assign out_stack = st7; у нас когда в стек записываются данные, он автоматически считывает? У меня вообще сомнение верно ли я написал что у него вход и выход, у меня данные в него будут подаваться с шины I2C. Или нужно использовать вход как выход, одновременно же все равно не смогут данные записываться и считываться из стека.
|
|
|
|
|
Mar 13 2008, 17:12
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(Consigliere @ Mar 13 2008, 13:07)  спасибо, всем за помощь а можно еще один вопрос assign out_stack = st7; у нас когда в стек записываются данные, он автоматически считывает? Он всегда возвращает значение последнего элемента стека. На самом деле у тебя описан не стек а линия задержки на 8 тактов wr. Цитата У меня вообще сомнение верно ли я написал что у него вход и выход, у меня данные в него будут подаваться с шины I2C. Или нужно использовать вход как выход, одновременно же все равно не смогут данные записываться и считываться из стека. Ты уж определись стек у тебя или что, и что и как должно в него записываться и читаться. Что касается I2C то вообще не понятно что из нее и куда должно подаваться и читаться.
|
|
|
|
|
Mar 13 2008, 18:36
|
Участник

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

|
Ну смотри, это не реальное задание, а так, просто выдуманное для практики, мне преподаватель посоветовал стек описать таким образом как я привел выше. А суть в том, что есть у нас шина, она передает данные, когда надо записывает в этот "стек", когда надо считывает из данного "стека" и все. Запись и чтение "стека" управляется отдельным устройством, с которого и приходит сигнал wr. По крайней мере мое понимание такое.
|
|
|
|
|
Mar 13 2008, 19:13
|
Участник

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

|
Цитата(CaPpuCcino @ Mar 13 2008, 21:58)  спасибо, но уже читал ранее.)
|
|
|
|
|
Mar 13 2008, 20:12
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(Consigliere @ Mar 13 2008, 21:36)  Ну смотри, это не реальное задание, а так, просто выдуманное для практики, Т.е. что оно реально делает до лампочки ? Цитата мне преподаватель посоветовал стек описать таким образом как я привел выше. То, что описано выше - вообще не стек а недоделанное FIFO. Цитата А суть в том, что есть у нас шина, она передает данные, По I2C передаются не только данные, там еще передаются адреса и комманды. Цитата когда надо записывает в этот "стек", когда надо считывает из данного "стека" и все. 'Когда надо' - это когда? Цитата Запись и чтение "стека" управляется отдельным устройством, с которого и приходит сигнал wr. По крайней мере мое понимание такое. Запись и чтение из стека это взаимно обратные операции, они не могут управлятся одним сигналом. Советую сначала определится с протоколами, потом с обшей структурой системы, интерфейсами и соединениями между модулями, и только потом писать содержимое
|
|
|
|
|
Mar 14 2008, 04:31
|
Участник

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

|
XVR, не то чтоб, совсем до лампочки, но рассматривается только отдельная часть возможностей. Модель упрощена по сравнению с реальной моделью. Я уже понял что это грубо можно назвать стеком. Я читал принцип работы шины I2C, что Вы теперь будете к каждому слову сказанному мной придираться? А надо тогда, когда к нему приходят данные... Мне бы хотелось определиться с общей структурой и интерфейсом, но я мало что понимаю в этом, поэтому выполняю те указания, которые мне дают
|
|
|
|
|
Mar 14 2008, 08:50
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(Consigliere @ Mar 14 2008, 07:31)  XVR, не то чтоб, совсем до лампочки, но рассматривается только отдельная часть возможностей. Модель упрощена по сравнению с реальной моделью. Даже упрощенная модель должна чему то соотвествовать Цитата Я уже понял что это грубо можно назвать стеком. Я вот и пытаюсь понять - нужен стек или линия задержки? Это разные вещи. Цитата Я читал принцип работы шины I2C, что Вы теперь будете к каждому слову сказанному мной придираться? Я не придираюсь, я честно пытаюсь понять требования к дезайну, пока не очень получается Цитата А надо тогда, когда к нему приходят данные... Допустим данные приходят из 2го байта данных по I2C, тогда куда должны уходить данные, прочитанные из стека? Цитата Мне бы хотелось определиться с общей структурой и интерфейсом, но я мало что понимаю в этом, поэтому выполняю те указания, которые мне дают  Давай попробуем наоборот - определиться с протоколом, а потом спросить у препа - это то, что он хотел, или нет Итак: - Адрес в обменах по I2C игнорируется, направление обмена определяется битом R/W в первом байте
- Размер стека - 8 байт
- Обмен со стеком поддерживается только побайтовый (1 байт за один цикл шины I2C)
- Запись в стек производится только при наличие в нем свободного места, данные для записи берутся из байта данных (2й байт цикла записи шины I2C)
- Запрос записи подтверждается ACK в адресном цикле шины I2C только при наличии свободного места в стеке
- Чтение из стека производится только в случае непустого стека в первом байте ответа цикла чтения по I2C
- Запрос чтения подтверждается ACK в адресном цикле шины I2C только при наличии данных в стеке
Так сойдет?
|
|
|
|
|
Mar 14 2008, 20:52
|
Местный
  
Группа: Свой
Сообщений: 292
Регистрация: 28-01-05
Из: МО, Мытищи
Пользователь №: 2 274

|
Цитата(CaPpuCcino @ Mar 13 2008, 22:43)  писал находу без верификации. так что могут быть и ошибки Код module stack #( parameter word_width=8, parameter stack_depth=16 ) ( input bit clk, input bit reset_n, ..... Цитата(CaPpuCcino @ Mar 13 2008, 23:26)  для поведеньческой модели: Код class stack #(type Element_Type = int); ...... Всё здорово, вот только не соответствует условиям задачи  Зачем использовать bit, class? Ведь это уже не Verilog (ни 1995, ни 2001), а System Verilog. В результате у преподавателя может появиться подозрение и в результате такое решение выйдет боком автору темы.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|