реклама на сайте
подробности

 
 
> Вопрос по работе CASE в Verilog, CASE в Verilog
jurist
сообщение Aug 11 2018, 19:53
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 11-08-18
Из: Санкт-Петербург
Пользователь №: 106 717



Всем привет!
Осваиваюсь с Verilog и с ПЛИС. Возник вопрос по работе оператора CASE.
Значение регистра dig в приведённом коде должно(в моём понимании) становиться становиться 4'b0010, либо 4'b1000, либо 4'b0001 и должно меняться в трёх случаях:
когда значение disp_dat становится 0, 1 или 4.
На деле же оно меняется и тогда, когда disp_dat становится 2 и 5. В этих случаях оно становится 4'b0010 и 4'b1001.
Но у меня даже числа такие нигде в коде не фигурируют. Вопрос: почему dig меняется и в случаях, когда disp_dat становится 2 и 5?

Прилагаю код и скриншот отладки в SignalTap Quartus 2.11
CODE

module sled(seg,dig,clock,disp_dat);
input clock;
output [7:0] seg;
output [3:0] dig;
reg [7:0] seg;
reg [3:0] dig;
output reg [3:0] disp_dat;
reg [36:0] count;


always @ (posedge clock )
begin
count = count + 1'b1;
end

always @ (count[24])
begin
disp_dat = {count[28:25]};
end
always @ (disp_dat)
begin
case (disp_dat)
4'h0 : begin
seg <= 8'hc0; //"0"
dig <= 4'b0010;
end
4'h1 : begin
seg <= 8'hf9; //"1"
dig <= 4'b1000;
end
4'h2 : begin
seg <= 8'ha4; //"2"
end
4'h3 : begin
seg <= 8'hb0; //"3"
end
4'h4 : begin
seg <= 8'h99; //"4"
dig<=4'b0001;
end
4'h5 : seg <= 8'h92; //"5"
4'h6 : seg <= 8'h82; //"6"
4'h7 : seg <= 8'hf8; //"7"
4'h8 : seg <= 8'h80; //"8"
4'h9 : seg <= 8'h90; //"9"
4'ha : seg <= 8'h88; //"a"
4'hb : seg <= 8'h83; //"b"
4'hc : seg <= 8'hc6; //"c"
4'hd : seg <= 8'ha1; //"d"
4'he : seg <= 8'h86; //"e"
4'hf : seg <= 8'h8e; //"f"
endcase

end
endmodule




Сообщение отредактировал jurist - Aug 11 2018, 19:55
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th April 2024 - 15:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016