首页 > 编程语言 >adoc转换html+UPF低功耗仿真例子+python转换C代码+readmemh的@使用

adoc转换html+UPF低功耗仿真例子+python转换C代码+readmemh的@使用

时间:2023-10-01 18:12:40浏览次数:36  
标签:asciidoctor 转换 readmemh 供电 adoc 低功耗 html https

adoc转换html

adoc这种格式是很多riscv文档使用的格式,该格式可以生成pdf,生成html。
生成html的好处是,选中和翻译方便,复制粘贴方便。
首先是gem软件要安装,这个软件似乎是ruby相关的(RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries),然后就可以安装asciidoctor软件,使用该软件做转换。
gem的安装:
https://www.jianshu.com/p/b6a6de7c124c
http://daner1990.github.io/工具/2015/10/12/install-ruby-in-windows/
asciidoctor中文手册:
https://github.com/asciidoctor/asciidoctor/blob/main/README-zh_CN.adoc
Ruby Gems 镜像使用帮助:
https://mirrors.tuna.tsinghua.edu.cn/help/rubygems/

gem install asciidoctor
asciidoctor README.adoc

ruby升级

https://www.dandelioncloud.cn/article/details/1512439829882314754

rvm -v
curl -L get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
rvm list known
rvm install ruby 2.4.1
ruby -v

UPF低功耗仿真例子

concepts involved in defining power intent using Unified Power Format (UPF)
这部分没有试过,只是大体看看例子做了什么,什么是UPF,用什么软件,需要做什么样的编程操作。
下面是原始链接:
https://bbs.eetop.cn/thread-595609-1-1.html

低功耗要求,即power intent:顶层模块为TOP,而TOP中例化了一个子模块,其例化名为instA1,具体的代码如下所示:
inst的模块的代码:
image
TOP模块的代码:
image
设计需要为:

顶层TOP 的供电轨道为VDD和VSS,而instA1的供电轨道为VDDA和VSS,
当VDD掉电后instA1的out1端口也被关掉,out2不受VDD的影响。

低功耗的要求使用一些函数实现,通过查找IEEE1801-2018等手册,获知每个函数的作用。
根据要求创建了两个电源域,并且为电源域指定了供电端口和供电线,并将供电端口和供电线进行连接构成供电网络,
而且还为两个电源域显式的指定了主供电线网络,最后根据要求,VDD掉电后instA1的out1也将被关掉,
这样需要为instA1的out1端口指定相对的供电线VDD。
image
然后创建testbench:
image

vcsmvsim  -debug_all  -upf  demo.upf  -sverilog upf_package.sv  &

然后看波形

形式验证 formal

都是这个视频里的,有需要的时候还要再看一遍。
https://www.bilibili.com/video/BV1he4y1J7Tp/?vd_source=0b160b3f23f010d84a4c31e761257ea4

对于sysnopsy,用的是vcf仿真工具,配合verdi使用。
形式验证包括了等价性检查和属性检查。
image
对于一个小型的系统,大体上需要覆盖的验证模块由以下的图进行说明:
● 子模块的功能
● 子模块之间的连接性
● 数据通路的正确性(连接性相同)
● 接口协议
● 内存一致性
● 控制单元的功能
● debug接口等
vcf使用12个app完成这些功能仿真存在的不足和形式验证的擅长点
image
image

检查x态赋值

0和1同时assign给了一个信号的情况
image

屏蔽掉部分检查结果

image

保存检查结果

image

检查状态机卡死的问题

image

查看统计报告

image

重新执行形式验证

image

检查越界访问

下图中,由于定义的时候,变量左边是宽度,但是右边本质是index,index的取值只能是0或者1,当index为2,则报错。
image

形式验证要求

RTL可综合

启动脚本

image

检查连接性

检查连接性依赖的excel表格,可以有表达式的。
image

python转换C代码

对于非计算密集型任务,加速效果不明显,甚至不能加速。
第一步是文件转存pyx后缀防止被识别
第二步是编写setup文件执行转换

from setuptools import setup
from Cython.Build import cythonize

setup(ext_modules=cythonize('fibo.pyx'))

第三步是开始转换

python setup.py build_ext --inplace

第四步是使用转换得到的so文件新的python库中和使用
期间可以将build目录,pyx文件等都删掉,只留下以下文件和so文件。so文件会被导入。

import time
from fibo import fib

start = time.time()
result = fib(40)
end = time.time()
print('斐波拉契数列第40项为:' + str(result)+
      '耗时:'+str(end - start)+'秒')

