Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программируемая логика: ПЛИС, ПАИС
Войти
Регистрация
Восстановить пароль
 
Alexey_tmb
0 / 0 / 0
Регистрация: 01.08.2012
Сообщений: 9
1

Семисегментный индикатор verilog

23.10.2018, 17:02. Просмотров 75. Ответов 2
Метки нет (Все метки)

Добрый вечер!
Вопрос по коду:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
module Indicator_Sum_Count(
 output reg [23:0]segments,
 input clk
);
 
reg [3:0]code;
reg [31:0] count;
 
 
always @(posedge clk)
begin
  case(code)
4'd1:segments  = 8'b11101011;//1
4'd2:segments  = 8'b10001100;//2
4'd3:segments  = 8'b10001001;//3
4'd4:segments  = 8'b00101011;//4
4'd5:segments  = 8'b00011001;//5
4'd6:segments  = 8'b00011000;//6
4'd7:segments  = 8'b11001011;//7
4'd8:segments  = 8'b00001000;//8
4'd9:segments  = 8'b00001001;//9
4'd10:segments = 8'b01001000;//0
  default:
   segments = 8'b11111111;
endcase
 
end
 
always @(posedge clk)
begin
 
if (count > 100000000)
begin
code = 4'd11;
count = 0;
end
else
if (count > 90000000 & count < 100000000)
code = 4'd1;
if (count > 80000000 & count < 90000000)
code <= 4'd2;
if (count > 70000000 & count < 80000000)
code <= 4'd3;
if (count > 60000000 & count < 70000000)
code <= 4'd4;
if (count > 50000000 & count < 60000000)
code <= 4'd5;
if (count > 40000000 & count < 50000000)
code <= 4'd6;
if (count > 30000000 & count < 40000000)
code <= 4'd7;
if (count > 20000000 & count < 30000000)
code <= 4'd8;
if (count > 1 & count < 20000000)
code <= 4'd9;
count <= count + 1;
 
end
endmodule
Пытаюсь реализовать индикацию от 0 до 9 с задержкой при помощи счётчика, как правильно описать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2018, 17:02
Ответы с готовыми решениями:

Семисегментный индикатор
Здравствуйте.У меня было задание создать прошивку для семисегментного индикатора от 0 до F,для...

Вывод результата на семисегментный индикатор (quartus 2,сумматор)
Доброго дня!Если кто может помочь буду признателен. Есть 8 битный сумматор на входе 2-ве 8-ми...

VHDL-Verilog
Есть задание,реализовать защелку с входом разрешения. Есть вот такая таблица истинности: ...

Большие числа в Verilog
Здравствуйте. Задача: требуется счётчик, который будет сбрасываться в определенный момент времени,...

Бегущая гирлянда на Verilog
Кто знает как сделать бегущую гирлянду из 8 светодиодов, а конкретнее как реализовать задержку в...

2
alexey6689
56 / 33 / 9
Регистрация: 15.11.2012
Сообщений: 179
Завершенные тесты: 1
24.10.2018, 01:46 2
Указанный вами код в Quartus собирается. Xilinx ISE может начать ругаться на блокирующие и неблокирующие присваивания одновременно.

Несколько замечаний. Не используйте "блокирующие присваивания". Во всех присваиваниях замените XX = YY на XX <= YY. В некоторых случаях у вас так, кстати, и сделано.
Нет смысла использовать выражения вида if (count > 70000000 & count < 80000000), достаточно написать if (count == 70000000). Более того, вообще нет смысла делать такие множественные сравнения - ведь можно просто досчитывать до 10000000, сбрасывать счетчик и увеличивать code на единицу.
Видимо, разрядов индикации ожидается 3, хотя здесь реализован только 1. Тогда вместо code я бы завел code[3] и увеличивал бы их значения поразрядно - if (code[0]==9) begin code[0]<=0; code[1]<=code[1] + 1; end и еще раз для следующей пары.
Далее трижды включаете модуль case, где в первом пишете segments[7:0] <=, во втором - segments[15:8] <=, в третьем - segments[23:16] <=.
0
Alexey_tmb
0 / 0 / 0
Регистрация: 01.08.2012
Сообщений: 9
07.11.2018, 21:50  [ТС] 3
to:alexey6689
Спасибо за помощь!
Буду разбираться...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2018, 21:50

Verilog. Битстаффинг и дестаффинг
Попытался я сымитировать битстаффинг (предупреждение появления последовательностей из 5 нулей или...

Передатчик UART на Verilog
Всем привет! Кто-нибудь может помочь с созданием UART передатчика на Verilog. Примерно по таким...

Verilog первый код
вообщем решил разобраться с iverilog'ом написал следующий код описывающий 64 битную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru