Разработка теста
В этом разделе подробно рассматривается процесс разработки теста для Verilog-моделей аппаратного обеспечения с помощью инструмента CTesK. Для иллюстрации процесса будем использовать пример счетчика (см. раздел ), Verilog-модель которого приводится ниже. module count(inc, rst); // входы inc и rst input inc, rst; // выходной регистр cnt integer cnt; // увеличивает счетчик task increment; begin cnt = cnt + 1; end endtask // сбрасывает счетчик task reset; begin cnt = 0; end endtask // в начальном состоянии счетчик сброшен initial begin reset; end // обработчик фронта сигнала на входе inc always @(posedge inc) begin increment; end // обработчик фронта сигнала на входе rst always @(posedge rst) begin reset; end endmodule
Процесс разработки теста состоит из следующих шагов:
- Разработка спецификации устройства.
- Разработка модуля взаимодействия потоков.
- Разработка медиатора.
- Разработка тестового сценария.
- Разработка Verilog-окружения.
- Разработка VPI-модуля.
Рассмотрим подробно каждый из этих шагов за исключением шага разработки спецификации и шага разработки тестового сценария, которые были описаны выше (см. раздел ).
В этом разделе подробно рассматривается процесс разработки теста для SystemC-моделей аппаратного обеспечения с помощью инструмента CTesK. Для иллюстрации процесса будем использовать пример счетчика (см. раздел ), SystemC-модель которого приводится ниже.
SC_MODULE(count) { // входы сигналы inc и rst
sc_in<bool> inc; sc_in<bool> rst;
// выходной регистр cnt int cnt;
// обработчик изменения значения сигнала inc
void increment(void) { if(inc.posedge()) cnt++; }
// обработчик изменения значения сигнала inc void reset(void) { if(rst.posedge()) cnt = 0; }
SC_CTOR(count): cnt(0), inc(false), rst(false) { SC_METHOD(increment); sensitive(inc);
SC_METHOD(reset); sensitive(rst); } };
Процесс разработки теста состоит из следующих шагов:
- Разработка C-медиатора.
- Разработка спецификации системы.
- Разработка медиатора.
- Разработка тестового сценария.
- Разработка модуля запуска тестовой системы.
Рассмотрим подробно каждый из этих шагов за исключением шага разработки спецификации и шага разработки тестового сценария, которые были описаны выше (см. раздел ).