A. Fig Lee 0 5 декабря, 2013 Опубликовано 5 декабря, 2013 (изменено) · Жалоба Чтото в 3х соснах заблудился. Ковыряюсь с Lattice CPLD. Задачка: надо shift register, По приходу фронта загружается, и пока я все 24 бита не считаю, загружатся не может. Чудеса в решете, однако, который день ковыряюсь. Сузил до: reg ready = 0; reg bits = 0; always@(negedge myclk) begin if (!ready) begin bits = 24; ready <= 1; end else begin if (bits != 0) //Сюда никогда не попадает!! begin bits = bits - 1; end else begin ready <= 0; end end end и не могу попасть внутрь (bits != 0) почемуто всегда 0. Пробовал задержки добавлять, ассайнменты блокинг/нонблокинг. Ничего.. непонятно, что делать.. Изменено 5 декабря, 2013 пользователем A. Fig Lee Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kreakozeablik 0 5 декабря, 2013 Опубликовано 5 декабря, 2013 · Жалоба reg bits = 0; Регистр bits размером в один бит. При записи в него значения 24, берется последний бит '0'. Замените на: reg [4:0] bits = 0; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Timmy 1 5 декабря, 2013 Опубликовано 5 декабря, 2013 · Жалоба reg bits = 0; bits = 24; и не могу попасть внутрь (bits != 0) почемуто всегда 0. Пробовал задержки добавлять, ассайнменты блокинг/нонблокинг. Ничего.. непонятно, что делать.. Мне кажется, что не стоит утрамбовывать 24 в однобитный регистр. Интересно, синтезатор не даёт здесь warning? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A. Fig Lee 0 5 декабря, 2013 Опубликовано 5 декабря, 2013 · Жалоба Регистр bits размером в один бит. При записи в него значения 24, берется последний бит '0'. Замените на: reg [4:0] bits = 0; Yes! Genius! С меня пиво! А то я уже чуть не тронулся.. :) Мне кажется, что не стоит утрамбовывать 24 в однобитный регистр. Интересно, синтезатор не даёт здесь warning? Точно, давал, но за простыней сообщений не обращал внимание: @W: CL189 :"C:\embed\lattice\ispmach4256zebreakoutboardevaluationkitsource\lc4256ze_ctl\pl_shift_reg24.v":19:1:19:6|Register bit bits is always 0, optimizing .. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 5 декабря, 2013 Опубликовано 5 декабря, 2013 · Жалоба reg ready = 0; reg bits = 0; always@(negedge myclk) begin if (!ready) begin bits = 24; ready <= 1; end else begin ...... непонятно, что делать.. И Вы не знаете разницы между блокирующим и неблокирующим назначением... И для кого же я делал "Краткий Курс"??? Неужели прочитать лень? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A. Fig Lee 0 5 декабря, 2013 Опубликовано 5 декабря, 2013 · Жалоба И Вы не знаете разницы между блокирующим и неблокирующим назначением... И для кого же я делал "Краткий Курс"??? Неужели прочитать лень? Какая глава? Я парочку пробежал. Блокирующие и НЕблокирущие, я из гугла так и не понял что именно они блокируют, следующее назначение в блоке? Между begin/end блокирующие будут в очереди исполнятся? Почему компайлер ругается на другой блок, если там делать неблокирующее, а тут блокирующее.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 5 декабря, 2013 Опубликовано 5 декабря, 2013 · Жалоба неблокирующие все работают параллельно блокирующие по очереди, как написаны то есть A<=B B<=A одновременно поменяются местами A=B B=A присвояться по очереди, в один такт, но значения не поменяются местами, Значение А потеряется фактически... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A. Fig Lee 0 5 декабря, 2013 Опубликовано 5 декабря, 2013 · Жалоба неблокирующие все работают параллельно блокирующие по очереди, как написаны то есть A<=B B<=A одновременно поменяются местами A=B B=A присвояться по очереди, в один такт, но значения не поменяются местами, Значение А потеряется фактически... Спасибо. неясно только почему компайлер ругается если в разных ветках begin/end разные назначения. Синтезировать не может? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
o_khavin 0 10 декабря, 2013 Опубликовано 10 декабря, 2013 · Жалоба Спасибо. неясно только почему компайлер ругается если в разных ветках begin/end разные назначения. Синтезировать не может? - А что будет если дёрнуть за две верёвочки одновременно? - Разве непонятно - я упаду с жёрдочки (с) один старый анекдот Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A. Fig Lee 0 10 декабря, 2013 Опубликовано 10 декабря, 2013 · Жалоба - А что будет если дёрнуть за две верёвочки одновременно? - Разве непонятно - я упаду с жёрдочки (с) один старый анекдот Спасибо, так и думал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться