Jump to content

    

Kostochkin

Свой
  • Content Count

    215
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Kostochkin

  • Rank
    Местный
  • Birthday 05/07/1983

Информация

  • Город
    Array

Recent Profile Visitors

1904 profile views
  1. Здравствуйте.

    Я - разработчик FPGA, Москва.

    Меня заинтересовало предложение о работе "FPGA Developer, Copenhagen, DK".

    Что нужно делать? Послать резюме работодателю на почту? Или через вас?

    Какой уровень английского требуется? Свободный разговорный?

    Благодарю.

  2. Нет, допустим есть файл sdc c распиновкой, на этапе синтеза пины не проверяются. Мне надо, чтобы этот файл анализировался только на этапе имплементации. Если что-то изменить, то не надо заново делать синтез, а только имплементацию. Благодарю.
  3. Здравствуйте. Использую quartus 17.1. Как в quartus файл констрейнов sdc исключить из синтеза? Благодарю.
  4. Здравствуйте. Я работаю в основном в Vivado. У меня такой вопрос, есть ли в Quartus аналог (* use_dsp48 = "yes" *) как в Vivado? Если есть, то как записывается? Если нет, то как в RTL прописать использование dsp в quartus? Благодарю.
  5. Вот пример `timescale 1ns / 1ps package pack_rx; typedef struct packed { logic [31:0] m0; logic [15:0] m1; logic [7:0] m2;} STR_A; endpackage : pack_rx module rx_t import pack_rx::STR_A; #() ( input logic clk, input logic data_vd, input logic [15:0] data, output logic data_out ); STR_A STR_PAR; logic [7:0] state; logic r_data_out; initial begin r_data_out = 1'b0; state = 0; end always @(posedge clk) begin if (data_vd) begin state <= state + 1; case (state) 2:begin STR_PAR.m0[31:16] <= data; end 3:begin STR_PAR.m0[15:0] <= data; end 4:begin STR_PAR.m1 <= data; end 8:begin STR_PAR.m2 <= data[15:8]; end default:; endcase end else begin if ((STR_PAR.m0 == 32'h00001100) & (STR_PAR.m2 == 8'h05)) r_data_out <= 1'b1; else r_data_out <= 1'b0; end end assign data_out = r_data_out; endmodule
  6. Здравствуйте. В модуле на systemverilog есть структура, объявленная в package: typedef struct packed { logic wen_fifo; logic [31:0] data_fifo_in; logic rd_fifo; logic [31:0] data_fifo_out; logic afull; logic fempty; logic wen_queue; logic rd_queue; logic qempty;} STR_FIFO; В симуляции все работает. В quartus 17.1 в signaltap я вижу, что структура почему-то не заполняется, хотя fsm отрабатывает верно, и ничего не оптимизированно. На systemverilog пишу недавно. Может я что-то упустил. Благодарю.
  7. Здравствуйте. Такой вопрос, 1. Как понять, что два пакета относятся к одной tcp сессии? У них должны совпадать ip адреса источника и отправителя и должны совпадать порты источника и отправителя? Этого достаточно? 2. Как формировать поле Sequence Number (SN) в пакете tcp? SN - стартовый номер + кол-во всех посланных tcp байт в сессии. Значит надо взять Sequence Number от предыдущего посланного пакета и прибавить к нему tcp payload от предыдущего посланного пакета? Благодарю.
  8. Здравствуйте. Подскажите, где в vivado посмотреть daemon xilinxd какого-нибудь ip-core ? Благодарю.
  9. Хорошо, если у меня битовый поток на входе с частотой 1МГц, 64 выборки, значит длина символа равна 64 мкс? Какая тогда будет частота несущего колебания? как ее подобрать или рассчитать?
  10. Благодарю. А почему часть DDS лишняя? Выполняется в аналоговом тракте? И всё же хочу еще спросить. Длина одно символа равна целому числу периодов синусоиды или косинусоиды. А какое число периодов лучше брать за один символ? 1?
  11. Здравствуйте. Я новичок в теме ЦОС. Но мне интересна данная тема. Хотел бы спросить знающих людей по поводу работы передатчика OFDM, без использования блоков коррекции ошибок. Передатчик состоит из модуля serial-to-parallel, допустим 16QAM, IFFT, допустим на 64 точки, DDS, два умножителя и сумматор. Преобразуем 1битный поток в 4битный поток с частотой в 4 раза ниже. 16QAM согласно сигнальному созвездию преобразует 4бита в пару числел I, Q значения которых могут быть: -3/-1/1/3. Далее накапливаем 64 пары чисел I, Q и подаём их на модуль IFFT и на выходе тоже имеем 64 пары чисел I, Q. Теперь последовательно одно за другим эти пары чисел умножаем на сгенерированный в DDS синус и косинус. Частота sin и cos должна быть намного ниже, чем частота битового потока на входе в передатчик (эта частота рассчитывается). На выходе имеем последовательно 64 значения (Q*sin + I*cos). Так же нужен защитный интервал перед каждым символом, длиной 1/8 или 1/16 от длины символа. Это конец каждого символа, например 1/8 от длины, копируется и вставляется в начало символа. В приёмнике защитный интервал отбрасывается. Если что не правильно, прошу поправить. Вопрос такой, а какие поворачивающие коэффициенты надо брать для блока IFFT? И какой размерности числа I, Q надо подавать на модуль IFFT? Надо ли перед подачей чисел I, Q на модуль IFFT умножать их на коэффициент для 16QAM c = (1/√ 10)? Благодарю.