Alexander_92 0 11 января, 2016 Опубликовано 11 января, 2016 · Жалоба Здравствуйте ! Пожалуйста, помогите разобраться с функциональной схемой модуля Verilog. Необходимо нарисовать функциональную схему по коду. Буду благодарен любым пояснениям. :help Данный модуль выделяет десятки и единицы. Кто-то подал идею, что здесь 2 каскадно-соединенных счетчика. `timescale 1ns / 1ps module CNTS_ONE( input [5:0] CNT_SEC, input [5:0] CNT_MIN, input [5:0] CNT_HOUR, output reg [3:0] CNT1, output reg [3:0] CNT2, output reg [3:0] CNT3, output reg [3:0] CNT4, output reg [3:0] CNT5, output reg [3:0] CNT6 ); always @ (CNT_SEC) begin case (CNT_SEC) 0 : begin CNT2 <= 0; CNT1 <= 0; end 1 : begin CNT2 <= 0; CNT1 <= 1; end 2 : begin CNT2 <= 0; CNT1 <= 2; end 3 : begin CNT2 <= 0; CNT1 <= 3; end 4 : begin CNT2 <= 0; CNT1 <= 4; end 5 : begin CNT2 <= 0; CNT1 <= 5; end 6 : begin CNT2 <= 0; CNT1 <= 6; end 7 : begin CNT2 <= 0; CNT1 <= 7; end 8 : begin CNT2 <= 0; CNT1 <= 8; end 9 : begin CNT2 <= 0; CNT1 <= 9; end 10 : begin CNT2 <= 1; CNT1 <= 0; end 11 : begin CNT2 <= 1; CNT1 <= 1; end 12 : begin CNT2 <= 1; CNT1 <= 2; end 13 : begin CNT2 <= 1; CNT1 <= 3; end 14 : begin CNT2 <= 1; CNT1 <= 4; end 15 : begin CNT2 <= 1; CNT1 <= 5; end 16 : begin CNT2 <= 1; CNT1 <= 6; end 17 : begin CNT2 <= 1; CNT1 <= 7; end 18 : begin CNT2 <= 1; CNT1 <= 8; end 19 : begin CNT2 <= 1; CNT1 <= 9; end 20 : begin CNT2 <= 2; CNT1 <= 0; end 21 : begin CNT2 <= 2; CNT1 <= 1; end 22 : begin CNT2 <= 2; CNT1 <= 2; end 23 : begin CNT2 <= 2; CNT1 <= 3; end 24 : begin CNT2 <= 2; CNT1 <= 4; end 25 : begin CNT2 <= 2; CNT1 <= 5; end 26 : begin CNT2 <= 2; CNT1 <= 6; end 27 : begin CNT2 <= 2; CNT1 <= 7; end 28 : begin CNT2 <= 2; CNT1 <= 8; end 29 : begin CNT2 <= 2; CNT1 <= 9; end 30 : begin CNT2 <= 3; CNT1 <= 0; end 31 : begin CNT2 <= 3; CNT1 <= 1; end 32 : begin CNT2 <= 3; CNT1 <= 2; end 33 : begin CNT2 <= 3; CNT1 <= 3; end 34 : begin CNT2 <= 3; CNT1 <= 4; end 35 : begin CNT2 <= 3; CNT1 <= 5; end 36 : begin CNT2 <= 3; CNT1 <= 6; end 37 : begin CNT2 <= 3; CNT1 <= 7; end 38 : begin CNT2 <= 3; CNT1 <= 8; end 39 : begin CNT2 <= 3; CNT1 <= 9; end 40 : begin CNT2 <= 4; CNT1 <= 0; end 41 : begin CNT2 <= 4; CNT1 <= 1; end 42 : begin CNT2 <= 4; CNT1 <= 2; end 43 : begin CNT2 <= 4; CNT1 <= 3; end 44 : begin CNT2 <= 4; CNT1 <= 4; end 45 : begin CNT2 <= 4; CNT1 <= 5; end 46 : begin CNT2 <= 4; CNT1 <= 6; end 47 : begin CNT2 <= 4; CNT1 <= 7; end 48 : begin CNT2 <= 4; CNT1 <= 8; end 49 : begin CNT2 <= 4; CNT1 <= 9; end 50 : begin CNT2 <= 5; CNT1 <= 0; end 51 : begin CNT2 <= 5; CNT1 <= 1; end 52 : begin CNT2 <= 5; CNT1 <= 2; end 53 : begin CNT2 <= 5; CNT1 <= 3; end 54 : begin CNT2 <= 5; CNT1 <= 4; end 55 : begin CNT2 <= 5; CNT1 <= 5; end 56 : begin CNT2 <= 5; CNT1 <= 6; end 57 : begin CNT2 <= 5; CNT1 <= 7; end 58 : begin CNT2 <= 5; CNT1 <= 8; end 59 : begin CNT2 <= 5; CNT1 <= 9; end default : begin CNT2 <= 0; CNT1 <= 0; end endcase end always @ (CNT_MIN) begin case (CNT_MIN) 0 : begin CNT4 <= 0; CNT3 <= 0; end 1 : begin CNT4 <= 0; CNT3 <= 1; end 2 : begin CNT4 <= 0; CNT3 <= 2; end 3 : begin CNT4 <= 0; CNT3 <= 3; end 4 : begin CNT4 <= 0; CNT3 <= 4; end 5 : begin CNT4 <= 0; CNT3 <= 5; end 6 : begin CNT4 <= 0; CNT3 <= 6; end 7 : begin CNT4 <= 0; CNT3 <= 7; end 8 : begin CNT4 <= 0; CNT3 <= 8; end 9 : begin CNT4 <= 0; CNT3 <= 9; end 10 : begin CNT4 <= 1; CNT3 <= 0; end 11 : begin CNT4 <= 1; CNT3 <= 1; end 12 : begin CNT4 <= 1; CNT3 <= 2; end 13 : begin CNT4 <= 1; CNT3 <= 3; end 14 : begin CNT4 <= 1; CNT3 <= 4; end 15 : begin CNT4 <= 1; CNT3 <= 5; end 16 : begin CNT4 <= 1; CNT3 <= 6; end 17 : begin CNT4 <= 1; CNT3 <= 7; end 18 : begin CNT4 <= 1; CNT3 <= 8; end 19 : begin CNT4 <= 1; CNT3 <= 9; end 20 : begin CNT4 <= 2; CNT3 <= 0; end 21 : begin CNT4 <= 2; CNT3 <= 1; end 22 : begin CNT4 <= 2; CNT3 <= 2; end 23 : begin CNT4 <= 2; CNT3 <= 3; end 24 : begin CNT4 <= 2; CNT3 <= 4; end 25 : begin CNT4 <= 2; CNT3 <= 5; end 26 : begin CNT4 <= 2; CNT3 <= 6; end 27 : begin CNT4 <= 2; CNT3 <= 7; end 28 : begin CNT4 <= 2; CNT3 <= 8; end 29 : begin CNT4 <= 2; CNT3 <= 9; end 30 : begin CNT4 <= 3; CNT3 <= 0; end 31 : begin CNT4 <= 3; CNT3 <= 1; end 32 : begin CNT4 <= 3; CNT3 <= 2; end 33 : begin CNT4 <= 3; CNT3 <= 3; end 34 : begin CNT4 <= 3; CNT3 <= 4; end 35 : begin CNT4 <= 3; CNT3 <= 5; end 36 : begin CNT4 <= 3; CNT3 <= 6; end 37 : begin CNT4 <= 3; CNT3 <= 7; end 38 : begin CNT4 <= 3; CNT3 <= 8; end 39 : begin CNT4 <= 3; CNT3 <= 9; end 40 : begin CNT4 <= 4; CNT3 <= 0; end 41 : begin CNT4 <= 4; CNT3 <= 1; end 42 : begin CNT4 <= 4; CNT3 <= 2; end 43 : begin CNT4 <= 4; CNT3 <= 3; end 44 : begin CNT4 <= 4; CNT3 <= 4; end 45 : begin CNT4 <= 4; CNT3 <= 5; end 46 : begin CNT4 <= 4; CNT3 <= 6; end 47 : begin CNT4 <= 4; CNT3 <= 7; end 48 : begin CNT4 <= 4; CNT3 <= 8; end 49 : begin CNT4 <= 4; CNT3 <= 9; end 50 : begin CNT4 <= 5; CNT3 <= 0; end 51 : begin CNT4 <= 5; CNT3 <= 1; end 52 : begin CNT4 <= 5; CNT3 <= 2; end 53 : begin CNT4 <= 5; CNT3 <= 3; end 54 : begin CNT4 <= 5; CNT3 <= 4; end 55 : begin CNT4 <= 5; CNT3 <= 5; end 56 : begin CNT4 <= 5; CNT3 <= 6; end 57 : begin CNT4 <= 5; CNT3 <= 7; end 58 : begin CNT4 <= 5; CNT3 <= 8; end 59 : begin CNT4 <= 5; CNT3 <= 9; end default : begin CNT4 <= 0; CNT3 <= 0; end endcase end always @ (CNT_HOUR) begin case (CNT_HOUR) 0 : begin CNT6 <= 0; CNT5 <= 0; end 1 : begin CNT6 <= 0; CNT5 <= 1; end 2 : begin CNT6 <= 0; CNT5 <= 2; end 3 : begin CNT6 <= 0; CNT5 <= 3; end 4 : begin CNT6 <= 0; CNT5 <= 4; end 5 : begin CNT6 <= 0; CNT5 <= 5; end 6 : begin CNT6 <= 0; CNT5 <= 6; end 7 : begin CNT6 <= 0; CNT5 <= 7; end 8 : begin CNT6 <= 0; CNT5 <= 8; end 9 : begin CNT6 <= 0; CNT5 <= 9; end 10 : begin CNT6 <= 1; CNT5 <= 0; end 11 : begin CNT6 <= 1; CNT5 <= 1; end 12 : begin CNT6 <= 1; CNT5 <= 2; end 13 : begin CNT6 <= 1; CNT5 <= 3; end 14 : begin CNT6 <= 1; CNT5 <= 4; end 15 : begin CNT6 <= 1; CNT5 <= 5; end 16 : begin CNT6 <= 1; CNT5 <= 6; end 17 : begin CNT6 <= 1; CNT5 <= 7; end 18 : begin CNT6 <= 1; CNT5 <= 8; end 19 : begin CNT6 <= 1; CNT5 <= 9; end 20 : begin CNT6 <= 2; CNT5 <= 0; end 21 : begin CNT6 <= 2; CNT5 <= 1; end 22 : begin CNT6 <= 2; CNT5 <= 2; end 23 : begin CNT6 <= 2; CNT5 <= 3; end default : begin CNT6 <= 0; CNT5 <= 0; end endcase end endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
masics 0 11 января, 2016 Опубликовано 11 января, 2016 · Жалоба Нет здесь никаких счётчиков. Просто отдельные десятичные декодеры. Еще и написанные не по правилам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
agregat 0 12 января, 2016 Опубликовано 12 января, 2016 · Жалоба Не знаяю Verilog, но... Судя по названиям это обыкновенные часы, считают от 0 до 60 для секунд, минут и часов соответственно. По значению в CNT_SEC 0..59 заполняются регистр CNT2 = десятки секунд, CNT1 = единицы секунд По значению в CNT_MIN 0..59 заполняются регистр CNT4 = десятки минут, CNT3 = единицы минут По значению в CNT_HOUR 0..23 заполняются регистр CNT6 = десятки часов, CNT5 = единицы часов Никаких счетчиков, тупое назначение напрямую. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dima_spb 0 12 января, 2016 Опубликовано 12 января, 2016 · Жалоба Здравствуйте ! Пожалуйста, помогите разобраться с функциональной схемой модуля Verilog. Необходимо нарисовать функциональную схему по коду. Буду благодарен любым пояснениям. :help Данный модуль выделяет десятки и единицы. Кто-то подал идею, что здесь 2 каскадно-соединенных счетчика. `timescale 1ns / 1ps module CNTS_ONE( input [5:0] CNT_SEC, input [5:0] CNT_MIN, input [5:0] CNT_HOUR, output reg [3:0] CNT1, output reg [3:0] CNT2, output reg [3:0] CNT3, output reg [3:0] CNT4, output reg [3:0] CNT5, output reg [3:0] CNT6 ); always @ (CNT_SEC) begin case (CNT_SEC) 0 : begin CNT2 <= 0; CNT1 <= 0; end 1 : begin CNT2 <= 0; CNT1 <= 1; end 2 : begin CNT2 <= 0; CNT1 <= 2; end 3 : begin CNT2 <= 0; CNT1 <= 3; end 4 : begin CNT2 <= 0; CNT1 <= 4; end 5 : begin CNT2 <= 0; CNT1 <= 5; end 6 : begin CNT2 <= 0; CNT1 <= 6; end 7 : begin CNT2 <= 0; CNT1 <= 7; end 8 : begin CNT2 <= 0; CNT1 <= 8; end 9 : begin CNT2 <= 0; CNT1 <= 9; end 10 : begin CNT2 <= 1; CNT1 <= 0; end 11 : begin CNT2 <= 1; CNT1 <= 1; end 12 : begin CNT2 <= 1; CNT1 <= 2; end 13 : begin CNT2 <= 1; CNT1 <= 3; end 14 : begin CNT2 <= 1; CNT1 <= 4; end 15 : begin CNT2 <= 1; CNT1 <= 5; end 16 : begin CNT2 <= 1; CNT1 <= 6; end 17 : begin CNT2 <= 1; CNT1 <= 7; end 18 : begin CNT2 <= 1; CNT1 <= 8; end 19 : begin CNT2 <= 1; CNT1 <= 9; end 20 : begin CNT2 <= 2; CNT1 <= 0; end 21 : begin CNT2 <= 2; CNT1 <= 1; end 22 : begin CNT2 <= 2; CNT1 <= 2; end 23 : begin CNT2 <= 2; CNT1 <= 3; end 24 : begin CNT2 <= 2; CNT1 <= 4; end 25 : begin CNT2 <= 2; CNT1 <= 5; end 26 : begin CNT2 <= 2; CNT1 <= 6; end 27 : begin CNT2 <= 2; CNT1 <= 7; end 28 : begin CNT2 <= 2; CNT1 <= 8; end 29 : begin CNT2 <= 2; CNT1 <= 9; end 30 : begin CNT2 <= 3; CNT1 <= 0; end 31 : begin CNT2 <= 3; CNT1 <= 1; end 32 : begin CNT2 <= 3; CNT1 <= 2; end 33 : begin CNT2 <= 3; CNT1 <= 3; end 34 : begin CNT2 <= 3; CNT1 <= 4; end 35 : begin CNT2 <= 3; CNT1 <= 5; end 36 : begin CNT2 <= 3; CNT1 <= 6; end 37 : begin CNT2 <= 3; CNT1 <= 7; end 38 : begin CNT2 <= 3; CNT1 <= 8; end 39 : begin CNT2 <= 3; CNT1 <= 9; end 40 : begin CNT2 <= 4; CNT1 <= 0; end 41 : begin CNT2 <= 4; CNT1 <= 1; end 42 : begin CNT2 <= 4; CNT1 <= 2; end 43 : begin CNT2 <= 4; CNT1 <= 3; end 44 : begin CNT2 <= 4; CNT1 <= 4; end 45 : begin CNT2 <= 4; CNT1 <= 5; end 46 : begin CNT2 <= 4; CNT1 <= 6; end 47 : begin CNT2 <= 4; CNT1 <= 7; end 48 : begin CNT2 <= 4; CNT1 <= 8; end 49 : begin CNT2 <= 4; CNT1 <= 9; end 50 : begin CNT2 <= 5; CNT1 <= 0; end 51 : begin CNT2 <= 5; CNT1 <= 1; end 52 : begin CNT2 <= 5; CNT1 <= 2; end 53 : begin CNT2 <= 5; CNT1 <= 3; end 54 : begin CNT2 <= 5; CNT1 <= 4; end 55 : begin CNT2 <= 5; CNT1 <= 5; end 56 : begin CNT2 <= 5; CNT1 <= 6; end 57 : begin CNT2 <= 5; CNT1 <= 7; end 58 : begin CNT2 <= 5; CNT1 <= 8; end 59 : begin CNT2 <= 5; CNT1 <= 9; end default : begin CNT2 <= 0; CNT1 <= 0; end endcase end always @ (CNT_MIN) begin case (CNT_MIN) 0 : begin CNT4 <= 0; CNT3 <= 0; end 1 : begin CNT4 <= 0; CNT3 <= 1; end 2 : begin CNT4 <= 0; CNT3 <= 2; end 3 : begin CNT4 <= 0; CNT3 <= 3; end 4 : begin CNT4 <= 0; CNT3 <= 4; end 5 : begin CNT4 <= 0; CNT3 <= 5; end 6 : begin CNT4 <= 0; CNT3 <= 6; end 7 : begin CNT4 <= 0; CNT3 <= 7; end 8 : begin CNT4 <= 0; CNT3 <= 8; end 9 : begin CNT4 <= 0; CNT3 <= 9; end 10 : begin CNT4 <= 1; CNT3 <= 0; end 11 : begin CNT4 <= 1; CNT3 <= 1; end 12 : begin CNT4 <= 1; CNT3 <= 2; end 13 : begin CNT4 <= 1; CNT3 <= 3; end 14 : begin CNT4 <= 1; CNT3 <= 4; end 15 : begin CNT4 <= 1; CNT3 <= 5; end 16 : begin CNT4 <= 1; CNT3 <= 6; end 17 : begin CNT4 <= 1; CNT3 <= 7; end 18 : begin CNT4 <= 1; CNT3 <= 8; end 19 : begin CNT4 <= 1; CNT3 <= 9; end 20 : begin CNT4 <= 2; CNT3 <= 0; end 21 : begin CNT4 <= 2; CNT3 <= 1; end 22 : begin CNT4 <= 2; CNT3 <= 2; end 23 : begin CNT4 <= 2; CNT3 <= 3; end 24 : begin CNT4 <= 2; CNT3 <= 4; end 25 : begin CNT4 <= 2; CNT3 <= 5; end 26 : begin CNT4 <= 2; CNT3 <= 6; end 27 : begin CNT4 <= 2; CNT3 <= 7; end 28 : begin CNT4 <= 2; CNT3 <= 8; end 29 : begin CNT4 <= 2; CNT3 <= 9; end 30 : begin CNT4 <= 3; CNT3 <= 0; end 31 : begin CNT4 <= 3; CNT3 <= 1; end 32 : begin CNT4 <= 3; CNT3 <= 2; end 33 : begin CNT4 <= 3; CNT3 <= 3; end 34 : begin CNT4 <= 3; CNT3 <= 4; end 35 : begin CNT4 <= 3; CNT3 <= 5; end 36 : begin CNT4 <= 3; CNT3 <= 6; end 37 : begin CNT4 <= 3; CNT3 <= 7; end 38 : begin CNT4 <= 3; CNT3 <= 8; end 39 : begin CNT4 <= 3; CNT3 <= 9; end 40 : begin CNT4 <= 4; CNT3 <= 0; end 41 : begin CNT4 <= 4; CNT3 <= 1; end 42 : begin CNT4 <= 4; CNT3 <= 2; end 43 : begin CNT4 <= 4; CNT3 <= 3; end 44 : begin CNT4 <= 4; CNT3 <= 4; end 45 : begin CNT4 <= 4; CNT3 <= 5; end 46 : begin CNT4 <= 4; CNT3 <= 6; end 47 : begin CNT4 <= 4; CNT3 <= 7; end 48 : begin CNT4 <= 4; CNT3 <= 8; end 49 : begin CNT4 <= 4; CNT3 <= 9; end 50 : begin CNT4 <= 5; CNT3 <= 0; end 51 : begin CNT4 <= 5; CNT3 <= 1; end 52 : begin CNT4 <= 5; CNT3 <= 2; end 53 : begin CNT4 <= 5; CNT3 <= 3; end 54 : begin CNT4 <= 5; CNT3 <= 4; end 55 : begin CNT4 <= 5; CNT3 <= 5; end 56 : begin CNT4 <= 5; CNT3 <= 6; end 57 : begin CNT4 <= 5; CNT3 <= 7; end 58 : begin CNT4 <= 5; CNT3 <= 8; end 59 : begin CNT4 <= 5; CNT3 <= 9; end default : begin CNT4 <= 0; CNT3 <= 0; end endcase end always @ (CNT_HOUR) begin case (CNT_HOUR) 0 : begin CNT6 <= 0; CNT5 <= 0; end 1 : begin CNT6 <= 0; CNT5 <= 1; end 2 : begin CNT6 <= 0; CNT5 <= 2; end 3 : begin CNT6 <= 0; CNT5 <= 3; end 4 : begin CNT6 <= 0; CNT5 <= 4; end 5 : begin CNT6 <= 0; CNT5 <= 5; end 6 : begin CNT6 <= 0; CNT5 <= 6; end 7 : begin CNT6 <= 0; CNT5 <= 7; end 8 : begin CNT6 <= 0; CNT5 <= 8; end 9 : begin CNT6 <= 0; CNT5 <= 9; end 10 : begin CNT6 <= 1; CNT5 <= 0; end 11 : begin CNT6 <= 1; CNT5 <= 1; end 12 : begin CNT6 <= 1; CNT5 <= 2; end 13 : begin CNT6 <= 1; CNT5 <= 3; end 14 : begin CNT6 <= 1; CNT5 <= 4; end 15 : begin CNT6 <= 1; CNT5 <= 5; end 16 : begin CNT6 <= 1; CNT5 <= 6; end 17 : begin CNT6 <= 1; CNT5 <= 7; end 18 : begin CNT6 <= 1; CNT5 <= 8; end 19 : begin CNT6 <= 1; CNT5 <= 9; end 20 : begin CNT6 <= 2; CNT5 <= 0; end 21 : begin CNT6 <= 2; CNT5 <= 1; end 22 : begin CNT6 <= 2; CNT5 <= 2; end 23 : begin CNT6 <= 2; CNT5 <= 3; end default : begin CNT6 <= 0; CNT5 <= 0; end endcase end endmodule Дорогой друг! Здесь все очень даже просто. То что описано в прикрепленном к посту коде есть ни что иное как обычные три дешифратора. Как известно, дешифратор необходим для дешифрации кода. В вашем случае дешифрируются CNT_SEC [5:0], CNT_MIN [5:0], CNT_HOUR [5:0]. Отсюда и три дешифратора. Эти три дешифратора работают параллельно и независимо друг от друга. Рисуете три квадратика и указываете с левой стороны их входы (CNT_SEC [5:0], CNT_MIN [5:0], CNT_HOUR [5:0]). Выходами вашего модуля является регистры (6 четырехразрядных регистров) - это вы рисуете с правой стороны. Первый дешифратор работает с кодами следующего диапазона: 0..59 Второй дешифратор работает с кодами следующего диапазона: 0..59 Третий дешифратор работает с кодами следующего диапазона: 0..23 Т.е. каждому из кодов соответствует опреределенный управляющий сигнал, который в свою очередь записывает в выходной регистр число. В итоге получается у Вас дешифратор + выходные регистры, в которые записываются различные константы под управлением дешифратора. Предлагаю Вам начать рисовать структуры, а я уже подправлю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexander_92 0 20 января, 2016 Опубликовано 20 января, 2016 · Жалоба Спасибо, но не совсем понятно мне с управляющими сигналами. Я знаю, что такое дешифратор и регистры, но не улавливаю вот именно связь выхода дешифратора (от 0 до 9 ?) с регистрами. Дорогой друг! Здесь все очень даже просто. То что описано в прикрепленном к посту коде есть ни что иное как обычные три дешифратора. Как известно, дешифратор необходим для дешифрации кода. В вашем случае дешифрируются CNT_SEC [5:0], CNT_MIN [5:0], CNT_HOUR [5:0]. Отсюда и три дешифратора. Эти три дешифратора работают параллельно и независимо друг от друга. Рисуете три квадратика и указываете с левой стороны их входы (CNT_SEC [5:0], CNT_MIN [5:0], CNT_HOUR [5:0]). Выходами вашего модуля является регистры (6 четырехразрядных регистров) - это вы рисуете с правой стороны. Первый дешифратор работает с кодами следующего диапазона: 0..59 Второй дешифратор работает с кодами следующего диапазона: 0..59 Третий дешифратор работает с кодами следующего диапазона: 0..23 Т.е. каждому из кодов соответствует опреределенный управляющий сигнал, который в свою очередь записывает в выходной регистр число. В итоге получается у Вас дешифратор + выходные регистры, в которые записываются различные константы под управлением дешифратора. Предлагаю Вам начать рисовать структуры, а я уже подправлю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
likeasm 0 20 января, 2016 Опубликовано 20 января, 2016 · Жалоба Вспомнилась фраза из Ералаша "Тут рыбы нет". Так вот и тут, в вашей схеме, нет регистров, а только логика. Т.е на входы подали воздействие и на выходе получили результат. И замените "<=" на "=". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
drozel 0 20 января, 2016 Опубликовано 20 января, 2016 (изменено) · Жалоба Дык это же bin->BCD, 3 курс университета.. Я, помнится, в то время, его на верилоге через деление описывал) Интересно скормить синтезатору, наверняка можно и более компактно описать. Ну, хотя бы вынести кусок в модуль, ведь секундный и минутный - одинаковые Изменено 20 января, 2016 пользователем drozel Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dima_spb 0 21 января, 2016 Опубликовано 21 января, 2016 · Жалоба Так вот и тут, в вашей схеме, нет регистров, а только логика. Не путайте человека!!! Тут есть регистры. output reg [3:0] CNT1, output reg [3:0] CNT2, output reg [3:0] CNT3, output reg [3:0] CNT4, output reg [3:0] CNT5, output reg [3:0] CNT6 ); Спасибо, но не совсем понятно мне с управляющими сигналами. Я знаю, что такое дешифратор и регистры, но не улавливаю вот именно связь выхода дешифратора (от 0 до 9 ?) с регистрами. В зависимости от состояния входа дешифратора в выходной регистр записывается фиксированное значение. Понятней стало? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
masics 0 21 января, 2016 Опубликовано 21 января, 2016 · Жалоба Не путайте человека!!! Тут есть регистры. Это не регистры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dima_spb 0 21 января, 2016 Опубликовано 21 января, 2016 · Жалоба Это не регистры. А что же это? =))))))))))))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
masics 0 21 января, 2016 Опубликовано 21 января, 2016 · Жалоба А что же это? =))))))))))))) Это возможность делать присвоения внутри блока "always". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dima_spb 0 21 января, 2016 Опубликовано 21 января, 2016 · Жалоба Это возможность делать присвоения внутри блока "always". Да уж. интересная формулировка=))) А ваши руки это не руки, а возможность нажимать на кнопки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
masics 0 21 января, 2016 Опубликовано 21 января, 2016 · Жалоба Да уж. интересная формулировка=))) А ваши руки это не руки, а возможность нажимать на кнопки. не нравится формулировка - читайте спеки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
drozel 0 21 января, 2016 Опубликовано 21 января, 2016 · Жалоба Блин, регистры не регистры. В коде это регистры, после синтеза регистров не будет, они сделаны для возможности присвоения в always, как сказал masics. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dima_spb 0 21 января, 2016 Опубликовано 21 января, 2016 · Жалоба Блин, регистры не регистры. В коде это регистры, после синтеза регистров не будет, они сделаны для возможности присвоения в always, как сказал masics. Чем Вам "регистры не регистры" та мешают? Вопрос не в этом был... Объясните подробнее автору ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться