Перейти к содержанию
    

nopak

Участник
  • Постов

    15
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о nopak

  • Звание
    Участник
    Участник

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. input reg [N - 1 : 0] dataIn, // Почему reg ? изначально было wire но тогда не передавались данные. dataIn всё время был в z. // А что будет с сигналом posRead когда writeCMD = 0 ? Это LATCH... Ну он не должен меняться. LATCH это страшно?. сильно плохо? posWrite = posWrite + 1; // Предполагается счетчик. Вот только это не счетчик... а что же тогда? и ведёт себя вроде бы логично // Собственно тут та-же фигня: без клока одни латчи. клок не поменял поведение модуля
  2. Спешил. У моделсима странные отношения к русским буквам. Те в моделсиме нигде потом не видятся. А обычные (анси, утф8) в нём каракули. отмазка не ахти какая.
  3. Написал очередь на верилоге. Ни как не могу понять почему она так себя ведёт. Почему были пропущены начальные данные. Результаты в присоединённой картинке. Помогите разобраться очередь module queue #( parameter N = 8, // разрядность данных count =16 ) ( input rst, input clk, input nextRead, input writeCMD, input reg [N-1:0] dataIn, output reg [N-1:0] dataOut ); reg [N-1:0] posRead; reg [N-1:0] posWrite; reg [N-1:0] state; reg [N-1:0] nextState; localparam RESET =0; localparam IDLE = 1; localparam WORK = 2; reg [N-1:0] data[count-1 : 0] ; //always @(posedge clk) always @* begin case (state) RESET: begin nextState = IDLE; posWrite = 0; posRead = 0; dataOut = 0; end IDLE: begin if (writeCMD) begin posRead = posWrite; nextState = WORK; data[posWrite] = dataIn; posWrite = posWrite + 1; end else begin end end WORK: begin if (writeCMD) begin nextState = WORK; data[posWrite] = dataIn; posWrite = posWrite + 1; end if (nextRead) begin dataOut = data[posRead]; posRead = posRead + 1; if (posRead == posWrite) nextState = IDLE; end end default: nextState = IDLE; endcase end always @(posedge rst or posedge clk) begin if (rst) state <= RESET; else state <= nextState; end endmodule тест module test_queue; localparam N = 8; localparam count =16; localparam cmdCount = 24; reg clk; reg reset; wire res; reg [3:0]rst_delay = 0; reg [8:0] cnt =0; reg writeCmd; reg readCmd; reg [N-1:0] data [count -1:0]; reg [N-1:0] writeData; wire [N-1:0] readData; reg [cmdCount -1 : 0] doWrite; reg [cmdCount -1 : 0] doRead; initial begin clk = 0; reset =0; data[0] = 1; data[1] = 2; data[2] = 3; data[3] = 4; data[4] = 5; data[5] = 6; data[6] = 7; data[7] = 8; data[8] = 101; data[9] = 3; data[10] = 6; data[11] = 55; data[12] = 3; data[13] = 2; data[14] = 0; data[15] = 1; doWrite = 24'b1101100111010011100; doRead = 24'b0010001101100111011; end always begin #10 clk = ~clk; end always @(posedge clk) begin rst_delay <= { rst_delay[2:0], 1'b1 }; doWrite[cmdCount -1 : 1] <= doWrite[cmdCount -2 : 0]; doRead[cmdCount -1 : 1] <= doRead[cmdCount -2 : 0]; writeCmd = doWrite[cmdCount -1]; readCmd = doRead[cmdCount -1]; writeData = data[cnt]; if (writeCmd) cnt = cnt + 1; end always @* reset = rst_delay[2]^rst_delay[3]; queue q(reset, clk, writeCmd, readCmd, writeData, readData); endmodule
  4. потому что учусь программированию ПЛИС
  5. Почему generate не желательно? Почему убрали все форы?
  6. Требуется написать простой интегрирующий фильтр. У меня получилось два варианта module filter1 #(parameter IWIDTH = 16) ( input CLOCK, input signed [IWIDTH-1:0] In, output reg signed [IWIDTH-1:0] Out ); integer i; reg [16:0] memoryFilter[10:0]; always@(posedge CLOCK) begin for (i =10; i>= 1; i=i-1) memoryFilter[i] = memoryFilter[i-1]; memoryFilter[0] = In; end always@(negedge CLOCK) begin for (i =10; i>= 0; i=i-1) Out = Out + memoryFilter[i]; end endmodule и module filter2 #(parameter IWIDTH = 16, parameter NUMBER =10) ( input CLOCK, input signed [IWIDTH-1:0] In, output reg signed [IWIDTH-1:0] Out ); genvar i; generate for( i=0; i<NUMBER; i=i+1 ) begin:mem reg [IWIDTH-1:0]r=0; if (i ==0) begin always@(posedge CLOCK) r <= In; end else begin always @(posedge CLOCK) mem[i].r <= mem[i-1].r; end if (i == 0) begin always @* Out = mem[i].r; end else begin always @* Out = Out + mem[i].r; end end endgenerate endmodule как делать более правильно что ли.
  7. SOC EDS ARM-DS5

    Решил эту проблему. Неожиданно. Теперь ещё бы отладчик бы подсоединить бы.
  8. Плата De10-nano. SOC EDS ARM-DS5 не видит программатор. Программатор встроенный (USB BlasterII). Quartus всё видит Что делать ?
  9. Как всё сложно оказалось... always@(posedge KEY[0] or posedge KEY[1] and posedge CLOCK50) begin end Это наверное как то так. Теперь как я определю что происходит нажатие кнопки?
  10. Нужно сделать что бы по нажатию 1 кнопки переменная увеличивалась а по нажатию другой уменьшалась. попробовал сделать так : module t1( input CLOCK50, //////////// KEY ////////// input [1:0] KEY, //////////// LED ////////// output [4:0] LED ); reg [2:0]s =0; always@(posedge KEY[0]) begin s <= s + 1; end always@(posedge KEY[1]) begin s <= s - 1; end endmodule получаю кучу ошибок. Как правильно надо делать?
  11. SOC EDS ARM-DS5

    Был бы Си компилятор то он был ругался. ошибки такие Description Resource Path Location Type make: *** [test.axf] Error 1 test C/C++ Problem recipe for target 'test.axf' failed makefile /test/Debug line 45 C/C++ Problem undefined reference to `_close' test line 0 C/C++ Problem undefined reference to `_exit' test line 0 C/C++ Problem undefined reference to `_fstat' test line 0 C/C++ Problem undefined reference to `_getpid' test line 0 C/C++ Problem undefined reference to `_isatty' test line 0 C/C++ Problem undefined reference to `_kill' test line 0 C/C++ Problem undefined reference to `_lseek' test line 0 C/C++ Problem undefined reference to `_open' test line 0 C/C++ Problem undefined reference to `_read' test line 0 C/C++ Problem undefined reference to `_sbrk' test line 0 C/C++ Problem undefined reference to `_write' test line 0 C/C++ Problem
  12. SOC EDS ARM-DS5

    да весь код то #include <iostream> using namespace std; int main() { cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!! return 0; } как подключить библиотеки не нашёл
  13. SOC EDS ARM-DS5

    Создал проект (Hello word) с помощью eclipse из данного пакета. При попытке собрать это проект линковчик выдал кучу ошибок о нехватке функций. Совершено не понимаю что не так. Помогите.
×
×
  • Создать...