readmemh的@使用

存储到数组中指定的位置上:
以下在存储的时候,333被存储在mem[5]的位置

111
222
@5
333

标签:asciidoctor,转换,readmemh,供电,adoc,低功耗,html,https
From: https://www.cnblogs.com/bai2022/p/17739077.html

相关文章

  • 基本数据类型及转换
    基本数据类型及转换代码//example.gopackagetestimport"fmt"funcBasicDataTypes(){ fmt.Println("整数类型") var( n1=0b0101//二进制,默认为int n2int8=0o77//八进制 n3uint16=0xAF//十六进制 ) //%T代表打印该变量的类型 fmt.P......
  • Python代码转换成C++
    Python和C++是两种不同的编程语言,但它们都有各自的优势和适用场景。在某些情况下,我们可能需要将Python代码转换成C++代码,以获得更高的执行效率或更好的性能。本文将从多个方面介绍如何将Python代码转换为C++代码。一、代码结构Python和C++在代码结构上存在一些差异。Python是一种解......
  • 【中秋国庆不断更】XML在HarmonyOS中的生成,解析与转换(下)
    一、XML解析对于以XML作为载体传递的数据,实际使用中需要对相关的节点进行解析,一般包括解析XML标签和标签值、解析XML属性和属性值、解析XML事件类型和元素深度三类场景。XML模块提供XmlPullParser类对XML文件解析,输入为含有XML文本的ArrayBuffer或DataView,输出为解析得到的信息......
  • linux 中 将ASCII码 转换是十进制数值
     001、[root@pc1test]#echo-n!|od-An-tu1##将ASCII码感叹号转换为十进制数值33 002、[root@pc1test]#echo-n!|od-An##将ASCII感叹号转换为8进制数值000041 003、[root@pc1test]#echo-n!|od-An000041[root@pc1t......
  • kettle教程:spoon kettle数据转换示例
    Kettle:四大家族(核心组件)Chef(中文:厨师)、Kitchen(中文:厨房)、Spoon(中文:勺子)、Pan(中文:平底锅)Chef—工作(job)设计工具(GUI方式)。Kitchen—工作(job)执行器(命令行方式)。Spoon—转换(transform)设计工具(GUI方式)。pan—转换(transform)执行器(命令行方式)。Job和Transformation......
  • C++ 转换构造函数
    在C++中如果一个构造函数只有一个参数,那么这个构造函数就是转换构造函数(ConvertingConstructor),这个构造函数可以将参数类型转换成构造函数所在的类对应的类型。举个例子,假设有如下类Complex:1classComplex{2private:3inti;4intj;56public:......
  • ​​pandas.get_dummies()​​ 是一个用于执行独热编码(One-Hot Encoding)的 pandas 函
    pandas.get_dummies()是一个用于执行独热编码(One-HotEncoding)的pandas函数。它用于将分类(或离散)特征转换为模型可以处理的二进制格式,以便更好地在机器学习算法中使用。独热编码将每个不同的类别值转换为一个新的二进制特征列,其中每个列代表一个类别,并且只有一个值为1,其余为0......
  • 【中秋国庆不断更】XML在HarmonyOS中的生成,解析与转换(上)
    一、XML概述XML(可扩展标记语言)是一种用于描述数据的标记语言,旨在提供一种通用的方式来传输和存储数据,特别是Web应用程序中经常使用的数据。XML并不预定义标记。因此,XML更加灵活,并且可以适用于广泛的应用领域。XML文档由元素(element)、属性(attribute)和内容(content)组成。​......
  • ArcGIS地图投影与坐标系转换的方法
      本文介绍在ArcMap软件中,对矢量图层或栅格图层进行投影(即将地理坐标系转为投影坐标系)的原理与操作方法。  首先,地理坐标系与投影坐标系最简单的区别就是,地理坐标系用经度、纬度作为空间衡量指标,而投影坐标系用米、千米等长度单位作为空间衡量指标。  在GIS处理中,将原本为......
  • FX3U-3A-ADP模拟量和数字量之间转换
    简单的例子:0-10V对应0-8,4-20mA对应0-30 以下是对上面例子的详解:电压:  电压(0-10V)0-10V对应着数字量0-4000数字量与变频器HZ量之间的关系是(4000-0)/(50-0)=80故如果你想转多少HZ数,就需要在后面(乘上80),这个才是你HZ数对应的数字量 注意:如果设置了M8262ON是电流输出......