<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>June</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Model-driven engineering in digital signal processing⋆</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Shirin Hussein</string-name>
          <email>shirin.s.hussein@ucl.ac.uk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sobhan Y. Tehrani</string-name>
          <email>sobhan.tehrani@ucl.ac.uk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hossein Beheshti</string-name>
          <email>beheshti_h@alumni.iust.ac.ir</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Iran University of Science and Technology (IUST)</institution>
          ,
          <addr-line>Tehran</addr-line>
          ,
          <country country="IR">Iran</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Joint Proceedings of the STAF 2025 Workshops: OCL</institution>
          ,
          <addr-line>OOPSLE, LLM4SE, ICMM, AgileMDE, AI4DPS, and TTC. Koblenz</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University College London (UCL)</institution>
          ,
          <addr-line>Gower St, London WC1E 6BT</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2025</year>
      </pub-date>
      <volume>1</volume>
      <fpage>0</fpage>
      <lpage>13</lpage>
      <abstract>
        <p>This paper introduces a model-driven engineering (MDE) approach for automating MATLAB and Simulink model development in field-programmable gate array (FPGA) based digital signal processing (DSP). To describe system parameters, a domain-specific language (DSL) called YAML is used, which is then processed by a Python script to dynamically produce MATLAB scripts and Simulink models. This automation decreases development time while also ensuring model consistency. The proposed approach is tested by automatically translating a YAML-defined DSP model to MATLAB and Simulink representations. We also discuss how hardware description language (HDL) coder can extend this procedure to FPGA implementation by producing Verilog/VHDL code.</p>
      </abstract>
      <kwd-group>
        <kwd>gate array</kwd>
        <kwd>Model-driven engineering</kwd>
        <kwd>digital signal processing</kwd>
        <kwd>domain-specific language</kwd>
        <kwd>MATLAB</kwd>
        <kwd>field-programmable</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>(H. Beheshti)</p>
      <p>CEUR
Workshop</p>
      <p>ISSN1613-0073
generation, provide a structured method for translating high-level DSP descriptions into optimized
implementations.</p>
      <p>
        Domain-specific languages (DSLs) have become an efective tool for expressing system
