小苍蝇别闹
码龄19年
关注
提问 私信
  • 博客:132,326
    社区:45
    问答:1,919
    134,290
    总访问量
  • 35
    原创
  • 1,312,324
    排名
  • 188
    粉丝
  • 1
    铁粉

个人简介:FPGA开发和电路设计;集成电路测试

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2005-06-09
博客简介:

yinyeyy的专栏

查看详细资料
个人成就
  • 获得149次点赞
  • 内容获得19次评论
  • 获得1,182次收藏
  • 代码片获得227次分享
创作历程
  • 2篇
    2023年
  • 3篇
    2022年
  • 10篇
    2021年
  • 21篇
    2020年
成就勋章
TA的专栏
  • TCL学习
    8篇
  • IC设计
    1篇
  • SpinalHDL学习
    1篇
  • SystemVerilog/Verilog
    4篇
  • SystemVerilog/Verilog的语法
    5篇
  • JESD204
    7篇
  • 集成电路测试
  • 集成电路测试 STIL
  • FPGA
    3篇
  • FPGA 应用
    7篇
  • FPGA 他山之石
  • FPGA 设计技巧
    4篇
  • FPGA 我踩过的坑
    1篇
兴趣领域 设置
  • 硬件开发
    fpga开发
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

175人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

如何方便地使用TCL恢复带BD设计的Vivado工程

介绍了如何通过Vivado生成tcl脚本,并在稍加修改后用于恢复工程。
原创
发布博客 2023.08.02 ·
1276 阅读 ·
0 点赞 ·
0 评论 ·
10 收藏

关于non-project模式的点滴记录1——别忘了创建工程

在non-project模式下,未指定器件时,Vivado将使用默认器件。这可能导致IP的器件和synth_design所指定的器件不一致。
转载
发布博客 2023.01.30 ·
339 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

IC设计中glitch free时钟选择器的设计过程

IC设计中glitch free时钟选择器的设计过程
原创
发布博客 2022.07.20 ·
1321 阅读 ·
0 点赞 ·
2 评论 ·
11 收藏

SystemVerilog中使用string所遇到的问题

刚开始使用systemverilog进行字符串操作时犯过的错误,在此记录一下。
原创
发布博客 2022.07.14 ·
1546 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

Block Design内部BRAM控制器与外部BRAM的连接

在最近的一个设计中遇到了这样一个问题。我在Block Design中例化了XDMA,并通过interconnect连接了3个BRAM控制器,3个BRAM控制器的端口引出到Block Design外部。XDMA通过C2H接口对前两个RAM只进行读操作,通过C2H和H2C接口对第三个RAM进行读写操作。三个RAM都在Block Design外部(即HDL代码部分)例化。 验证时,前两个RAM的读数据正常,第三个RAM的读数据比对错误。由于个人疏忽,解决该问题花了四五个小时。首...
原创
发布博客 2022.05.13 ·
1001 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

TCL练习7:switch

