[dv regr tool] Publish results in html + fixes

 - In this PR, the results published to the results server is switched
 over from markdown to html directly.
 - Uploaded results reuse the same css style that is already uploaded to
 `reports.opentitan.org/css/style.css`
 - This is just an elementary styling - enough to get the results look
 presentable.

In addition, there are few more updates:
- The history of past regressions are embedded as a section in the
latest results as opposed to being copied over to a separate
history.html
- All DV plan documents are updated to reflect the latest regression
results page correctly
- The results page now also provides a link back to the testplan for
ease of cross referencing the test points in the table.

Signed-off-by: Srikrishna Iyer <sriyer@google.com>
diff --git a/util/dvsim/SimCfg.py b/util/dvsim/SimCfg.py
index afd3084..6001c43 100644
--- a/util/dvsim/SimCfg.py
+++ b/util/dvsim/SimCfg.py
@@ -143,6 +143,7 @@
     def __post_init__(self):
         # Run some post init checks
         super().__post_init__()
+        self.results_title = self.name.upper() + " Simulation Results"
 
     @staticmethod
     def create_instance(flow_cfg_file, proj_root, args):
@@ -400,9 +401,14 @@
             fail_msgs = "\n## List of Failures\n" + fail_msgs
 
         # Generate results table for runs.
-        results_str = "# " + self.name.upper() + " Regression Results\n"
-        results_str += "  Run on " + self.timestamp_long + "\n"
-        results_str += "\n## Test Results\n"
+        results_str = "## " + self.results_title + "\n"
+        results_str += "### " + self.timestamp_long + "\n"
+
+        # Add path to testplan.
+        testplan = "https://" + self.doc_server + '/' + self.rel_path
+        testplan = testplan.replace("/dv", "/doc/dv_plan/#testplan")
+        results_str += "### [Testplan](" + testplan + ")\n\n"
+
         # TODO: check if testplan is not null?
         results_str += self.testplan.results_table(
             regr_results=regr_results,
@@ -413,7 +419,7 @@
         self.results_md = results_str + fail_msgs
 
         # Write results to the scratch area
-        self.results_file = self.scratch_path + "/regr_results_" + self.timestamp + ".md"
+        self.results_file = self.scratch_path + "/results_" + self.timestamp + ".md"
         log.info("Detailed results are available at %s", self.results_file)
         f = open(self.results_file, 'w')
         f.write(self.results_md)