Jlm
verilator-harness-hls.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2021 David Metz <david.c.metz@ntnu.no>
3  * See COPYING for terms of redistribution.
4  */
5 
6 #ifndef JLM_HLS_BACKEND_RHLS2FIRRTL_VERILATOR_HARNESS_HLS_HPP
7 #define JLM_HLS_BACKEND_RHLS2FIRRTL_VERILATOR_HARNESS_HLS_HPP
8 
11 
12 namespace jlm::hls
13 {
14 
15 std::string
16 ConvertToCType(const rvsdg::Type * type);
17 
18 std::optional<std::string>
19 GetReturnTypeAsC(const rvsdg::LambdaNode & kernel);
20 
21 std::tuple<size_t, std::string, std::string>
22 GetParameterListAsC(const rvsdg::LambdaNode & kernel);
23 
25 {
27 
28  std::string
29  extension() override
30  {
31  return "_harness.cpp";
32  }
33 
34  std::string
35  GetText(llvm::LlvmRvsdgModule & rm) override;
36 
37 public:
44  explicit VerilatorHarnessHLS(util::FilePath verilogFile)
45  : VerilogFile_(std::move(verilogFile))
46  {}
47 };
48 
49 }
50 
51 #endif // JLM_HLS_BACKEND_RHLS2FIRRTL_VERILATOR_HARNESS_HLS_HPP
std::string GetText(llvm::LlvmRvsdgModule &rm) override
VerilatorHarnessHLS(util::FilePath verilogFile)
std::tuple< size_t, std::string, std::string > GetParameterListAsC(const rvsdg::LambdaNode &kernel)
std::optional< std::string > GetReturnTypeAsC(const rvsdg::LambdaNode &kernel)
std::string ConvertToCType(const rvsdg::Type *type)
static std::string type(const Node *n)
Definition: view.cpp:255