TCL中switch有两种结构。 switch ?options? string pattern body ?pattern body ...? switch ?options? string {pattern body ?pattern body ...?}第一种和第二种之间的差别仅仅是一对大括号。正是由于这个区别,应用是要特别注意,否则程序无法输出正确结果。第一次使用switch时我写了下面这段程序。 switch $cmd { $::CMD_REPEAT..
原创
发布博客 2021.04.22 ·
1577 阅读 ·
2 点赞 ·
0 评论 ·
7 收藏

TCL练习6:通过递归方法搜索文件夹并返回指定后缀文件(包含子目录)

写这个TCL脚本的主要目的是搜索目标文件夹及其子文件夹下的所有文件,然后记录在指定的文件中。可以指定目标文件夹名称、信息记录位置和文件后缀等3种参数。该脚本将用于Vivado的non-project编译过程,被综合和布线脚本调用。define.tcl中定义了目标文件夹名称、信息记录位置、文件后缀类型、器件part等信息。findAllFiles.tcl脚本根据define.tcl中的参数搜索目标文件夹,当文件后缀类型参数(ext)为.hdl时,会搜索.v、.vh、.vhd、.sv等文件的路径和名称,
原创
发布博客 2021.04.13 ·
3384 阅读 ·
3 点赞 ·
1 评论 ·
21 收藏

TCL练习5:string、变量$的使用以及转义符何时发挥作用

目录练习string用法说明string compare ?-nocase? ?-length n? string1 string2string equal ?-nocase? ?-length n? string1 string2string first string1 string2 ?startindex?string index string charIndexstring last string1 string2 ?startinde...
原创
发布博客 2021.04.08 ·
3021 阅读 ·
2 点赞 ·
0 评论 ·
19 收藏

TCL练习4:递归和return

练习递归实现阶乘计算以及return的使用方法。proc recurrence { n } { if { ![string is integer $n] } { return -code error "This is not an integer!" } if { $n<=2 } { return $n } else { set val [expr $n*[recurrence [expr $n-1]]]
原创
发布博客 2021.04.07 ·
1648 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

TCL练习2:文件I/O

练习进行文件操作,包括打开文件、创建文件、读写文件等。set path [pwd]/Desktop/FileIO/set name "dont_touch.xdc"set newName "dont_touch_new.xdc"set optr "r"set optw "w+"set rdFile ""set retval [eval catch {{set fdr [eval open [append rdFile $path $name] $optr]}} msg]if { $re
原创
发布博客 2021.04.06 ·
532 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

TCL练习3:append、lappend

append将多个变元按顺序组合起来,并形成一个新的字符串。lappend将多个变元按顺序组合起来,形成一个新的List。set myCurrentLogVar1 ""set myCurrentLogVar2 ""set script1 { puts "logging now" lappend myCurrentLogVar1 "Say: "}set script2 { puts "logging out" append myCurrentLogVar2
原创
发布博客 2021.04.06 ·
5238 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

TCL练习1:open、eval和proc

简单使用open、eval和proc。open可用于打开、创建文件。eval带一个或多个变元,可以由一个或多个命令组成,eval采用concat命令的风格连接所有变元,执行命令并且返回执行结果。proc可以创建一个过程,以便在程序其他地方重复调用。proc create_report { reportName command } { set status "." append status $reportName ".fail" if { ![file exists $stat
原创
发布博客 2021.04.06 ·
3150 阅读 ·
2 点赞 ·
0 评论 ·
17 收藏

JESD204B SUBCLASS1确定性延时参数的计算

目录1. 时序参数1.1 ADC1.2 FPGA2. 延时计算2.1 计算延时所需的LMFC周期数前几天又重新复习了以下通过JESD204B SUBCLASS1实现确定性延时的过程。以前对部分参数的计算过程不甚理解,这次算是搞清楚了。学习JESD204B的时候阅读的是“Serial Interface for Data Converters” JESD204B的JULY 2011版本。该文档毕竟是一个标准文件,实现过程写的比较粗略,而且是指导性的,在实际工程实现过程中作用有限。当
原创
发布博客 2021.01.26 ·
4277 阅读 ·
9 点赞 ·
0 评论 ·
106 收藏

SystemVerilog/Verilog的testbench中文件的写入和读取操作

在Testbench中很可能需要文件的读写操作,在可综合的设计中也可能会用到文件写入。SystemVerilog/Verilog提供的文件写入读取方法并不多,主要有两类。第一类是writememb/writememh/readmemb/readmemh,第二类是$fscanf/$fwrite。第一类用法简单,但是功能弱,文件读取也不支持多维数组;第二类用法复杂一点,功能相对强大,配合循环语句可以处理多维数组。1. writemem[b|h]/readmem[b|h]writemem[b|h]主要
原创
发布博客 2021.01.11 ·
20218 阅读 ·
19 点赞 ·
0 评论 ·
140 收藏

同样的FIFO,不同的Data Order

在使用Xilinx FPGA时常用的两种FIFO例化方法包括使用IP Catalog和使用XPM。两种方法各有优缺点,个人更倾向于使用XPM的方式。使用这种方式可以非常方便的传递参数,修改设计时不像IP Catalog生成的FIFO那样繁琐。当FIFO的WRITE_WIDTH和READ_WIDTH相同时,两者使用时没有任何不同。但是当FIFO的输入输出端口位宽为非对称时,两者具有非常显著的区别,使用时要格外注意。以WRITE_WIDTH : READ_WIDTH = 1 : 4为例,向IP Cata
原创
发布博客 2021.01.09 ·
458 阅读 ·
2 点赞 ·
1 评论 ·
3 收藏

Spinal HDL学习资源

最近开始接触SpinalHDL,所以收集了一些不错的学习资源,可供大家参考。SpinalHDL是基于Scala语言开发的设计语言,使用SpinalHDL需要对Scala有一定了解。下面的两篇博文非常全面而又简洁的介绍了Scala,对上手非常有帮助。https://vvviy.github.io/2018/12/01/Learning-Chisel-and-Scala-Part-I/https://vvviy.github.io/2018/12/12/Learning-Chisel-and-Sca
原创
发布博客 2020.12.24 ·
2757 阅读 ·
1 点赞 ·
1 评论 ·
20 收藏

Systemverilog中的iff事件控制

使用systemverilog已经有一段时间了,主要是其中的部分新特性能够简化代码的编写,比如interface、支持多维端口等。为了进一步深入学习systemverilog,最近抽空更广泛的学习了一些systemverilog的内容。本文记录一下Systemverilog中的事件控制和sequence控制相关内容的学习情况。1. 事件控制1.1 iffSystemverilog在@事件控制中添加了iff修饰词,只有当iff后的条件为真时,@事件才会触发。注意,iff可以在always和alwa
原创
发布博客 2020.12.14 ·
13331 阅读 ·
23 点赞 ·
3 评论 ·
115 收藏

在FPGA上使用SystemVerilog实现12小时制时钟(可实现24小时制)

发布资源 2020.06.16 ·
rar

48bits进位选择补码加法器的两种实现方法的性能对比

本文使用进位选择的结构实现补码加法器,并且对比了使用内部逻辑实现和使用专用DSP单元实现时的性能差别。当然Xilinx FPGA中的DSP单元可以直接实现48位的运算,本文主要目的是验证进位选择结构加法器的实现和性能对比,这种结构可以运用到更大位宽的加法中。...
原创
发布博客 2020.06.14 ·
718 阅读 ·
3 点赞 ·
0 评论 ·
2 收藏

CarrySelAdder.rar

发布资源 2020.06.14 ·
rar
加载更多