From 15624e057c14e7d76bd5e2e202a99c807ffa1578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20Schr=C3=B6ter?= <151610807+joschroeter@users.noreply.github.com> Date: Thu, 8 Oct 2026 12:20:17 +0200 Subject: [PATCH 1/3] doc: add HM json and PDF --- ip_cards/HM_Verminator_SW_IP_Card.json | 126 +++++++++++++++++++++++++ ip_cards/HM_Verminator_SW_IP_Card.pdf | Bin 0 -> 37643 bytes 2 files changed, 126 insertions(+) create mode 100644 ip_cards/HM_Verminator_SW_IP_Card.json create mode 100644 ip_cards/HM_Verminator_SW_IP_Card.pdf diff --git a/ip_cards/HM_Verminator_SW_IP_Card.json b/ip_cards/HM_Verminator_SW_IP_Card.json new file mode 100644 index 0000000..bc59028 --- /dev/null +++ b/ip_cards/HM_Verminator_SW_IP_Card.json @@ -0,0 +1,126 @@ +{ + "schemaVersion": "0.9", + "basicInfo": { + "ipName": "Verminator Verilator-Based Fault-Injection Framework", + "version": "ISOLDE-D4.5-2026.07", + "status": "Prototype implemented", + "comment": "Draft metadata release derived from ISOLDE D4.5. The value in basicInfo.version identifies this card release, not necessarily the partner's product or repository tag. Partner confirmation is required before publication.", + "provider": [ + { + "organizationName": "Munich University of Applied Sciences", + "organizationURL": "https://www.hm.edu/", + "organizationAlias": [ + "HM" + ] + } + ], + "license": "Other", + "repositoryURL": "https://github.com/hm-aemy/verminator", + "project": "ISOLDE", + "workItem": "T4.3 / D4.5 Section 3.4.1", + "ipType": { + "category": [ + "Software Tool", + "Fault Simulation", + "V&V Tools" + ], + "domain": [ + "Safety" + ], + "comment": "Verilator AST instrumentation and configurable fault-injection campaigns", + "service": "no" + }, + "licenseDetails": "Mixed open-source licensing reported as LGPL-3.0 and Apache-2.0. File-level licensing applies." + }, + "systemLevelInfo": { + "architecture": "Generic RTL with RISC-V demonstrator use", + "processor": "Design-dependent", + "isaExtension": "Not applicable", + "board": "Host-based simulation", + "SOC": "SystemVerilog/Verilog design under test", + "SWDependencies": "Modified Verilator, C++ toolchain, SystemVerilog DPI and campaign configuration", + "requiresSpecializedTool": "Yes. The Verminator Verilator extension and compatible C++ build flow." + }, + "interfaces": { + "CLI": [ + "Build the instrumented model with the Verminator-enabled Verilator", + "Execute a configured fault-injection campaign" + ], + "API": [ + "SystemVerilog DPI fault-control hooks", + "Custom C++ campaign-control integration" + ], + "inputArtifacts": [ + { + "artifact": "RTL design", + "format": "SystemVerilog/Verilog" + }, + { + "artifact": "Fault-injection configuration", + "format": "Configuration files" + }, + { + "artifact": "Optional custom campaign controller", + "format": "C++ source" + } + ], + "outputArtifacts": [ + { + "artifact": "Instrumented simulation model", + "format": "C++/executable" + }, + { + "artifact": "Fault analysis report", + "format": "Report/log" + }, + { + "artifact": "Simulation results", + "format": "Logs and result data" + } + ] + }, + "deployment": { + "bundle": "Open-source Git repository containing the Verilator extension and campaign framework" + }, + "features": { + "purpose": "Add simulation-based fault injection to Verilator through AST manipulation and DPI hooks.", + "validatedCapabilities": [ + "DPI-hook insertion", + "Custom fault-model support", + "Executable simulation generation", + "Manual user-defined campaign execution" + ], + "limitations": [ + "Literal and implicit HDL types/signals are limited to a maximum width of 64 bits.", + "Some automated analysis and preset features were incomplete at the D4.5 cut-off." + ], + "publicRepositoryStatus": "Public", + "sourceBasis": { + "deliverable": "ISOLDE D4.5 - Software for Hardware Design and Validation Implementation", + "section": "3.4.1 Verilator-based Fault-Injection Framework", + "swIpCardModel": "Schema v0.9 with basicInfo, systemLevelInfo, interfaces, deployment and features" + }, + "requirementsSummary": { + "count": 8, + "ids": [ + "FI-RTL-01", + "FI-RTL-02", + "FI-RTL-03", + "FI-RTL-04", + "FI-RTL-01", + "FI-RTL-02", + "FI-RTL-03", + "FI-RTL-04" + ] + }, + "metadataReview": { + "partnerReviewRequired": true, + "items": [ + "Replace the metadata release identifier with the exact product/repository version where available.", + "Confirm public repository or product URL.", + "Confirm licensing and redistribution wording.", + "Add a tool-specific TRL only if the partner has approved it." + ] + } + } +} diff --git a/ip_cards/HM_Verminator_SW_IP_Card.pdf b/ip_cards/HM_Verminator_SW_IP_Card.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f910dcc1c265ddd96647be2f5a6c54eb66039b73 GIT binary patch literal 37643 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 F{|k+3>;M1& literal 0 HcmV?d00001 From 1874c543b3ca9f18cdd9e69f88de9587be8290b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20Schr=C3=B6ter?= <151610807+joschroeter@users.noreply.github.com> Date: Thu, 8 Oct 2026 12:27:07 +0200 Subject: [PATCH 2/3] doc: add URLs for Verilator-based Fault-Injection Framework --- ips/isolde.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ips/isolde.json b/ips/isolde.json index 8e2570a..00cf069 100644 --- a/ips/isolde.json +++ b/ips/isolde.json @@ -1683,7 +1683,7 @@ { "Project": "ISOLDE", "Name": "Verilator-based Fault-Injection Framework", - "URL": "", + "URL": "https://github.com/hm-aemy/verminator", "License": [ "LGPL-3.0", "Apache-2.0" @@ -1699,8 +1699,8 @@ "Software", "Tool" ], - "IP_CARD_URL": "", - "IP_CARD_PDF_URL": "" + "IP_CARD_URL": "ip_cards/HM_Verminator_SW_IP_Card.json", + "IP_CARD_PDF_URL": "ip_cards/HM_Verminator_SW_IP_Card.pdf" }, { "Project": "ISOLDE", From 5c0f83e7d4ef127150aa15a6820ea12597a8ac59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20Schr=C3=B6ter?= <151610807+joschroeter@users.noreply.github.com> Date: Thu, 8 Oct 2026 14:07:43 +0200 Subject: [PATCH 3/3] fix: fix license and add description Updated project license and description for ISOLDE. --- ips/isolde.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ips/isolde.json b/ips/isolde.json index 00cf069..7124aae 100644 --- a/ips/isolde.json +++ b/ips/isolde.json @@ -1685,11 +1685,10 @@ "Name": "Verilator-based Fault-Injection Framework", "URL": "https://github.com/hm-aemy/verminator", "License": [ - "LGPL-3.0", - "Apache-2.0" + "Others" ], "Status": "", - "Description": "TBD", + "Description": "A Fault-Injection framework automating the usage of the Verilator extension, which enables fault injection simulation with Verilator via SystemVerilogs DPI functionality.", "WI": [ "ID 4.3.07" ],