Читайте также: |
|
Двоично-десятичный счетчик (BCD counter) имеет 10 состояний.
Используются в случаях, когда необходимо подсчитать количество поступиввших импульсов и отобразить результаты в десятичной системе.
Таб. 8
Цифра | 8 4 2 1 |
0 0 0 0 | |
0 0 0 1 | |
0 0 1 0 | |
0 0 1 1 | |
0 1 0 0 | |
0 1 0 1 | |
0 1 1 0 | |
0 1 1 1 | |
1 0 0 0 | |
1 0 0 1 |
Коды 1010 – 1111 для кодирования не используются.
Двоично-десятичные счетчики могут быть построены рассмотренным выше способом. Схема одного разряда десятичного представлена на рис. 26. Счетик реализован на основе двоичного 4-разтрядного счетчика с модулем счета 16, асинхронным сбросом и синхронной загрузкой.
![]() |
Рис.26
Схема 2-разрядного двоично-десятичного счетчика представлена на рис.27.
![]() |
Рис. 27
Пример описания суммирующего двоично-десятичного двухразрядного счетчика на Verilog.
Пример 1.
module BCD_counter (clk, en, reset, out);
input clk, en, reset;
output [7:0] out;
reg [3:0] out1,out2;
reg en1;
// BCD0
always @ (posedge clk or negedge reset)
begin if (!reset) out1<=0;
else if (en)
begin if (out1==4'b1001)
begin out1<=4'b0000; en1=1; end
else out1 =out1+1; end
End
//BCD1
always @(posedge clk or negedge reset)
begin if (!reset) out2 <=0;
else if (en1) begin if (out2==4'b1001) out2<=4'b0000;
else en1=0; out2 <=out2+1; end
End
assign out ={out2,out1};
Дата добавления: 2015-09-11; просмотров: 216 | Поможем написать вашу работу | Нарушение авторских прав |