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

LMT

Свой
  • Постов

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Участник
    Участник
  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. В ментор писать не буду, поскольку работаю с 6.2g. Кроме того, у меня вообще права писать туда нет ;) :)
  4. Да, в таком виде всё отработало как надо. Похоже, всё дело в типе задержки. Спасибо за подсказку.
  5. des00 fork/join обеспечивают параллельное выполнение statements, заключённых между ними, и применены осознанно. Посмотрите внимательно сорс: запись в массив происходит по разным индексам (но при этом запись в один элемент приводит к записи во все одного и того же значения).
  6. Не, понятие массива в языке есть. Просто при синтезе масив инстанциируется в память. Речь идёт только о функциональном тестбенче, синтезируемость не преследуется. Приведённый выше пример есть иллюстрация проблемы в тестбенче для функциональной верификации параметризованного модуля. Чтобы не плодить для передачи модулю n аргументов (n = 4 :) ) в n потоков initial, был применён такой подход, но что-то он не сработал. Я, конечно, выкрутился, но получилось некузяво.
  7. Здравствуйте. Есть такой тестовый скрипт: `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'е такое обращение с массивами в принципе ? Или я чего-то не знаю ...
  8. Linux + PowerPC (Vitrex4)

    Andy Sm. Извините, а где Вы доку на marvell phy взяли ? А то у нас тут тоже проблема информационного характера с ним на ML403/405.
  9. Здравствуйте. Потребовалось сделать реализацию SPI slave с частотой в половину от системной на Spartan 3/1000. Хочется обойтись синхронным подходом. Каким образом можно синхронизировать SCK, чтобы вместе с защёлкиванием значения MOSI уложиться в два такта f_sys ? Пока ничего кроме такого (см. рис.) в голову не приходит. Будет ли результат устойчивым, если "запихать" изображённое в один CLB ?
  10. Указанные microblaze_bxxx вроде же макросы. Посмотрите их определение в хэдерах EDK-шной инсталляции (mb_interface.h) и перенесите в свою программу под линуксом. Сработать должно: и там, и там GNU C.
  11. Устройства с RS-232 ифейсом есть у Trimble (Lassen_iQ) и у Fastrax. Можно поискать любые ОЕМ модули на SiRF Star III (который даёт быстрый фикс). Например, вот _http://www.globalsat.com.tw . Если проблем с питанием не планируется, то желательно дополнить девайс активной антенной, чтобы зимой по часу фикса не ждать. [off]А вообще, наверняка в продаже есть уже есть что-то подобное[/off]
  12. Я обычно как-то так делаю (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;
×
×
  • Создать...