specifications at a higher abstraction level in order to further improve automation. Designers can improve
model consistency and reduce the reliance on manual coding by using a DSL to capture system
parameters and processing components in an organized way [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Additionally, this abstraction makes
automated code generation easier, especially for FPGA deployment and hardware acceleration, where
system specifications must be efectively converted into hardware description language (HDL) code for
synthesis.
      </p>
      <p>
        In this work, a YAML-based DSL is employed to automate the creation of MATLAB and Simulink
models using an MDE-based methodology. YAML (YAML Ain’t Markup Language) is a human-friendly
data serialization language designed for easy use with modern programming languages [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Users can
define signal characteristics, processing stages, and system limitations in a structured way using the
suggested approach. Following that, a Python script converts this specification into Simulink models
and MATLAB scripts, eliminating the need for manual model building and guaranteeing consistency
and efectiveness in the creation of DSP systems. Additionally, the created models can be converted to
HDL for FPGA implementation by utilizing MATLAB’s HDL Coder. The efectiveness of using YAML
in MDE contexts for model management and transformation has been previously demonstrated in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        YAML has gained popularity as a choice for organizing configuration data due to its straightforward
syntax, readability for humans, and user-friendly nature. Provides essential elements such as mappings,
sequences, and scalar values, making it ideal for representing data in a hierarchical format. The features
of YAML have contributed to its popularity in areas such as cloud infrastructure management, DevOps
practices, and API development [
        <xref ref-type="bibr" rid="ref10 ref11 ref12">10, 11, 12</xref>
        ]. Furthermore, YAML has shown its value in software
engineering research, especially in MDE, by facilitating expressive and lightweight domain-specific
modeling and aiding in automation of tasks related to code generation and model transformation [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>This research enhances the Agile MDE paradigm by facilitating quick, iterative development of DSP
systems through automation and elevated abstractions. The implementation of a YAML-based DSL
enables developers to quickly adjust system specifications, while the automated creation of MATLAB and
Simulink models fosters rapid development cycles and constant prototyping. These features resonate
with Agile principles, including adaptability, rapid feedback, and ongoing model refinement.</p>
      <p>The structure of the paper is as follows: Section 2 reviews related work in MDE for DSP and
FPGAbased systems. Sections 3 and 4 detail the proposed methodology, including DSL design, automated
model generation and, its applicability to FPGA deployment. Section 5 presents an evaluation of the
approach. Finally, Section 6 concludes with key findings and future research directions.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related Work</title>
      <p>
        MDE has become a preferred approach in areas such as software development, embedded systems,
and high-integrity systems. What makes it so appealing is its ability to reduce repetitive work by
automating parts of the design process, especially code generation. Existing research explores how
model-to-model and model-to-code transformations can help streamline system development [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. This
kind of automation plays an important role in DSP workflows, where it can reduce the amount of
manual efort needed and make it easier to adapt designs as requirements change. In many DSP projects,
MDE has been used to keep development consistent across diferent phases and to speed things up
[
        <xref ref-type="bibr" rid="ref1 ref14 ref15 ref16">14, 15, 16, 1</xref>
        ].
      </p>
      <p>However, applying MDE to the design of DSP systems, particularly when working with FPGA-based
platforms, remains challenging due to hardware-specific constraints and the limited capabilities of
current model synthesis approaches [17, 18, 19]. Numerous current tools depend on rigid configurations,
providing minimal versatility for model personalization or alteration modifications [ 20]. Furthermore,
incorporating MDE into hardware design processes presents distinct challenges that are not found in
software-focused scenarios, particularly when aiming for FPGA architecture [ 21].</p>
      <p>There has been growing evidence supporting the value of MDE in areas like embedded systems
and sensing technologies. One example can be seen in work that used Simulink to model sensing
and actuation subsystems, showing how MDE approaches can simplify the design process through
automated code generation [22]. This kind of simplification is closely related to our own eforts in
automating the development of DSP systems.</p>
      <p>In a separate case, a framework was introduced for embedded system design that leverages model
transformations to automate design generation [23]. By doing so, it not only eases the exploration of
diferent design options but also cuts down on overall development complexity. These findings further
emphasize the strength of structured, model-driven workflows, especially when applied to DSP-based
and FPGA-based systems. Being able to describe DSP processes through high-level models is especially
useful when bridging the gap between algorithm development and actual hardware implementation.</p>
      <p>
        Some studies have explored the role of DSLs in the design of DSP systems. Feldspar, a DSL designed
for DSP algorithms, employs a functional programming approach to generate optimized C code for
execution, demonstrating the potential for high-level abstraction in DSP workflows [ 24]. Similarly, a
survey of FPGA-based DSLs highlights how high-level modeling techniques streamline the transition
from software-defined models to eficient hardware implementations, reducing development complexity
and improving adaptability across diferent platforms [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>Despite these advancements, many current workflows still depend heavily on manual setup when it
comes to configuring models and generating executable code. Many existing tools adhere to predefined
toolchains, making it hard to adapt quickly to diferent DSP architectures. When targeting FPGA
deployment for DSP systems, users usually choose one of the two options: writing everything manually
in Verilog or VHDL or using MATLAB’s System Generator (SysGen) together with Simulink.</p>
      <p>In the first case, using Verilog or VHDL, DSP functions are written directly in a hardware description
language. This gives users complete control over how FPGA resources are used and allows them to
ifne-tune performance. But the downside is clear: it is slow, prone to mistakes, and requires deep
hardware knowledge. For users who are more comfortable working at a high level, the transition to
HDL presents a significant challenge, and it slows down rapid prototyping.</p>
      <p>On the flip side, SysGen ofers a more visual design environment by integrating with Simulink. It
lets users build DSP systems using block diagrams, which can be a lot more intuitive. However, it is
not without its own challenges. Designers still have to manually pick blocks, adjust parameters, and
configure the toolchain. In addition, SysGen does not really ofer a clean way to abstract or generalize
designs, which makes iterating on diferent DSP setups harder than it should.</p>
      <p>In this work, we build on previous research by introducing a YAML-based DSL for defining DSP
systems in a more structured way. This DSL addresses some of the pain points in both traditional HDL
workflows and block-based environments like SysGen. Using Python scripts, we automate the creation
of MATLAB and Simulink models, cutting down on repetitive tasks and improving reusability across
various DSP setups. We also show how this process connects smoothly to FPGA deployment using
HDL Coder, efectively bridging the gap between high-level modeling and low-level implementation.
The result is a more flexible workflow that allows users to define, simulate, and deploy DSP systems
without being constrained by hardware-specific requirements or inflexible toolchains.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Methodology</title>
      <p>This section presents the proposed DSL-driven approach to automate MATLAB and Simulink model
generation and FPGA deployment. The technique presents a standardized workflow for converting
high-level DSP system specifications into executable models, assuring consistency and automation
throughout the design process.</p>
      <p>As shown in Figure 1, the process includes four key stages:
• Model Definition
• DSL Parsing &amp; Code Generation
• Simulink Model Generation
• Extension to Hardware Implementation</p>
      <p>Each stage contributes significantly to the automation of DSP system modeling, the elimination of
manual configuration, and the ability to generate hardware seamlessly. The proposed approach follows
a structured workflow that transforms high-level DSP system specifications into executable models,
ensuring consistency and automation throughout the design process. As illustrated in Figure 1, the
process begins with the definition of the model, where the user defines the DSP system using a DSL
based on YAML. This includes specifying signal characteristics such as type, frequency, and amplitude,
along with processing components such as filters and sampling rates. The next step, DSL parsing
and MATLAB script generation, involves a Python-based automation script that reads the YAML file,
extracts key parameters, and generates the corresponding MATLAB code, eliminating the need for
manual scripting and reducing inconsistencies. Once the MATLAB script is generated, the process
moves to Simulink model generation, where the system is dynamically constructed in Simulink based
on the YAML input. This includes the automatic addition of signal sources, processing blocks, and
visualization tools, allowing for a fully automated system representation. Finally, the generated Simulink
model can be extended to hardware implementation through HDL code generation. By integrating
FPGA-compatible blocks, MATLAB’s HDL coder can be used to generate synthesizable VHDL/Verilog
code, making the model suitable for deployment on FPGA platforms. This workflow provides a flexible
and scalable approach to DSP system design, reducing manual efort while ensuring eficient code
generation. The following sections detail each transformation step in the methodology.</p>
      <sec id="sec-3-1">
        <title>3.1. Model Definition</title>
        <p>The YAML based DSL defines DSP system components in a systematic and intuitive manner, speeding
the specification of signal sources, filtering processes, and system parameters. This approach separates
DSP design from low-level implementation concerns through the use of a high-level abstraction, making
it more flexible, scalable, and easy to alter.</p>
        <p>During this model definition stage, users define crucial DSP attributes such as signal type, frequency,
amplitude, phase, and sampling rate. Furthermore, processing components such as filters can be set with
appropriate parameters such as cutof frequency and filter type. An example of a YAML specification is
shown in Figure 2.</p>
        <p>signal:
type: sine
frequency: 1e6
amplitude: 1.0
phase: 45
processing:
filter: lowpass # type of filter
cutoff: 200e3 # 200 kHz
sampling_rate: 10e6 # 10 MHz
# 1 MHz
# 1V
# 45 degrees</p>
        <p>This structured method helps separate the high-level design of DSP systems from the actual
implementation in MATLAB and Simulink. By using YAML to provide DSP settings, developers may easily
change system specs without having to make repeated changes to the underlying code, which speeds
up prototyping and increases flexibility in general. It also helps keep things consistent across diferent
configurations, which reduces the chance of errors and makes it easier to adapt designs to various
hardware platforms.</p>
        <p>In addition, the YAML file acts as a machine-readable blueprint that automated scripts can use to
generate executable models. This setup not only speeds things up, but it also ensures that any changes
made to the DSP design are automatically reflected throughout the development pipeline from early
simulation stages all the way to hardware deployment.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. DSL Processing and Code Generation</title>
        <p>A Python-based automation tool that parses the YAML file and dynamically generates MATLAB scripts
and Simulink models helps to convert high-level DSP requirements to executable models. This automated
technique maintains consistency, eliminates manual efort, and allows quick prototyping of DSP systems
by converting abstract specifications into functional implementations.</p>
        <p>The script pulls key information from the YAML file, such as signal properties (frequency, amplitude,
phase) and processing parameters such as filter type, cutof frequency, and sampling rate. It then
converts these data into MATLAB code for signal generation, filtering operations, and the construction
of corresponding Simulink models. Figure 3 presents a simplified example of how the script converts
YAML input into functional MATLAB code.</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. Simulink Model Generation</title>
        <p>After the Python script is executed, it generates a MATLAB script that is subsequently run by MATLAB.
This process results in the dynamic creation of a Simulink model. The following command is used:</p>
        <p>Simulink block diagrams are automatically generated based on YAML defined parameters. This
technique eliminates the need for manual block selection and configuration, guaranteeing that the
model complies with the user-defined DSP specifications. The created model contains a sine wave
block, which serves as the signal source and is configured with the desired frequency, amplitude, and
phase values. The signal is then passed through a low-pass filter block, which performs the filtering
operation at the specified cutof frequency. Finally, the model includes a scope block, which visualizes
the processed signal and allows study and verification of the generated output. Figure 4 illustrates the
autogenerated Simulink model based on the YAML input.</p>
        <p>import yaml
# Loading YAML DSL file
with open("signal_processing.yml", "r") as file:</p>
        <p>config = yaml.safe_load(file)
# Extracting parameters from YAML
frequency = float(config["signal"]["frequency"])
amplitude = float(config["signal"]["amplitude"])
phase = float(config["signal"]["phase"])
cutoff = float(config["processing"]["cutoff"])
sampling_rate = float(config["processing"]["sampling_rate"])
# Ensuring stopband frequency is greater than the passband frequency
stopband = cutoff * 1.5
# Block path
lowpass_filter_path = 'dspfdesign/Lowpass Filter'
# Generating MATLAB Simulink script
simulink_code = f"""
% Creating and opening a new Simulink Model
new_system('GeneratedModel');
open_system('GeneratedModel');
% Adding Sine Wave Block
add_block('simulink/Sources/Sine Wave', 'GeneratedModel/SineWave', ...</p>
        <p>'Frequency', '{frequency}', 'Amplitude', '{amplitude}', 'Phase', '{</p>
        <p>phase}', ...</p>
        <p>'SampleTime', '1/{sampling_rate}');
% Adding Lowpass Filter Block
add_block('{lowpass_filter_path}', 'GeneratedModel/LowpassFilter');
% Setting correct filter parameters
set_param('GeneratedModel/LowpassFilter', 'PassbandFrequency', '{cutoff}');
set_param('GeneratedModel/LowpassFilter', 'StopbandFrequency', '{stopband}'</p>
        <p>);
set_param('GeneratedModel/LowpassFilter', 'SampleRate', '{sampling_rate}');
% Adding Spectrum Analyzer Block
add_block('audiosinks/Spectrum Analyzer', 'GeneratedModel/SpectrumAnalyzer'</p>
        <p>);
% Connecting blocks
add_line('GeneratedModel', 'SineWave/1', 'LowpassFilter/1');
add_line('GeneratedModel', 'LowpassFilter/1', 'SpectrumAnalyzer/1');
% Saving and Running the Model
save_system('GeneratedModel');
sim('GeneratedModel');
% Opening the Spectrum Analyzer to view frequency response
open_system('GeneratedModel/SpectrumAnalyzer');
"""
# Saving MATLAB script for Simulink
with open("generated_simulink.m", "w") as simulink_file:</p>
        <p>simulink_file.write(simulink_code)
print(" Simulink model script generated successfully!")</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Extending to FPGA Implementation</title>
      <p>The Simulink models generated can be extended for FPGA implementation using the MATLAB HDL
coder. By configuring the Simulink model with HDL-compatible blocks, the system can be synthesized
into Verilog or VHDL code. The following MATLAB command is used to generate HDL from a Simulink
block:</p>
      <p>makehdl('GeneratedModel')</p>
      <p>This step enables the seamless transition from high-level DSP design to hardware realization, bridging
the gap between software-defined models and FPGA deployment.</p>
      <p>The automation of MATLAB script generation and Simulink model construction provides numerous
benefits that improve the eficiency and accuracy of DSP system development. One of the key advantages
is consistency and accuracy. By removing manual scripting, the system ensures that the created models
adhere properly to user-defined parameters, reducing the possibility of errors and inconsistencies.
This ensures that each created model retains the desired design characteristics, allowing for more
consistent and predictable results. Rapid prototyping is yet another important benefit. Instead of
requiring substantial manual adjustments in MATLAB or Simulink, developers may quickly test various
DSP setups by just altering the YAML file. Scalability is a further significant component of this approach.
More complicated DSP workflows, such as multirate processing, adaptive filtering, and FPGA-based
implementations, can be quickly expanded to using the YAML-based DSL. Without having to rewrite
low-level code, users may conveniently add new processing stages, alter current configurations, or
incorporate more signal processing components by organizing DSP system definitions at a high level.
Additionally, this approach provides smooth hardware integration. Eficient deployment on FPGA-based
platforms is made achievable by the direct extension of the created Simulink model to HDL production.
By bridging the gap between real-time hardware implementations and software-defined DSP models,
this approach makes it feasible to generate eficient code for high-performance embedded systems.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Evaluation and Comparison</title>
      <p>To determine the eficiency of the proposed DSL-driven MATLAB/Simulink automation, we compare it
to typical Verilog-based DSP simulations. Although Verilog is widely used for cycle-accurate simulation
and FPGA synthesis, it poses dificulties in development, debugging, and automation. In contrast,
MATLAB/Simulink provides a higher-level modeling environment that interacts well with DSP
procedures but may impose a significant processing burden. Table 1 compares Verilog-based simulation and
MATLAB/Simulink modeling in the context of DSP system development [25, 26, 27, 28, 29].</p>
      <p>According to the comparison Table 1, our solution expands on MATLAB/Simulink’s modeling
capabilities while addressing its limitations in manual configuration and automation. Because MATLAB
ofers a structured environment for DSP algorithm development and verification, we use its interaction
with Simulink to automate model building and simulation. Unlike manual block-based design, our
approach uses a DSL-driven automation framework in which DSP system parameters are defined
in YAML and automatically translated into MATLAB scripts and Simulink models. This maintains
consistency, eliminates manual work, and speeds up the transition from algorithm design to FPGA
implementation via MATLAB’s HDL Coder for hardware synthesis. In a standard approach, changing
Simulink parameters, for example, the filter cutof or signal frequency, requires opening the model
manually, finding the required blocks, and changing their settings via the graphical user interface. In
particular, when used over several models or iterations, this procedure can be repetitious and prone
to errors. The suggested MDE method enables such changes to be implemented with only one line
change in the YAML configuration. After that, the system automatically regenerates the Simulink model
and the MATLAB script, ensuring that all updates are performed uniformly and without the need for
human intervention. This speeds up iterative development, improves reliability, and streamlines the
modification process.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion</title>
      <sec id="sec-6-1">
        <title>Verilog Simulation</title>
      </sec>
      <sec id="sec-6-2">
        <title>MATLAB/Simulink Modeling</title>
        <p>Requires manual coding of DSP opera- Uses block-based modeling, reducing
tions and testbenches. coding efort.</p>
        <p>Cycle-accurate, low-level signal repre- System-level modeling with
solversentation. based execution.</p>
        <p>Uses waveform viewers (e.g., Model- Built-in visualization (Scopes,
SpecSim, Vivado). trum Analyzer).</p>
        <p>Modifications require HDL code
changes.</p>
        <p>Block parameters can be adjusted more
easily.</p>
        <p>Directly synthesizable but requires op- Requires conversion to HDL using HDL
timization. Coder.</p>
        <p>Low-level hardware validation and
FPGA prototyping.</p>
        <p>Algorithm development, high-level
DSP design.</p>
        <p>In this work, we introduced an MDE approach aimed at automating the creation of DSP models using a
YAML-based DSL. By combining this with Python-driven automation, we showed how MATLAB scripts
and Simulink models can be dynamically generated, significantly reducing manual efort and promoting
consistency across designs. This approach helps close the gap between high-level DSP design and
hardware implementation, making it easier to go from abstract model definitions to HDL code that is
ready for FPGA deployment using MATLAB’s HDL Coder.</p>
        <p>We set out to tackle some of the challenges that come with traditional DSP design methods. Writing
everything manually in Verilog or VHDL can ofer precise control over hardware, but it is time consuming
and demands deep hardware knowledge. On the other hand, tools like MATLAB’s SysGen give users a
more visual interface but still involve a lot of hands-on configuration, which can slow things down,
especially when dealing with larger or more complex systems. What we are proposing streamlines this
entire process by automating model generation and encouraging code reuse, which makes development
faster and easier to scale.</p>
        <p>Future work will focus on extending the framework to handle more advanced DSP use cases, such
as multi-rate signal processing and adaptive filtering. We are also exploring ways to optimize how
hardware resources are allocated, and we may experiment with alternative ways to define system
behavior beyond YAML. Finally, testing the framework on real FPGA hardware will give us a clearer
picture of how well it performs in practical scenarios.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Declaration on Generative AI</title>
      <p>The authors declare that no generative artificial intelligence tools were used to generate text, figures,
code, data, analyses, or reviews for this submission.
ment and Model-Driven Engineering: Two Sides of the Same Coin?, Software and Systems Modeling ,
vol. 21, no. 2, pp. 437–446, Springer, 2022.
[17] R. Dalbouchi, C. Trabelsi, M. Elhajji, and A. Zitouni, A Model-Driven Platform for Dynamic</p>
      <p>Partially Reconfigurable Architectures: A Case Study of a Watermarking System, Micromachines,
[18] O. Diouri, A. Gaga, H. Ouanan, S. Senhaji, S. Faquir, and M. O. Jamil, Comparison Study of Hardware
Architectures Performance Between FPGA and DSP Processors for Implementing Digital Signal
Processing Algorithms: Application of FIR Digital Filter, Results in Engineering, vol. 16, pp. 100639,
Elsevier, 2022.</p>
      <p>vol. 14, no. 2, pp. 481, MDPI, 2023.
[19] L. Jóźwiak, N. Nedjah, and M. Figueroa, Modern Development Methods and Tools for Embedded</p>
      <p>Reconfigurable Systems: A Survey, Integration, vol. 43, no. 1, pp. 1–33, Elsevier, 2010.
[20] G. Singh, M. Alser, D. S. Cali, D. Diamantopoulos, J. Gómez-Luna, H. Corporaal, and O. Mutlu,
FPGA-based near-memory acceleration of modern data-intensive applications, IEEE Micro, vol. 41,
no. 4, IEEE, 2021, pp. 39–48.
[21] Q. Sun, T. Chen, S. Liu, J. Chen, H. Yu, and B. Yu, Correlated multi-objective multi-fidelity
optimization for HLS directives design, ACM Trans. Des. Autom. Electron. Syst. (TODAES), vol. 27, no.
4, ACM, New York, NY, 2022, pp. 1–27.
[22] F. S. Gonçalves and L. B. Becker, Model driven engineering approach to design sensing and
actuation subsystems, in: 2016 IEEE 21st International Conference on Emerging Technologies and
Factory Automation (ETFA), IEEE, 2016, pp. 1–8.
[23] F. A. M. do Nascimento, M. F. S. Oliveira, and F. R. Wagner, A model-driven engineering framework
for embedded systems design, Innov. Syst. Softw. Eng., vol. 8, Springer, 2012, pp. 19–33.
[24] E. Axelsson, K. Claessen, G. Dévai, Z. Horváth, K. Keijzer, B. Lyckegård, A. Persson, M. Sheeran,
J. Svenningsson, A. Vajda, Feldspar: A domain specific language for digital signal processing
algorithms, in: Eighth ACM/IEEE International Conference on Formal Methods and Models for
Codesign (MEMOCODE 2010), IEEE, 2010, pp. 169–178.
[25] G. Zheng, S. P. Mohanty, and E. Kougianos, Design and modeling of a continuous-time delta-sigma
modulator for biopotential signal acquisition: Simulink vs. Verilog-AMS perspective, Proc. 3rd Int.</p>
      <p>Conf. Comput., Commun. Netw. Technol. (ICCCNT’12), IEEE, 2012, pp. 1–6.
[26] C. Bäck, Evaluation of high-level synthesis tools for generation of Verilog code from
MATLABbased environments, 2020.
[27] X. Tang, E. Giacomin, G. De Micheli, and P.-E. Gaillardon, FPGA-SPICE: A simulation-based
architecture evaluation framework for FPGAs, IEEE Trans. Very Large Scale Integr. (VLSI) Syst., vol.
27, no. 3, pp. 637–650, IEEE, 2018.
[28] R. Saralegui, A. Sanchez, and Á. de Castro, Eficient hardware-in-the-loop models using automatic
code generation with MATLAB/Simulink, Electronics, vol. 12, no. 13, pp. 2786, MDPI, 2023.
[29] Y. Gu, K. Kintali, and E. Cigan, Model-based design using Simulink, HDL Coder, and DSP Builder
for Intel FPGAs, Matlab Inc. White Paper, 2014.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A. R.</given-names>
            <surname>Da</surname>
          </string-name>
          <string-name>
            <surname>Silva</surname>
          </string-name>
          ,
          <article-title>Model-driven engineering: A survey supported by the unified conceptual model</article-title>
          ,
          <source>Comput. Lang. Syst. Struct.</source>
          , vol.
          <volume>43</volume>
          ,
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          ,
          <year>2015</year>
          , pp.
          <fpage>139</fpage>
          -
          <lpage>155</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>V.</given-names>
            <surname>Cortellessa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. Di</given-names>
            <surname>Pompeo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Eramo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Tucci</surname>
          </string-name>
          ,
          <article-title>A model-driven approach for continuous performance engineering in microservice-based systems</article-title>
          ,
          <source>J. Syst. Softw.</source>
          , vol.
          <volume>183</volume>
          ,
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          ,
          <year>2022</year>
          , p.
          <fpage>111084</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>G.</given-names>
            <surname>Sebastián</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Gallud</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Tesoriero</surname>
          </string-name>
          ,
          <article-title>Code Generation Using Model Driven Architecture: A Systematic Mapping Study</article-title>
          ,
          <source>Journal of Computer Languages</source>
          , vol.
          <volume>56</volume>
          , pp.
          <fpage>100935</fpage>
          ,
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>L.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Sau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Fanni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Viitanen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Christophe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Palumbo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Rafo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Huttunen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Takala</surname>
          </string-name>
          , et al.,
          <article-title>An integrated hardware/software design methodology for signal processing systems</article-title>
          ,
          <source>J. Syst. Archit.</source>
          , vol.
          <volume>93</volume>
          ,
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          ,
          <year>2019</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>19</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>D.</given-names>
            <surname>Akdur</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Garousi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>O.</given-names>
            <surname>Demirörs</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          <article-title>Survey on Modeling and Model-Driven Engineering Practices in the Embedded Software Industry</article-title>
          ,
          <source>Journal of Systems Architecture</source>
          , vol.
          <volume>91</volume>
          , pp.
          <fpage>62</fpage>
          -
          <lpage>82</lpage>
          , Elsevier,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>N.</given-names>
            <surname>Kapre</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bayliss</surname>
          </string-name>
          ,
          <article-title>Survey of domain-specific languages for FPGA computing</article-title>
          ,
          <source>in: 2016 26th International Conference on Field Programmable Logic and Applications (FPL)</source>
          , IEEE,
          <year>2016</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>K.</given-names>
            <surname>Panayiotou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Doumanidis</surname>
          </string-name>
          , E. Tsardoulias,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. L.</given-names>
            <surname>Symeonidis</surname>
          </string-name>
          ,
          <article-title>SmAuto: A domain-specific language for application development in smart environments</article-title>
          ,
          <source>Pervasive Mob. Comput.</source>
          , vol.
          <volume>101</volume>
          ,
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          ,
          <year>2024</year>
          , p.
          <fpage>101931</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C.</given-names>
            <surname>Evans</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Ben-Kiki</surname>
          </string-name>
          ,
          <article-title>and I. döt Net, YAML Ain't Markup Language (YAML™) Version 1</article-title>
          .2,
          <string-name>
            <surname>Mar</surname>
          </string-name>
          .
          <year>2017</year>
          . [Online]. Available: https://yaml.org/spec/1.2/spec.html
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>I.</given-names>
            <surname>Predoaia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Garcia-Dominguez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lenk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Ebel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Burkl</surname>
          </string-name>
          ,
          <article-title>Towards processing YAML documents with model management languages</article-title>
          ,
          <source>Proc. ACM/IEEE 27th Int. Conf. Model Driven Eng. Lang. Syst. (MODELS Companion)</source>
          , pp.
          <fpage>970</fpage>
          -
          <lpage>979</lpage>
          ,
          <year>2024</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>D.</given-names>
            <surname>Calcaterra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Cartelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. Di</given-names>
            <surname>Modica</surname>
          </string-name>
          , and
          <string-name>
            <given-names>O.</given-names>
            <surname>Tomarchio</surname>
          </string-name>
          ,
          <article-title>A Framework for the Orchestration and Provision of Cloud Services Based on TOSCA and BPMN</article-title>
          ,
          <source>Proc. Int. Conf. on Cloud Computing and Services Science (CLOSER)</source>
          , pp.
          <fpage>262</fpage>
          -
          <lpage>285</lpage>
          , Springer,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>A.</given-names>
            <surname>Deljouyi</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Ramsin</surname>
          </string-name>
          ,
          <article-title>MDD4REST: Model-Driven Methodology for Developing RESTful Web Services</article-title>
          ,
          <source>Proc. 10th Int. Conf. on Model-Driven Engineering and Software Development (MODELSWARD)</source>
          , pp.
          <fpage>93</fpage>
          -
          <lpage>104</lpage>
          , INSTICC, SciTePress,
          <year>2022</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>B.</given-names>
            <surname>Piedade</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Dias</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F. F.</given-names>
            <surname>Correia</surname>
          </string-name>
          ,
          <article-title>An Empirical Study on Visual Programming Docker Compose Configurations</article-title>
          ,
          <source>Proc. 23rd ACM/IEEE Int. Conf. on Model Driven Engineering Languages and Systems: Companion Proceedings (MODELS-C)</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          , ACM/IEEE,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>L.</given-names>
            <surname>Burgueño</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. Di</given-names>
            <surname>Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Sahraoui</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          ,
          <article-title>Automation in Model-Driven Engineering: A look back, and ahead</article-title>
          ,
          <source>ACM Trans. Softw</source>
          . Eng. Methodol.,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY,
          <year>2025</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M.</given-names>
            <surname>Brambilla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          ,
          <string-name>
            <surname>Model-Driven Software</surname>
          </string-name>
          Engineering in Practice , Morgan &amp; Claypool Publishers,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>V.</given-names>
            <surname>Cortellessa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. Di</given-names>
            <surname>Pompeo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Eramo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Tucci</surname>
          </string-name>
          ,
          <article-title>A Model-Driven Approach for Continuous Performance Engineering in Microservice-Based Systems</article-title>
          ,
          <source>Journal of Systems and Software</source>
          , vol.
          <volume>183</volume>
          , pp.
          <fpage>111084</fpage>
          ,
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          ,
          <year>2022</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>D.</given-names>
            <surname>Di Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          , J. de Lara,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tisi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          ,
          <string-name>
            <surname>Low-Code</surname>
          </string-name>
          Develop-
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>