首页 > 编程语言 >vim插件使用python编写+AXI非对齐传输如何发送+verdi配置搜索顺序+verible和verilator介绍

vim插件使用python编写+AXI非对齐传输如何发送+verdi配置搜索顺序+verible和verilator介绍

时间:2023-09-17 18:45:44浏览次数:49  
标签:插件 addr verible bytes vim python 对齐 verilator

vim插件使用python编写

虽然vim有自己的一套语法格式,但是学习成本放着呢,语言那么多,啥都学哪学的过来嘛。
不过vim确实是支持python的,但是是python2,而不是python3,因此语法上的一些问题要兼容下。

这个是官方手册,正确而可靠的部分。
https://vimdoc.sourceforge.net/htmldoc/if_pyth.html

这个是一些实例,不一定对,但是可以参考。
https://www.jb51.net/article/64350.htm

查看是否支持python

vim --version | grep +python

编写示范

按F5以后,会打印信息,然后会在当前行之后插入文本。vim不是一个通用的包,是只能在vim里面使用的一个包。

:map <F5> :call TestPy()<cr>

function! TestPy()
python << EOF
import time
print(time.time())
import vim
print(vim.current.line)
for b in vim.buffers:
  	print(b)
str_t = []
for line in vim.current.buffer[:10]:
  	print(line)
  	str_t.append(line)
print(vim.current.window.cursor)
row = vim.current.window.cursor[0]
print(row)

print(vim.current.buffer[row:row+2])

vim.current.buffer.append(["123\n", "234\n"], row)

EOF

endfunction

AXI非对齐传输如何发送

AXI协议和AHB一样,有一个地址,有一个数据宽度,有一个起始地址。
那么一个burst传输,本质是burst length 和 burst size,配合得到总共要的数据量。
如果总共数据量和起始地址不是一个整数倍的关系,那么就是非对齐传输。

如何计算和给出总线上该传的值

参考以下博文
https://blog.csdn.net/qiuzhongyu123/article/details/118943373
主要有三个重点:对其地址、下界、上界。

  1. aligned_addr的计算
    aligned_addr = Floor(start_addr/num_of_bytes) * num_of_bytes
    其中,num_of_bytes为单个transfer的字节数,start_addr即master发起transaction的地址,aligned_addr则是对齐地址,如果两者相同代表该transaction是对齐传输,否则就是非对齐传输。
  2. WRAP的上下界地址计算
    lower_bound_addr = Floor(start_addr/ (num_of_bytes * burst_len)) * (num_of_bytes * burst_len)
    即下界要根据transaction的总bytes对齐得到下界。
    upper_bound_addr = lower_bound_addr + (num_of_bytes * burst_len)
    上界则是由下界加上总bytes得到。
    在WRAP transaction中,start_addr依次递增num_of_bytes,达到upper_bound_addr后,下一个transfer地址回到lower_bound_addr。

verdi配置搜索顺序

https://blog.csdn.net/llxxyy507/article/details/121313210

Verdi 提供名叫Configure Rule Set form的配置文件,以.rc为后缀名,verdi按照如下优先级去检索配置信息,找到后将不再向下寻找。
-rcFile 命令行参数 verdi -ssf -rcFile 优先级最高
NOVAS_RC 环境变量
./novas.rc
$HOME/novas.rc
/etc/novas.rc

verible和verilator介绍

  1. verible
    Verible是一套SystemVerilog开发工具,包括解析器、样式检查器、格式化器和语言服务器
    https://chipsalliance.github.io/verible/

可以做端口混淆工具使用。如

verible-verilog-obfuscate --preserve_interface test1.v obf_test.v

--preserve_interface:module的端口不会被混淆

  1. verilator
    verilator是仿真工具,但是也可以做语法检查,而且应该是更严格的,verilator编译的时候默认要求文件名和module名相同。
verilator --lint-only -Wall test.v

--lint-only,只进行lint但是不输出。-Wall开启额外的风格检查。
https://github.com/verilator/verilator

标签:插件,addr,verible,bytes,vim,python,对齐,verilator
From: https://www.cnblogs.com/bai2022/p/17708889.html

相关文章

  • python语言基础与核心技巧知识点总结
    一、python语言基础python基础语言的详细操作演示1.1变量变量.png1.2数据类型数据类型.png1.3序列序列分类:可变序列list,不可变序列tuple、str。在python中,内建了6中序列:列表、元组、字符串、unicode字符串、buffer对象、xrange对象。(1)list列表list列表.png(2)tuple元祖tuple.png(......
  • 「开源系统」mybatis-plus代码生成工具(自己基于官方的封装的,打包成了maven插件的方式)
    mybatis-plus代码生成工具本工具基于MyBatis-Plus的代码生成器,MyBatis-Plus官网:https://baomidou.com/,请尊重原作者作品。demo:https://gitee.com/javalaoniu/mybatis-code-maven-plugin-demo插件:https://gitee.com/javalaoniu/mybatis-plus-code-maven-plugin生成的项目......
  • 用python的tk写一个界面
    记录一下,tk写界面的方法。importtkinterastkimportpyautoguiaspgimporttimeimportpyperclip#剪切板调用#主体窗口设置#root=tk.Tk()root.title("护理记录")root.geometry('550x550+0+0')root.attributes("-topmost",1)font=('宋体',14)#窗......
  • python系列教程215——列表解析与矩阵
    声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值......
  • Python编码规范和最佳实践
    Python编码规范和最佳实践是提高代码质量、可读性和可维护性的重要因素。以下将详细介绍Python的编码规范和最佳实践,并通过具体案例说明其功能。Python编码规范文件扩展名Python文件扩展名通常为.py,用于标识Python文件。在命名文件时,应采用简洁、清晰的名称,以反映文件的内容或功能......
  • linux下安装python
    编译安装python3.6的步骤1.下载python3源码包wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz2.下载python3编译的依赖包yuminstall-ygccpatchlibffi-develpython-develzlib-develbzip2-developenssl-develncurses-develsqlite-develreadlin......
  • # yyds干货盘点 #盘点一个Python打包的报错问题
    大家好,我是皮皮。一、前言前几天在Python钻石群【年鱼鱼......
  • python递归求阶乘和
    一些基本概念介绍:阶乘:是指从1到n的连续自然数相乘的积。负数没有阶乘。递归:函数作为一种代码封装,除了被其他程序正常调用外,还可以被函数内部代码调用。函数定义中调用函数自身的方式称为递归。递归实现的两个关键点:(1)存在一个或多个基例,基例不需要再次递归,它是确定的表达式。否则......
  • 基于Python的鲜花在线销售系统-计算机毕业设计源码+LW文档
    摘 要随着信息技术的发展,基于web模式的购物系统逐渐普及,网上购物是一种新型的商务模式,其工作流程和经营模式受到了欢迎。电子商务可以适应现代化快节奏的生活方式,满足各类人群足不出户的在线购物,利用商城使得买卖双方完成线上交易,提高了购买效率。然而像鲜花这种传统的行业,由于......
  • Python第五章(1)字符串
    1.字符串的特性:(1)字符串是不可变类型。2.字符串的判定:isinstance(testString,str)3.用三引号实现长字符串。当开头的"""\时,开头不会输出换行符。4.字符串的索引和切片(1)字符串索引在实际使用情况下,“索引值”即“偏移量”。aString=="你好......