- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 Windows上构建 Chisel-Bootcamp
在windows上安装chisel-boocamp,与linux过程类似。安装java8安装anaconda安装scala下载Chisel-bootcamp环境。
2024-04-18 23:15:00 890
原创 用于FPGA远程更新的QuickBoot方法
QuickBoot提供了一种解决方案,通过快速、稳健的配置方法和高效的基于 HDL 的系统内编程参考设计的互补组合,实现可靠的现场更新。
2023-07-10 18:00:05 2684 1
原创 JTAG篇(5) OpenOCD 写入数据到TAP
OpenOCD 写入数据到TAPOpenOCD 配置文件JTAG TAP ControllerResultOpenOCD为需要访问JTAG指令或数据寄存器的开发人员提供一些底层的控制命令,这些命令可以控制TAP控制器的状态转换的顺序。drscan tapname [numbits value] + [-endstate tap_state]tapname: 使用jtag newtap命令创建的TAP名[numbits value]: 这个整体貌似可选(没有测试),vaule部分支持16进制和10
2022-05-24 22:37:28 1594
原创 JTAG篇(4)——OpenOCD与JTAG TAP通信
OpenOCD与JTAG TAP通信OpenOCD 简介运行OpenOCDJATG TAP ControllerResultOpenOCD 简介OpenOCD (Open On-Chip_Debugger)是一个开源的片上调试器,它主要是为嵌入式设备(如ARM,STM32,ATMEL,FPGA/CPLD等)提供调试、系统编程以及边界扫描等功能。当然OpenOCD实现这些功能需要借助于**硬件调试器/适配器(Debug Adapter)**来辅助完成.The debug adapter is a sm
2022-05-18 21:47:59 2538
原创 JTAG篇(3)——Ubuntu OpenOCD communicating with FT2232H
Ubuntu OpenOCD communicating with FT2232HdependenciesInstalling OpenOCD on UbuntuCommunicating with FT2232Hdependenciesubuntu 系统 + 安装openocdOpenOCD User’s GuideInstalling OpenOCD on Ubuntu注: 本次实验中使用的系统为ubuntu 20.04ubuntu 20.04 安装 openocd version 0
2022-05-16 21:20:28 1042
原创 JTAG篇(2)——FT2232H 控制 JTAG TAP
FT2232H 控制 JTAG TAP简介dependenciesJTAG TAP 控制器实现TAP简介TAP Verilog实现FT2232H 驱动JTAG实验结果简介dependenciesJTAG TAP / VerilogFT2232H驱动 (见FT2232H入门)JTAG TAP 控制器实现TAP简介JTAG 接口包含以下5个引脚控制TAP的状态.JTAG PINDescriptionTCKTCK 为 TAP 的操作提供了一个独立的、基本的时钟信号T
2022-05-15 16:09:13 2426
原创 JATG篇(1)——FT2232H入门
FT2232H入门准备工作FT2232H安装FTDI设备驱动配置FT2232H 驱动方式认识与控制MPSSE认识MPSSE软件控制MPSSE1. 确认设备并打开设备2. 配置FTDI设备以供MPSSE使用3. 配置MPSSE4. 串行同步通信5. 访问GPIO6. 复位MPSSE并关闭设备点亮LED点灯代码准备工作硬件准备带有FT2232H芯片板子USB连接线一台电脑软件准备配置FT2232H的软件(FT_Prog_v3.12)FT2232H芯片驱动: CDM212364_Setu
2022-05-14 12:25:13 10451 9
原创 DAC8568 Controller
DAC8568 ControllerDAC8568 简介串行接口三级目录DAC8568 简介PIN DescriptionNameDescriptionLDAC‾\overline{LDAC}LDACload DACsSYNC‾\overline{SYNC}SYNC低电平有效,电平触发控制, 该输入为输入数据的帧同步信号. 当SYNC为低,使能DAC内输入移位寄存器,并在随后的所有时钟沿采样数据。 在第32个时钟之后,DAC更新输出。 若不到32个时钟SYNC被置高(即
2022-05-13 10:20:14 2623
原创 Allegro 检查原理图与PCB一致性
Allegro 检查原理图与PCB一致性原理图网表导入网表到PCB Editor生成xml借助设计比较工具从别处来的原理图和PCB,如何确认它们是否一致呢?原理图网表在orCAD Capturer中生成原理图网表,方法如下。软件菜单栏:Tools–> Create Netlist --> 下图导入网表到PCB Editor生成xml打开allegro PCB Editor(建议先保存到指定位置,如F:\pcb_project\demo\my_pcb\compare_demo.br
2022-05-10 17:14:57 3136 5
原创 Python logging库
Python logging库1. logging 简介2. Basic logging Tutorial2.1 使用logging 屏幕打印2.2 使用logging 保存文件2.3 多个模块loggingAdvanced Logging TutorialReference1. logging 简介logging是一种跟踪某些软件运行时发生的事件的方法。 软件开发人员可以将logging添加到他们的代码中,以表明某些事件已经发生。 这个事件可以由打印信息描述,该信息中可以包含变量。 开发者也可以赋予事
2022-04-29 21:03:33 1524 1
原创 软硬件协同仿真——硬件加速
#软硬件协同仿真——硬件加速软硬件协同仿真——硬件加速1. 仿真验证方法1.1 软件仿真(Software Simulation)1.2 协同模拟 (Co-Simulation)1.3 协同仿真 (Co-Emulation)1.4 三种仿真技术对比2. 硬件加速实现方法2.1 专用硬件Emulator2.2 硬件加速方式2.3 硬件加速实现方法参考:王宏伟,孙宇明,李铀,唐柳. 一种软件联合FPGA硬件仿真加速系统设计[C]//.2020中国航空工业技术装备工程协会年会论文集.[出版者不详],202
2022-04-23 14:55:20 4738
原创 systemverilog 当前时间写入文件
systemverilog 当前时间写入文件systemverilog 当前时间写入文件systemverilog 当前时间写入文件使用SV系统函数$system("")当前时间写入文件其他办法 DPI-C使用SV系统函数$system("")$system的本质是调用 C system()函数。 C system()函数执行传递给它的参数,效果同终端执行的一样。 $system 可以作为任务或函数调用。 当作为函数调用时,它返回调用 system() 的返回值,数据类型为 int。 如果调用 $s
2022-04-17 12:36:38 2243
翻译 Python中清空List
Python中清空列表clear() method重新初始化"*=0"del method通过 Python 语言提供许多的不同构造的方法来清除列表。clear() method# Creating listGEEK = [6, 0, 4, 1]print('GEEK before clear:', GEEK) # Clearing list GEEK.clear() print('GEEK after clear:', GEEK) Output:GEEK before clea
2022-04-08 20:28:25 3205
原创 Installing IPbus-software on ubuntu 20.04
Installing IPbus-software on ubuntu 20.04Install the prerequisitesCheckout from git and compileInstall the softwareReferenceInstall the prerequisitesSystem version of BOOST, pugiXML & Erlang installsudo apt-get install git g++ makesudo apt-get inst
2022-03-24 13:51:39 1270
原创 VITA 57 FPGA 夹层卡(FMC)
VITA 57 FPGA 夹层卡(FMC)High-pin count (HPC) connector, HPC pinoutLow-pin count (LPC) connector, LPC pinoutPin and signal descriptionReference来自:https://fmchub.github.io/appendix/VITA57_FMC_HPC_LPC_SIGNALS_AND_PINOUT.htmlHigh-pin count (HPC) connector, HPC
2022-03-24 11:20:48 4514
翻译 IPbus Software——uHAL
IPbus Software——uHALPre-requisitesConnection fileAddress table单寄存器地址表hierarchical地址表中单个寄存器具有绝对地址和相对地址的多个模块结构相同的多个模块设置对内存位置的读写访问内存块和 FIFO连接到硬件 IP 端点使用connect file不使用connect file创建地址表uHAL 是硬件访问库 (HAL),它为终端用户提供 C++/Python API实现IPbus 读取、写入和 RMW 事务 。Pre-requi
2022-03-19 21:09:43 792
原创 使用Synopsys VCS仿真Vivado FIFO IP
使用VCS仿真xilinx IP出现VHDL syntactic or semantic error/warnings
2022-03-11 11:45:10 4458 2
翻译 clock latency 总结
clock latency可分为souce latency和network latency:source latency是这clock 信号源 到芯片的clock输入端(输入端,可以理解为CLOCK输入Pad)的delay;network latency是指芯片clokc输入端(输入端,可以理解为CLOCK输入Pad)到flip-flop时钟输入端的delay如下图所示,Networ
2018-01-27 17:56:11 19455 1
转载 modelsim vopt
model sim学习笔记运行ModelSim SE 6.5e,选择菜单Help->SE Documentation - PDF Bookcase,在出来的pdf文档中,选择ModelSim SE Tutorial,作为学习ModelSim的第一站。Tutorial学习笔记:Chapter1: Introduction介绍 1,假定:熟悉操作系统,懂一种设计语言(verilog,V
2018-01-25 11:20:13 3796 2
原创 Co-Simulation of C with Verilog in VCS
Co-Simulation of C with Verilog in VCSIntroductionVerilog PLI(编程语言接口)是一种从Verilog代码调用C或C ++函数的机制。  在Verilog代码中调用的函数称为系统调用。 内置系统调用的示例是$ display,$ stop,$ random。PLI允许用户创建自定义系统调用,Verilog语法不允许我们做。 其中一
2017-10-30 20:20:03 4397 1
原创 gem5 中一些自带脚本
gem5 中一些自带脚本这里使用gem5附带的默认配置脚本完成gem5的模拟仿真。 gem5自带许多配置脚本,可以快速使用gem5。 但是使用这些脚本的缺陷是不完全了解正在模拟的内容。 在使用gem5进行计算机体系结构研究以充分了解您正在模拟的系统时,这一点很重要。 这里简单的了解下默认配置脚本的一些重要选项和部分内容。gem5的文件目录: configs/boot: ammp.rc
2017-09-09 09:18:02 1532 1
原创 GEM5 Tutorial
GEM5 Tutorial主要完成创建一个简单系统的配置脚本,并写一个C语言程序在gem5上运行仿真。 第二步,完成一个2级cache系统; 最后,观察改变一些系统参数比如memory types, 处理器频率,程序的性能复杂性。 模拟脚本控制了gem5模拟的配置和运行。gem5模拟器本身是被动的,gem5的调用就是执行用户的模拟脚本,只有当脚本调用它时才执行指定操作。 模拟脚本用Py
2017-09-08 09:07:59 5407 1
原创 Library Data Preparation for ICC---1
Library Data Preparation for ICC 本片笔记来源: Library Data Preparation for IC Compiler User Guide ,主要介绍如何 使用ICC和Milkway工具准备用于物理实现芯片设计的库。分为三个部分: - Milkway库 - 来自GDSII和OASIS的数据库准备 - LEF / DEF的数据库准备,
2017-09-06 22:30:47 3825 2
原创 Milkway DataBase
ICC0—Milkway Tools这篇文章简单的介绍Milkway的作用及使用地方。Milkway DataBase overviewMilkyway数据库是Synopsys Galaxy的统一设计存储格式设计平台。数据库提供连接Galaxy平台的持久数据存储工具在一起,这消除了对大型中间交换文件的需要并防止使用其他数据交换格式可能发生的设计意图的损失。 Milkway数据库格式经常增加新功能,以
2017-09-06 10:00:47 10229 1
翻译 ICC---data setup
ICC—data setup数据准备ICC开始布局布线之前,应该检查输入数据准备是否完整,主要包括:MilkWay参考库 信息是以被称为“views”的形式存储的,例如: CEL:完整的版图信息FRAM: 用于布局布线的抽象化的版图物理信息(只有单元大小,端口名称,端口位置等简单的物理信息)LM: 带有时序和功耗信息的逻辑模型(可选*),该文件对于后端布局布线不是必须的,ICC只是通过li
2017-09-05 17:05:16 8641 2
转载 ICC布局规划---1
ICC布局规划 写在前面的标注: 这里的流程参照guide,以及微信公众号:数字集成电路设计及EDA教程 首先,简单的介绍一下floorplan的重要性,在之前的我学完成,本人之前的学Encounter忽略这个,这里特别的说明一下。 Floorplan为什么这么重要呢? floorplan设计将影响到芯片的面积、速度、信号完整性和设计周期。一个好的Floorplan,不仅能获得更好的Q
2017-09-04 10:07:58 18476 1
原创 Python 入门---2
  现在学习函数,模块,文件IO,file方法。函数参数调用 在 python 中,类型属于对象,变量是没有类型的:a=[1,2,3]a="Runoob"以上代码中,[1,2,3] 是 List 类型,”Runoob” 是 String 类型,而变量 a 是没有类型,它仅仅是一个对象的引用(一个指针),可以是 List 类型对象,也可以指向 String 类型对象。 Python的
2017-09-04 08:16:54 553
原创 Python 入门---1
Python 入门—1初学python的时候,一定要记住“一切皆为对象,一切皆为对象的引用”这句话。Python 入门1Python语言简介Python环境搭建Python语法Python标识符Python行和缩进Python其他语法多个语句构成代码组变量运算符条件循环和其他语句条件循环while循环语句for循环语句其他语句Python Number数字- 数学函
2017-09-01 11:21:44 1367
翻译 java学习笔记八:static关键字
Static的特点: 1,static是一个修饰符,用于修饰成员。 2,static修饰的成员被所有的对象所共享。 3,static优先于对象存在,因为static的成员随着类的加载就已经存在了。 4,static修饰的成员多了一种调用方式,就可以直接被类名所调用。——- 类名.静态成员 5,static修饰的数据是共享数据,对象中的存储的是特有数据。成员变量和静态变量的区别? 1,
2016-07-15 10:36:52 363
翻译 java学习笔记七:this学习
*/ This使用情况:当成员变量和局部变量重名,可以用关键字this来区分。This:代表对象。代表哪个对象呢?代表当前对象。 This就是所在函数所属对象的引用。 简单说:哪个对象调用了this所在的函数,this就代表哪个对象。 class Person{ private String name; private int age;
2016-07-15 10:34:28 375
翻译 java学习笔记六:构造函数(方法)
特点: 1、函数名与类名相同 2、不用定义返回类型 3、没有具体的返回值 作用: 给对象初始化 //构造函数:构建创造对象时调用的函数。作用:可以给对象进行初始化。 创建对象都必须要通过构造函数初始化。一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造函数。 如果在类中定义了指定的构造函数,那么类中的默认构造函数就没有了。一般函数和构造函数什么区别呢?构造函数:对象创
2016-07-15 10:32:05 529
原创 java学习笔记五:方法之间调用
1.静态方法内部调用其他方法: 如果在本类当中:静态方法可以直接调用静态方法;静态方法必须通过对象来调用非静态方法。如果不在一个类中:静态方法必须通过类名.静态方法()来调用其他类中的静态方法;/** * 1、在本类当中,静态方法可以直接调用静态方法 */public class InvokeMethod{ public static void main(String[] args
2016-07-15 10:30:26 8482 3
原创 Java学习笔记四:数组
数组来源: 数据多了就用数组在存放,这就产生了一维数组; 数组多了就用更高一维的数组存放,这就产生了二维数组。首先记住数组是引用类型; 数组定义: 1、元素类型[] 数组名 = new 元素类型[元素个数或数组长度] 2、元素类型[] 数组名 = new 元素类型[]{元素1,元素2 ,…….}在内存中的数组:数组引用变量只是一个引用,这个引用变量可以指向任何有效的内存,只有当该引用指向有
2016-07-15 10:25:23 396
原创 Java学习笔记三:内存
为什么有栈内存和堆内存之分? 答:当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将会追个放入这块栈内存里,随着方法的执行结束,这个方法的内存占也就自然销毁。因此,所有在方法中定义的变量都是放在栈内存中的; 当我们在程序中创建一个对象时,这个对象将会被保存到运行时数据区中,以便反复利用(因为对象的创建成本通常较大),这个运行时数据区就是堆内存。堆内存中的对象不会岁方法的结束
2016-07-15 10:22:39 368
翻译 Java学习笔记二:java基本特点
面向对象语言的特点: 1、面向对象是一种常见的思想,符合人们的思考习惯; 2、面向对象的出现,将复杂的问题简单化; 3、面向对象的出现,让在过程中的执行者,变成了对象中的指挥者。例子: 大象放进冰箱: 面向过程(动作)思想: 面向对象(实体)思想: 1、打开冰箱 1、冰箱打开 2、存储大象
2016-07-15 10:20:10 343
翻译 Java学习笔记一:逻辑运算符
1、短路逻辑或(||) 短路逻辑与(&&)逻辑与(&&)、逻辑或(||)都属于二元运算符;在Java中对于或(||):如果在运算符左边的表达式的值是True,则整个表达式的结果为True,不必对运算符右边的表达式在进行运算。(右边不会执行)在java中对于与(&&):如果在运算符左边的表达式的值是False,则整个表达式的结果为false,不必对运算符右边的表达式在进行运算。(右边不
2016-07-15 10:16:52 428
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人