Сб окт 25, 2014 02:06:02
module summator (
input clock,
input button1, //+
input button2, //-
input button3, //<<
input button4, //>>
input button5, //
output reg[7:0] summa
);
always @(negedge button1 or posedge clock)
begin
summa = summa + 1;
end
always @(negedge button2)
begin
summa = summa - 1;
end
always @(negedge button3)
begin
summa = summa << 1;
end
always @(negedge button4)
begin
summa = summa >> 1;
end
endmodule
Сб окт 25, 2014 10:51:04
Сб окт 25, 2014 13:55:41
Сб окт 25, 2014 14:32:17
тактируйте алвайс от одной частоты
Сб окт 25, 2014 14:45:18
Давайте поставим.WolfTheGrey писал(а):Давайте поставим жирную точку в вопросе конфликтов, а именно как мыслить в момент написания Verilog кода.
Сб окт 25, 2014 15:19:13
Сб окт 25, 2014 16:13:19
WolfTheGrey писал(а):ак нельзя! Суть не в кнопках, код кнопок приведен всего лишь как упрощеный пример. Суть вопроса в конфликте драйверов. Как правильно думать при написания кода.
Вот более сложная задача:
этап 1 - записать звук с АЦП wm8731 в SDRAM
этап2 - воспроизвести звук из SDRAM в ЦАП wm8731.
Уже 5 клоков насчитал с куево тучей независимых алвайс блоков. Как такое пишется?
bfgroup писал(а):юзайте тристейты или мультиплексоры
Вс окт 26, 2014 11:32:32
WolfTheGrey писал(а):Уже 5 клоков насчитал с куево тучей независимых алвайс блоков. Как такое пишется?
always @(posedge clock)
begin
case (rstate)
rWait:
begin
if (we) // Wait until a new sample is written to memory
begin
rstate <= rAddr;
counter <= NTAPS[ADDRBITS:0] + 1'd1; // count samples and pipeline latency
raddr <= waddr; // read address -> newest sample
caddr <= 1'd0; // start at coefficient zero
Raccum <= 1'd0;
Iaccum <= 1'd0;
Rmult <= 1'd0;
Imult <= 1'd0;
end
end
rAddr: // prime the memory pipeline
begin
rstate <= rAddrA;
next_addr;
end
rAddrA:
begin
rstate <= rAddrB;
next_addr;
end
rAddrB:
begin
rstate <= rRun;
next_addr;
end
rRun:
begin // main pipeline here
next_addr;
Rmult <= q_real * reg_coef;
Imult <= q_imag * reg_coef;
// Raccum <= Raccum + Rmult[MBITS*2-1 -: ABITS];
// Iaccum <= Iaccum + Imult[MBITS*2-1 -: ABITS];
// Correction by Phil, VK6APH, to remove DC spur
Raccum <= Raccum + Rmult[MBITS*2-1 -: ABITS] + Rmult[MBITS*2-1-ABITS];
Iaccum <= Iaccum + Imult[MBITS*2-1 -: ABITS] + Imult[MBITS*2-1-ABITS];
counter <= counter - 1'd1;
if (counter == 0)
rstate <= rWait;
end
endcase
end
Сб апр 18, 2015 15:11:54
Вт ноя 17, 2015 17:09:41
Вт ноя 17, 2015 19:55:29
Взявший Паяльник писал(а):кто нибудь научите verilog сам пытался не разобрался
Чт ноя 19, 2015 15:36:54
Чт ноя 19, 2015 18:13:08
Взявший Паяльник писал(а):интернет ,но ничего путнего нет. думал здесь кто подскажет
Сб ноя 21, 2015 09:24:33
Вс ноя 22, 2015 11:55:19
Вс ноя 22, 2015 12:17:28
Вс ноя 22, 2015 12:23:53
Вт дек 22, 2015 02:04:45
Вт дек 22, 2015 18:31:24
Pe3ucTop писал(а):Подход в ПЛИС не такой как в МК, и соответственно все описания стремятся к одновременному выполнению.
То есть и подходить надо с пониманием что все кнопки могут быть нажаты разом и как же тогда реагировать всем действиям ??
Ответ - Никак !
...