Jump to content

    

RobFPGA

Свой
  • Content Count

    2226
  • Joined

  • Last visited

Community Reputation

0 Обычный

1 Follower

Контакты

  • ICQ
    Array

Recent Profile Visitors

11764 profile views
  1. Приветствую! То есть это в одном направлении, из FPGA в хост? Тогда да - там не сложный автомат получается. А вот в обратном направлении, да еще и в многоканальном варианте, да с макс. производительностью, да с потрошками вот тут "веселье" и начинается. Удачи! Rob.
  2. Приветствую! За неделю? PCIe TLP DMA движок c read packet reordering буфером? Вы круты Удачи! Rob.
  3. Приветствую! Но вы же выводите на график децимированного спектра сумму с исходного (не децимированного) спектра, а на сколько я помню там формат 0.. Fs/2,-Fs/2..0. Удачи! Rob.
  4. Приветствую! Ну я про это и говорил То есть UVM как бы и можно запустить но в весьма выхолощенном варианте Что поделаешь - сыр то бесплатный Удачи! Rob.
  5. Приветствую! Ну это когда было то? А сейчас вон даже фришный Intel Starter Edition нормально симулирует mixed дизайн. Ворчит только - "мол большой он очень, мееедлено все будет". Удачи! Rob.
  6. Приветствую! Это что-ж у вас за странный какой то ModelSim-Altera? Не уж-то не умеет V/SV/VHDL одновременно симулировать? Или вы что-то другое имели ввиду? Может то что ModelSim-Altera не поддерживает некоторые фичи SV важные для UVM (как то randomization, constraing, ...) Это да - пичалька Ну на то он и халявный сыр чтобы заманивать в мышеловку UVM библиотека обычно уже идет в составе Modelsim (см в verilog_src). Ну а если ее там нет то она свободно качается с сайта accellera. Ну и затем компилируется. Удачи! Rob.
  7. Приветствую! Удивительное рядом - например весь GUI Modelsim писан на TCL/TK и там не только regexp есть Что позволяет при некотором усилии например менять или добавлять свой функционал внутрь GUI (свои менюшки, дополнительные функции, и.т.д. и.т.п. ) Удачи! Rob.
  8. Приветствую! Ну это уж пусть сам делить Сама идея думаю понятна. Удачи! Rob.
  9. Приветствую! IMHo все же TC нужно именно позиция (индекс) регистра по имени поля. При условии что регистры у него все 32 битные то в моем примере эта задача решается Обратная же задача - получить номер позиции поля в описании структуры или имя поля по индексу автоматом действительно невозможна, в чем и я недавно в очередной раз убеждался. Удачи! Rob.
  10. Приветствую! Ну не так уж и никаким Если тип структуры известен и она пакованная и вы хотите знать смещение конкретного поля то можно : typedef logic [32*3-1:0] reg3_t; typedef logic [32*2-1:0] reg2_t; typedef logic [32*2-1:0] reg1_t; typedef logic [32*1-1:0] reg0_t; typedef struct packed { reg3_t reg3; // 5 - позиция 32 разрядного reg3 reg2_t reg2; // 3 - позиция 32 разрядного reg2 reg1_t reg1; // 1 - позиция 32 разрядного reg1 reg0_t reg0; // 0 - позиция 32 разрядного reg0 } regs_t; localparam MAX_VEC =4096; function int field_poz(input bit [MAX_VEC-1:0] vec); for (int ii=0; ii<MAX_VEC; ++ii) begin if (vec[ii]) begin return ii; end end return -1; endfunction : field_poz `define F_POZ(st_type, field_name) field_poz(st_type'('{default:0, field_name:1'b1})) localparam AA = `F_POZ(regs_t, reg2); initial begin $display (">> F_POZ, reg0:%03d", `F_POZ(regs_t, reg0)); $display (">> F_POZ, reg1:%03d", `F_POZ(regs_t, reg1)); $display (">> F_POZ, reg2:%03d", `F_POZ(regs_t, reg2)); $display (">> F_POZ, reg3:%03d", `F_POZ(regs_t, reg3)); end Это может даже для синтеза работать если конечно tools поддерживает инициализацию структуры в '{..}. Ну или можно явно создавать и инициализировать временную переменную с типом структуры. Удачи! Rob.
  11. pyfxbn Приветствую! Тут уж кому что более нравится, НО! -TCL родной язык FPGA тулов - тянуть что то внешнее значит добавлять зависимости. Простой парсер на tcl займет от силы сотню строк, например как основа: Удачи! Rob.
  12. Приветствую! Версии модулей моем понимании это то что может использоваться в текущем проекте в зависимости от настройки параметров синтеза. А что с последовательностью компиляции ? Или с package? Но мне печально становится от от картины " бескрайней степи" с сотнями и тысячами файлов в одной папке, что и к какому модулю относится - хер поймешь. Видимо не спасает раз все же пришлось и внешний "велосипед" изобретать для отслеживания связей. Удачи! Rob.
  13. Приветствую! Свои файлы может и можно держать в такой свалке Но вот некоторые корки в Qu требуют компиляции в отдельные библиотеки. Да и pakage часто нужно компилировать в требуемом порядке, а не как попало. Ну и очень часто бывает что исходников значительно больше чем нужно - разные версии модулей, разные тесты, ... как при подходе "... скомпилю ка я все гамузом ..." быть уверенным что симулировать будет то что нужно, а не то что попалось под руку. А вот при парсинге qip легко извлекается и библиотеки назначения и порядок компиляции. И ты всегда уверен что компилируется для симуляции то что и синтезируется. Удачи! Rob.
  14. Приветствую! Производитель не гарантирует работу пинов при неправильном напряжений питания по сравнению со стандартными, заданными режимами пинов. Поэтому говорить о каких то уровнях бессмысленно. IMHO - выбор и корректное задание констрейнов режимов работы внешних пинов это первое что вы должны сделать при начале работы с FPGA на конкретной платой. Удачи! Rob.
  15. Приветствую! Основное преимущество этих корок то ... что они уже есть и хоть как-то работают А заодно хоть как-то работают и драйвера к этим коркам. Когда понимаешь что то что есть не устраивает по каким либо причинам тогда можно и поупражняться в написании собственных драйверов, descriptor-контроллеров и движков PCie DMA. Удачи! Rob.