Вт сен 30, 2014 08:14:30
//уберите reg перед LCD_dclk
output LCD_dclk;
//в запускающем алвайс блоке надо сделать импульс
//1 такт
start <= 1;
//1 такт
start <= 0;
//далее попробуте организовать так
reg key;
reg state;
assign LCD_dclk = (key) ? clk_1k : 0;
always @(posedge clk_1k) //такт одна микросекунда
begin
case(state)
0: begin
if (start)
begin
state <= 1;
LCD_massiv_count <= 0;
end
end
1: begin
if(LCD_massiv_count <= 72)
begin
LCD_din <= LCD_massiv[LCD_massiv_count];
LCD_massiv_count <= LCD_massiv_count + 1;
key <= 1;
end else begin
state <= 0;
key <= 0;
end
end
endcase
end
Ср окт 01, 2014 01:52:16
// LCD_driver
always @(posedge clk_1k) //такт одна микросекунда
begin
if(LCD_massiv_count <= 72)
begin
LCD_load = 0;
if(LCD_dclk == 0) // если на ноге LCD_clk = 0, то прогнать драйвер, если 1 то установить ноль.
begin
#1000 LCD_din = LCD_massiv[LCD_massiv_count];
#1000 LCD_massiv_count = LCD_massiv_count + 1;
#1000 LCD_dclk = 1;
end
else LCD_dclk = 0;
end
else
begin LCD_massiv_count <= 1; LCD_load = 1; end
end
always @(clk_1c)
begin
LCD_massiv[8:0] = encoder_binaru(min);
LCD_massiv[17:9] = encoder_binaru(d_min);
LCD_massiv[26:18] = encoder_binaru(xors);
LCD_massiv[35:27] = encoder_binaru(d_xors);
end
function reg[9:0] encoder_binaru; input wire[4:0] decimal;
case(decimal)
0: encoder_binaru = 9`b110111100;
1: encoder_binaru = 9`b000001100;
2: encoder_binaru = 9`b111011000;
3: encoder_binaru = 9`b101011100;
4: encoder_binaru = 9`b001101100;
5: encoder_binaru = 9`b101110100;
6: encoder_binaru = 9`b111110100;
7: encoder_binaru = 9`b000011100;
8: encoder_binaru = 9`b111111100;
9: encoder_binaru = 9`b101111100;
10: encoder_binaru = 9`b000000000;
default: encoder_binaru = 9`b111111111;
endcase
endfunction
Ср окт 01, 2014 08:46:10
Ср окт 01, 2014 14:41:09
Операторы присваивания в Verilog делятся на блочное «=" и внеблочное «<=". Блочное присваивание выполняется сразу, в том месте, где оно встретилось, причем переменная меняет свое значение мгновенно и это может происходить неоднакратно в одной ветви алгоритма. Внеблочное присваивание изменяет значение переменной только в момент выхода из блока.
Ср окт 01, 2014 16:29:58
Ср окт 01, 2014 17:14:26
WolfTheGrey писал(а):И это ни как не отключить?
Ср окт 01, 2014 18:34:55
Чт окт 02, 2014 08:50:49
Чт окт 02, 2014 12:36:42
А еще в квартусе не работает логический анализатор SignalTap, видишлите отключена функция TalkBack.
Чт окт 02, 2014 13:21:13
Ошибка (265013): Не удается открыть логический анализатор SignalTap II. Убедитесь, что файл лицензии существует и хранится в нужном месте. Если вы используете программное обеспечение Web Edition Quartus II, необходимо включить функцию TalkBack использовать логический анализатор SignalTap II.
// будильник
reg[3:0] bmin; //минуты
reg[3:0] bdmin; //десятые минуты
reg[3:0] bxors; //часы
reg[3:0] bdxors; //десятые часов
reg gip; //звонок
reg test;
initial begin
min = 0; dmin = 0;
xors = 0; dxors = 0;
end
assign test_clock =(test)? 1 : 0;
always @(posedge clk_1k)
begin
if((bmin == min)&(bdmin == dmin)&(bxors == xors)&(bdxors == dxors))
begin
//LCD_massiv[24] = 1;
if(gip == 0)
begin gip = 1; test <= 1; end
else
begin gip = 0; test <= 0; end
end
//else
//LCD_massiv[24] = 0;
end
Вс окт 05, 2014 05:48:36
assign clock_alarm1 =(!gip)? 0 : clk_1k;
assign clock_alarm2 = (!gip)? 0 : ~clock_alarm1;
Вс окт 05, 2014 07:21:26
Вс окт 05, 2014 15:57:00
Как думаете они выгорят, если на них подцепить Пьезозвонок типо ЗП-19?
Пт окт 17, 2014 15:07:14
Пт окт 17, 2014 18:01:30
Пт окт 17, 2014 21:51:49
module LRdecoder
(
input pin1,
input pin2,
input pin3,
input pin4,
input pin5,
input pin6,
output in2,
output in4,
output p44_1,
output p48,
output p88_2,
output p96,
output p176_4,
output p192
);
wire [6:0] pins;
assign pins = {pin6, pin5, pin4, pin3, pin2, pin1}; <- Я правильно написал эту срочку ??? Или их надо наоборот?
Сб окт 18, 2014 01:19:31