Open-Source Projects: Issueshttps://forge.ispras.ru/https://forge.ispras.ru/favicon.ico?16490126692018-01-30T16:17:26ZOpen-Source Projects
Redmine MicroTESK - Task #8698 (Closed): Adding makefiles to MicroTESK demoshttps://forge.ispras.ru/issues/86982018-01-30T16:17:26ZAlexander Kamkinaskamkin@gmail.com
<p>I suggest adding makefiles to MicroTESK demos:</p>
<ol>
<li>cpu</li>
<li>vliw</li>
<li>x86</li>
</ol>
<p>Even if a user don't use them, they will serve as documentation.</p> MicroTESK - Bug #8670 (Rejected): Address 0xffffffffa0002380 is unallocated. Simulation is paused...https://forge.ispras.ru/issues/86702018-01-15T16:17:46ZAlexander Kamkinaskamkin@gmail.com
<p>Running MIPS64's load_store leads to the following failure:</p>
<pre>
m_0000:
0xffffffffa0004040 ld r4, 0(r16)
Exception was raised: TLBMiss
Jump to handler of TLBMiss at 0xffffffffa0002380.
Address 0xffffffffa0002380 is unallocated. Simulation is paused until it is allocated.
Jump to address 0xffffffffa0002380 located outside of the sequence.
Execution will be continued from the next instruction 0xffffffffa0004044.
</pre> MicroTESK - Task #6218 (Closed): Add a reference to DataManager to EngineContexthttps://forge.ispras.ru/issues/62182015-07-22T12:35:28ZAlexander Kamkinaskamkin@gmail.com
<p>To be able to generate data files in custom engines.</p> MicroTESK - Bug #6150 (Closed): Address translation specificationhttps://forge.ispras.ru/issues/61502015-07-06T10:22:26ZAlexander Kamkinaskamkin@gmail.com
<p>I suggest changing the language syntax by adding <code>translate</code> to <code>segment</code>:</p>
<pre>
segment A(va: VA) [= (pa: PA)]
range = ...
translate = {
...
pa = ...
}
</pre> MicroTESK - Task #5986 (Closed): Addresses in ConcreteCall and TestSequencehttps://forge.ispras.ru/issues/59862015-05-27T07:37:52ZAlexander Kamkinaskamkin@gmail.com
<p>Now it is unclear where a concrete call / test sequence is located in memory.</p> MicroTESK - Task #5955 (Closed): Architecture-dependent configurationhttps://forge.ispras.ru/issues/59552015-05-19T16:29:57ZAlexander Kamkinaskamkin@gmail.com
<p>arch</p>
<blockquote><blockquote>
<p>some-architecture</p>
<blockquote><blockquote>
<p>model<br />templates<br />settings.xml</p>
</blockquote></blockquote></blockquote></blockquote> MicroTESK - Task #5435 (Closed): An architecture validator engine is requiredhttps://forge.ispras.ru/issues/54352014-11-19T07:50:58ZAlexander Kamkinaskamkin@gmail.com
<p>Special template constructs (engines) for push-button massive test generation are required.<br />Architecture validator is a special engine that tries all instructions in all situations available in TestBase.</p> MicroTESK - Task #5345 (Closed): [arch] Notes to the existing architecture models and templateshttps://forge.ispras.ru/issues/53452014-10-14T03:23:46ZAlexander Kamkinaskamkin@gmail.com
<p>Замечания по моделям:</p>
<ol>
<li>Переименовать <code>simple_vliw</code> в <code>vliw-demo</code> (вместо подчеркивания лучше использовать минус).</li>
<li>Переименовать <code>demo</code> в <code>cpu-demo</code>.</li>
<li>Переместить все другие архитектуры в microtesk-internals (не только для планируемой поставки; в основном проекте должны быть только отлаженные и задокументированные модели).</li>
<li>В модели <code>cpu-demo</code> переименовать <code>Add</code> в <code>ADD</code> и т.д.</li>
<li>В модели <code>cpu-demo</code> написать коментарии.</li>
<li>В коментариях для модели <code>vliw-demo</code> вместо "operation" использовать "instruction" (это касается и других моделей; не нужно терминологию языка nML распространять на все вокруг).</li>
<li>Какие параметры передаются в <code>float</code>? Если разрядность мантиссы и порядка, то для <code>SINGLE</code> нужно передавать 23 и 8 (не помешал бы комментарий).</li>
<li>В модели <code>vliw-demo</code> закомментирован вызов <code>SignalException</code> - нужно раскомментировать (без поддержки исключений инструмент мало кому нужен).</li>
<li>Нет комментариев для многих инструкций (<code>MUL</code>, <code>SLL</code> и др.) - либо комментарии есть у всех инструкций, либо их нет ни у одной инструкции (если комментарии повторяют код на nML, смысла в них нет).</li>
<li>Заводятся, но нигде не используются алиасы <code>PC</code> и <code>SP</code> - нужен ли <code>SP</code>?</li>
<li>Название константы <code>REGS</code> неадекватно - лучше использовать что-то вроде <code>REG_INDEX_SIZE</code> (размер индекса регистра в битах).</li>
<li>Спецификацию <code>SW</code> лучше записать через конкатенацию в левой части присваивания.</li>
<li>Не хватает комментариев для "тонких" моментов: <code>BRANCH = 1</code>, <code>JMPADDR = ...</code>, <code>GPR[0] = 0</code>.</li>
<li>Вместо числа <code>8</code> в <code>CIA = CIA + 8</code> лучше написать <code>2 * INSTRUCTION_SIZE</code>, где <code>INSTRUCTION_SIZE</code> - размер кода инструкции в байтах.</li>
<li>Комментарии-разделители должны иметь размер 80, а не 79.</li>
<li>Синтаксис <code>syntax = format("%s, %s;", c1.syntax, c2.syntax)</code> не соответствует тому, что пишется в шаблонах. Названия инструкций для записи в шаблонах берутся из <code>op</code> или <code>format</code>?</li>
<li>В модель <code>cpu-demo</code> добавить простейшие инструкции с плавающей точкой.</li>
</ol>
<p>Замечания по шаблонам:</p>
<ol>
<li>Предлагаю придерживаться конвенций Google: <code>class VLIWDemo</code> -> <code>class VliwDemo</code>.</li>
<li>Представляется неправильным то, что классы всех шаблонов названы одинаково (<code>VLIWDemo</code>, <code>ArmDemo</code> и т.д.) - названия шаблонов должны быть разными и отражать их содержание.</li>
<li>Думаю, имеет смысл для каждой архитектуры выделить базовый шаблон (<code>VliwDemoTemplate</code>, <code>CpuDemoTemplate</code>, <code>ArmTemplate</code> и т.д.).</li>
<li>Нужно избавиться от странного метода <code>initialize</code>.</li>
<li>В шаблонах (для <code>cpu-demo</code> и <code>vliw-demo</code>) не хватает комментариев (<code>label</code>, <code>trace</code>, <code>location</code> и т.д.).</li>
<li>Отсутствуют "комбинаторные" шаблоны.</li>
<li>Отсутствуют шаблоны на исключения.</li>
</ol> C++TESK Testing ToolKit - Task #4670 (Closed): All resolved issues shoud be closedhttps://forge.ispras.ru/issues/46702014-01-17T06:32:56ZAlexander Kamkinaskamkin@gmail.com
<p>... with the mark 'Published in build'.</p> Verilog Translator - Task #4392 (Closed): Add return value for on<Node>(Begin|End) methodshttps://forge.ispras.ru/issues/43922013-07-27T07:21:04ZAlexander Kamkinaskamkin@gmail.com
<p>The returned value can be used to control AST traversal.</p>
<ol>
<li>Do not expand a node</li>
<li>Stop traversal of an AST</li>
<li>Back jump to the parent node</li>
</ol> Verilog Translator - Bug #3541 (Closed): AST_ASSIGNMENT_STATEMENT -> AST_ASSIGN_STATEMENThttps://forge.ispras.ru/issues/35412012-10-05T02:27:06ZAlexander Kamkinaskamkin@gmail.comVerilog Translator - Task #3474 (Closed): AST_ASSIGNMENT для параметровhttps://forge.ispras.ru/issues/34742012-09-23T13:12:28ZAlexander Kamkinaskamkin@gmail.com
<p>В качестве AST_LVALUE для параметров используется AST_NAME, а не AST_REFERENCE+.</p> C++TESK Testing ToolKit - Task #3095 (Closed): 20-ый билд перед отпускомhttps://forge.ispras.ru/issues/30952012-06-22T05:27:18ZAlexander Kamkinaskamkin@gmail.com
<p>1. Исправлены ошибки статической инициализации<br />2. Вывод строки кода, где происходит повторный захват интерфейса</p> Retrascope - Task #2765 (Closed): Annotating variables with clockshttps://forge.ispras.ru/issues/27652012-04-17T15:21:35ZAlexander Kamkinaskamkin@gmail.com
<p>Each design's variable (reg or net) should be annotated with clocks synchronizing the usage and definition of the variable. A solution should be suggested (documentation in wiki + IG-based implementation).</p>
<a name="Some-Ideas"></a>
<h3 >Some Ideas<a href="#Some-Ideas" class="wiki-anchor">¶</a></h3>
<p>use_clk(var) = union { clk | always(clk) where var is used } union { use_clk(lhs) | assign lhs = f(..., var, ...) }<br />def_clk(var) = union { clk | always(clk) where var is defined } union { def_clk(rhs) | assign var = f(..., rhs, ...) }</p> Veritool - Task #1210 (Closed): $applyAction() + $checkAction = too muchhttps://forge.ispras.ru/issues/12102011-05-17T07:20:03ZAlexander Kamkinaskamkin@gmail.com
<p>Исторически в testbench'е есть две точки входа в тестовую систему: $applyAction() и $checkAction(). Очевидно, что используется только одна из них.<br />Можно в генерирует коде помечать коментарием тот вызов, который не используется. Либо поступить кардинально - не генерировать этот вызов совсем.</p>