Jump to content

    

LMT

Свой
  • Content Count

    54
  • Joined

  • Last visited

Community Reputation

0 Обычный

About LMT

  • Rank
    Участник
  1. Кодreg[4:0] arr[0:10]; initial begin     arr[0] = 5'b01010;     arr[1] = 5'b00100;     ...     arr[10] = 5'b10101; end
  2. При компиляции исходника нужно ещё опцию +acc прилагать: vcom +acc -explicit -93 "interfejsy.vhd"
  3. Цитатаdvladim Если таск написан с использованием временных задержек как то: #, @(), wait то вызов таска когда он же выполняется может приводить к произвольным результатам. Атрибут automatic делает task реентрантным.
  4. В ментор писать не буду, поскольку работаю с 6.2g. Кроме того, у меня вообще права писать туда нет
  5. Да, в таком виде всё отработало как надо. Похоже, всё дело в типе задержки. Спасибо за подсказку.
  6. des00 fork/join обеспечивают параллельное выполнение statements, заключённых между ними, и применены осознанно. Посмотрите внимательно сорс: запись в массив происходит по разным индексам (но при этом запись в один элемент приводит к записи во все одного и того же значения).
  7. Не, понятие массива в языке есть. Просто при синтезе масив инстанциируется в память. Речь идёт только о функциональном тестбенче, синтезируемость не преследуется. Приведённый выше пример есть иллюстрация проблемы в тестбенче для функциональной верификации параметризованного модуля. Чтобы не плодить для передачи модулю n аргументов (n = 4 ) в n потоков initial, был применён такой подход, но что-то он не сработал. Я, конечно, выкрутился, но получилось некузяво.
  8. Здравствуйте. Есть такой тестовый скрипт: Код`timescale 1ns/1ps module test;     ////////////////////////////////////////////////////////////////////////////     // Часы     parameter CLOCK = 10;     reg  C;     initial     begin         C = 1'b0;         #CLOCK;         forever #( CLOCK / 2 ) C = ~ C;     end     ////////////////////////////////////////////////////////////////////////////     // Тестовый массив     reg  [7 : 0] Array[3 : 0];     ////////////////////////////////////////////////////////////////////////////     // Тестовый task     task automatic Post;         input  integer idx;         input  integer cnt;         integer i;         begin             for(i = 0; i < cnt; i = i + 1)             begin                repeat(2) @( posedge C );                Array[ idx ] = #1 { i[3 : 0], idx[3 : 0] };             end             repeat(2) @( posedge C );         end     endtask     ////////////////////////////////////////////////////////////////////////////     // Основной поток     initial     begin         #(3 * CLOCK);         fork             Post(0, 5);             Post(1, 5);             Post(2, 5);             Post(3, 5);         join         #(4 * CLOCK) $stop;     end endmodule Почему при исполнении под modelsim'ом присваивание элементу массива значения в отдельном task'е перекрывает присваивания другим элементам во всех остальных task'ах (см. рис.) ? Допускается ли в verilog'е такое обращение с массивами в принципе ? Или я чего-то не знаю ...
  9. Linux + PowerPC (Vitrex4)

    Andy Sm. Извините, а где Вы доку на marvell phy взяли ? А то у нас тут тоже проблема информационного характера с ним на ML403/405.
  10. Здравствуйте. Потребовалось сделать реализацию SPI slave с частотой в половину от системной на Spartan 3/1000. Хочется обойтись синхронным подходом. Каким образом можно синхронизировать SCK, чтобы вместе с защёлкиванием значения MOSI уложиться в два такта f_sys ? Пока ничего кроме такого (см. рис.) в голову не приходит. Будет ли результат устойчивым, если "запихать" изображённое в один CLB ?
  11. Указанные microblaze_bxxx вроде же макросы. Посмотрите их определение в хэдерах EDK-шной инсталляции (mb_interface.h) и перенесите в свою программу под линуксом. Сработать должно: и там, и там GNU C.
  12. Устройства с RS-232 ифейсом есть у Trimble (Lassen_iQ) и у Fastrax. Можно поискать любые ОЕМ модули на SiRF Star III (который даёт быстрый фикс). Например, вот _http://www.globalsat.com.tw . Если проблем с питанием не планируется, то желательно дополнить девайс активной антенной, чтобы зимой по часу фикса не ждать. [off]А вообще, наверняка в продаже есть уже есть что-то подобное[/off]
  13. Цитата(Leka @ Sep 6 2007, 14:25) Это не синтезируется. В каком синтезаторе ?
  14. Я обычно как-то так делаю (XST): Кодmodule TrigDCE(C, R, CE, D, Q);     parameter P_WIDTH = 1;     parameter [P_WIDTH - 1 : 0] P_INIT = 0;          input  C;     input  CE;     input  R;     input  [P_WIDTH - 1 : 0] D;          output reg [P_WIDTH - 1 : 0] Q = P_INIT;     always @(posedge C)         if(R)             Q <= P_INIT;         else if(CE)             Q <= D; endmodule Если более абстрактно писать, то в коде по месту достаточно объявить Код    reg [7 : 0] r_Reg = 8'hA5;