Dragon-fly
Sep 24 2012, 11:56
В verilog для комбинационной логики применяют присвоение с директивой "assign". Для триггеров завели альтернативный вариант "<=". Он вносит задержку. В SystemC присвоение с задержкой реализуется через сигналы, которые затем можно развести через порты по адресатам и сделать событийными. А как организовать средствами SystemC аналогичную "сигнальную" взаимосвязь, но без дельта задержки?
aT-DeviLru
Sep 25 2012, 16:19
Стандартное назначение не подходит? Приведите пример, что нужно реализовать.
// Verilog
assign out_sum = in_x ^ in_y;
assign out_carry = in_x & in_y;
// SystemC
out_sum = in_x ^ in_y;
out_carry = in_x & in_y;
Dragon-fly
Sep 26 2012, 07:35
Стандартное назначение через операторы сводится к read/write, то есть работает с задержкой в дельта такт.
Если я правильно понимаю, схемы с портами без задержки в SystemC не предусмотрено.
с подобными задержками в SystemC
IMHO намудрили - смотри приатаченное
и скорее ты прав.
взято из:
http://books.google.de/books?id=LYer_ufmnc...nal&f=false
Dragon-fly
Feb 26 2015, 08:37
Не трогал SystemC некоторое время. Теперь вот актуализировалось.
Требуется сделать золотую модель по уже написанному верилоговскому коду. Имею следующий вопрос (схожий с корневым сообщением, но всё ж чуть иной).
В верилоге имеем регистры-триггеры, работающие по клоку, и комбинационную логику, местами описанную через “wire”. В SystemC хочу сохранить и треггеры, и “ваиры” (провода). Казалось бы просто, но что-то я заглючил.
Предположим следующую ситуацию.
Есть триггер А, в который по клоку попадает выход триггера B:
reg [2:0] A;
reg [2:0] B;
always @(posedge clk)
A<=B;
есть провод C, всегда равный A+1:
wire C=A+1;
и есть также процесс, обновляющий регистр B:
always @(posedge clk)
B<=C*3;
Предположим также, что выходы A, B и C заводятся на ещё большое количество портов в других модулях.
Вопрос: как все три указанные сущности отобразить в SystemC?
Допустим, завожу три процесса. В первом чувствительность к клоку, во втором к изменению A. А какая тогда чувствительность у процесса с обновлением регистра B?