- 博客(45)
- 资源 (8)
- 收藏
- 关注
原创 Allegro中设置带差值的等长线组规则
Pin1 的数值即上游已经走线的长度,针对底板而言这里可以理解为核心板的走线长度,Pin2 则是走线本板子后端的走线,可以理解为再下游的底板,而整个等长规则是确保Pin1 delay + Pin2 Delay + 走线长度 同组等长!另外,等长规则约束要精确到 pin pair,也即器件的管脚到管脚之间的走线,而非只是net,因为有的net涉及多个走线,等长分析时很可能是全部一起,而非信号实际流向的距离。Allegro 画PCB进行等长约束规则设置时,需要用到等长规则中的差值设置功能。
2022-12-30 12:02:08
1566
原创 zynq7系列DDR3的PCB走线阻抗与端接电阻问题
zynq7系列DDR3的PCB走线阻抗与端接电阻问题zynq7020仅PS带有DDR端口,兼容DDR2到DDR3协议,PCB设计主要参考ug933手册。本文主要讨论其走线阻抗与端接电阻问题。1. 官方推荐电压-1.5V/1.35VDDR3和DDR3L都同时支持1.5V和1.35V的I/O电压。·························2. 官方推荐走线阻抗–DDR3单端40,差分803. 官方推荐端接电阻–单端40,差分时钟804.正点原子开源的原理图–单端40.2,差分80
2022-03-11 17:27:21
16162
8
原创 xc7z020 PCB绘制相关资料前期准备
最近准备绘制xilinx的xc7z020clg400-2电路,需要准备前期的引脚、封装、电路的资料,再此汇总便于查阅。主要参考:···········1. ug865-Zynq-7000-Pkg-Pinout···········封装预览焊球尺寸与chip尺寸IO overview4. IO bank5. power IOs6. memory IOs7. BGA焊盘8. 引脚 asciiDevice/Package xc7z020clg400 9/18
2022-02-08 12:04:26
5084
1
原创 solidworks 3D模型文件导出到tanner ledit版图软件中
solidworks 3D模型文件导出到tanner ledit版图软件中简介操作1. 文件格式问题2. SW直接导出DXF文件到LEDIT的问题3.布尔操作,得到所需版图注意事项简介MEMS中会涉及到一些较为复杂的结构,通常我们可在solidworks等专业的3D模型绘制软件中设计好结构,再输出到ansys中进行仿真,这是因为solidworks的建模能力更强(支持旋转、镜像、阵列等很多功能)。结构仿真完成后,需要生成最终的版图文件用于制版流片。其中tanner ledit是windows下最常用的
2022-02-03 01:50:29
4565
1
原创 zynq7010/zynq7020系列FPGA的输入输出延时、建立保持时间(setup/hold)
zynq7010/zynq7020系列FPGA的输入输出延时、建立保持时间(setup/hold)——zynq7000系列的建立保持时间需要从其开关特性手册中查询,本文参考了ds187手册中的相关内容,方便检索查询。0 CLB Switching Characteristics – 逻辑块的开关特性这个是我们一般最关心的FPGA内部寄存器的setup/hold time特性,-2等级的7020来到 0.09/0.14ns.1. dram/d shift reg/ bram /bfifo1.1
2021-12-31 12:10:37
2173
原创 verilog一种多位宽的10进制计数器
在涉及到ASCII等编码的时候,往往需要使用十进制计数器来进行测试,下面分享一种简单的测试用的10进制计数器程序:reg[3:0] dec_cnt[3:0];//10进制加法器always @(posedge clk or negedge rstn) begin if(!rstn) begin dec_cnt[0] <= 4'b0; dec_cnt[1] <= 4'b0; dec_cnt[2] <= 4'b0;
2021-12-27 22:09:13
1378
2
原创 关于FPGA中的异步FIFO始终无法用bram而只能用lut ram的问题
关于FPGA中的异步FIFO始终无法用bram而只能用lut ram的问题······最近在写异步FIFO,参考别人的代码后,在FPGA中复现时发现总是无法生成期望的bram,而是花费大量的lut来形成lut ram,造成lut的浪费。······首先提一下,我们知道对于Xilinx 的FPGA在定义的memory之前,可以使用(参考ug901):(* ram_style="block" *) reg [data_size-1:0] myram [2**addr_size-1:0];(* ram
2021-12-22 22:34:07
2575
原创 关于FPGA中异步复位同步释放的个人理解
关于FPGA中异步复位同步释放的个人理解1. 异步复位同步释放电路块很多,这里参考其它博客的:https://zhuanlan.zhihu.com/p/142377567verilog代码也很简单:always @ (posedge clk, negedge rst_async_n) if (!rst_async_n) begin rst_s1 <= 1'b0; rst_s2 <= 1'b0; end else begin
2021-12-22 21:33:04
221
原创 verilog:一种可选位宽的BCD到二进制和二进制到BCD串行转换实现
verilog:一种可选位宽的BCD到二进制和二进制到BCD串行转换实现··················FGPA中关于lcd显示、串口数据收发等涉及到bcd码和二进制之间的转换,往往LCD、uart的速率不是很高,因此可以使用串行方式转换以实现资源的节约。·················前面分享过BCD转二进制和二进制转BCD的相关可综合verilog代码,但是是固定位宽的,每次需要修改,本文分享一下可变为位宽的实现。bcd–>bin//SIZE_bcd == 40bit的bcd码
2021-11-17 13:03:09
690
原创 详细教程:vivado2019.2 & vitis2019.2下,zynq7000系列FPGA固化PL程序到外挂flash和SD卡
详细教程:vivado2019.2 & vitis2019.2下,zynq7000系列FPGA固化PL程序到外挂flash和SD卡0.简介xilinx的zynq系列FPGA既包含了传统的FPGA部分,又嵌入了arm的硬核,分别称为PL(Programmable Logic)和PS (Processing System)。PL部分以前在ISE,现在在vivado上编程配置,包括通用的组合逻辑资源、软IP、硬IP核(包括arm核的基本配置与调用在内),使用语言就是硬件描述语言、原理图文件、IP配置;
2021-11-08 23:27:16
11841
6
原创 verilog:一种资源节约型的BCD码转二进制码模块
verilog:一种资源节约型的BCD码转二进制码模块上一篇文章分享了一种资源节约型(时间换资源)的二进制转BCD码的verilog代码写法(加3左移),本篇则介绍一种BCD码转换成2进制码的可综合verilog。任务描述首先,假设有一个40bit的BCD码data_bcd[39:0] ,并任意设data_bcd = 40’h1234567980 ,现在要把它转换成32bit的二进制数data_bin[31:0],有data_bin = 32’d1234567890。原理方法首先最容易想到的:(
2021-11-07 20:23:55
1232
原创 二进制转换成BCD的原理与verilog实现 --加3左移
二进制转换成BCD的原理与verilog实现 --加3左移FPGA中的lcd显示、串口收发等应用会涉及到二进制和BCD码之间的转换,常见的有3种方法:除法取模运算、查找表、加3左移。 大位宽下,取模除法运算耗费大量lut资源,查找表也不方便,常用一种加3左移的方法。加3左移相当于左移后再加6,基本过程有很多人描述过了,可以参考下面的博客,其过程介绍得很清楚。https://www.cnblogs.com/SummerSunnyDay/p/5013835.html我这里着重补充一下为什么通过这种有条
2021-11-03 19:17:17
2572
原创 安捷伦万用表--Agilent34401A数字万用表串口发送数据只上位机使用说明
Agilent34401A数字万用表串口发送数据使用说明安捷伦34410A万用表可以通过背后的RS232接口与电脑连接,进行串口通信。仪表的串口有两种工作方式,一种是交互模式–既能接收命令,又能发送数据,另一种则是只发送模式。交互模式对应的串口地址模式为21 ,只发送模式对应的为31,可以通过仪器面板菜单按键设置。串口的工作波特率、验证位、停止位等都可以设置,默认为最高波特率9600,无数据校验,1bit停止。交互模式,命令协议默认采用的是SCPI协议,这是一套广泛的标准,具
2021-11-01 10:57:44
11745
5
原创 FPGA中用verilog比较有符号数(signed)大小时注意事项
FPGA中用verilog比较有符号数(signed)大小时注意事项前面调试FPGA应用,在有一段有符号数大小比较时遇到了问题,这里记录一下问题和解决办法。代码简化为如下://////////////////临时测试:demo0module test( output reg [2:0] led ); parameter lev0=16'd100; parameter lev1=16'd300; parameter lev2=16'd500; wire signed [15:0
2021-10-27 11:27:47
10369
原创 FPGA中一种乘加运算的资源优化写法注意事项
FPGA中一种乘加运算的资源优化写法注意事项最近在FPGA里面做小波变换提升算法,由于是多条流水线进行,里面会多次用到乘加的运算结构,最后导致工程占用资源刚刚不够用(105%),很是苦闷,在此记录一下资源优化的一种案例(quartus ii 17.1)。这是原始算法中的一次分解步骤(中间拎出来的,可能没有实际意义,只适用于分析结构与资源):demo0://////////////////临时测试:demo0module test( input clk50M, input
2021-10-22 17:28:17
875
1
原创 关于FPGA的memory数据类型reg[15:0] a[2047:0]综合生成lut还是block ram/ m9k的问题
关于FPGA的memory数据reg[15:0] a[2047:0]综合生成lut还是m9k的问题使用FPGA来综合较大深度的(>1000)ram时需要特别注意其行为描述的语法,因为一旦使用不当,就会造成消耗资源严重超标,从而不满足设计要求。首先,FPGA内部的ram主要是两种,一种是分布式ram,即lut和周围的DFF,另一种是专用集成块储存器(vivado叫block ram, quartus ii叫 M9K,M144K等)。分布式ram的常见用法就是用reg定义的小量寄存器数据如 reg
2021-10-20 16:42:07
4881
原创 关于vitis2019.2固化程序到SD卡和qspi flash的补充
记录一下最近在调试zynq7020时遇到的关于固化程序的问题与要点 我前期利用zynq7020的板子做了一个简单的lcd显示界面,用来显示三串数字和单位,方便后面测量信号时进行上电调试,程序调好了,通过jtag下载也没问题,到最后一步固化程序到SD卡中时遇到了问题,最后几经波折解决了,特此记录。场景说明: 1.开发环境: vivado2019.2 和 vitis2019.2 2.所需功能只使用了PL部分的资源,且PL部分为.v文件和rom ip.遇到的问题: 1. 在原工程中引
2021-10-12 23:48:31
1507
原创 win10下 frpc的开机自启动
frp可以用来进行内网穿透,其具体实现原理可以参考网上其他教程,本文主要描述用户端程序frpc.exe在win10下的一种开机自启动方法—本地组策略在完成配置最后,需要进行自启动配置,一般的教程里的方法都是制作xxx.vbs脚本,然后放到:C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup目录下(其中username为电脑的用户名)但是在实际使用过程,该文件夹下的其他程序都能自启动,就是frp
2021-09-18 21:59:32
6129
5
原创 关于FPGA被乘数为定点数的乘法的3种写法:乘法、移位和位拼接
FPGA中大位宽数的乘法比较耗费资源,且不利于时序收敛。这里仅仅讨论:变量×常数.利用分配律,乘法可以被写为加法,如 b=a×6 = a×4 + a×2 .在二进制中,4和2都是可以通过移位来进行的,在verilog中还可以通过位拼接符号来进行操作。所以,总能写成:b = a× (c0 ×1 +C1× 2 + c2× 4 + c3 × 8+…)这样,常数乘法就写成加法了,而加的每一项只需要通过移位就能实现。实际上,除数为常数的除法也能这么表示,如b=a÷6 =a×(1/6),而,1/6
2021-08-13 16:13:36
4736
2
原创 verilog利用状态机产生01011011101111...序列
verilog产生01011011101111…序列模块//function modulemodule test0 ( input clk, input rst, output q);parameter S0=1'b0, S1=1'b1;reg state;reg [7:0] run,des;always@(posedge clk) if(rst) begin run <= 0; des <= 0;
2021-08-13 14:45:39
847
原创 超棒的免费FPGA时序分析课程--基于xilinx、vivado
超棒的免费FPGA时序分析课程–基于xilinx k7、vivado 2018这里分享尤凯文老师在B站上的FPGA时序分析教程,非常不错,免费更新的课程干货满满。链接一:前10讲(专题)https://www.bilibili.com/video/BV197411G7zS?p=10&share_source=copy_web涉及内容包括:建立保持时间时序分析、IO时序约束之input delay分析(主要是源同步方式、以及引入PLL移相)。链接二:第11讲https://www.bi
2021-07-19 12:19:24
700
原创 把空格隔开的数据变成excel读取的列数据
如下:+0232 +0232 +1531 +0065 +1898 +0227 +2026 +0229 -2020 +0225 -2020 +0229 -1755 +0217 -1636 +0225 -1511 +0212 -1764 +0234 +0948 +0000 +0234 +0948 +0000空格隔开的数据,放进excel是只占一格,想把它弄成n列数据,一种操作如下:把数据复制进.txt文件 中,保存。在txt中,全选文本,ctrl+h ,进入替换界面。用 “ <br>”
2021-05-09 00:38:21
2305
原创 Verilog的always块内的常见问题:边沿电平、同步异步、阻塞非阻塞
verilog的always块内的边沿电平、同步异步、阻塞非阻塞问题,往往令初学者头大,下面我记录一下上述三种条件不同情况下的verilog代码描述、综合结果和资源占用情况,以供参考。平台1:xilinx工具: vivado 2019.2芯片选型:zynq-7020(ps:zynq-700 为lut6)1.多边沿触发问题Q1:一个always块内是如何实现异步复位的?code case 1.1:module block(clk,clk1,rstn,A, B,C);input clk,clk
2021-04-30 00:01:23
5804
2
原创 quartus II 远程编译并下载程序到本地
简介 以前Altera的高端fpga芯片总是被xilinx的暴打,现在有intel的加持,新一代的stratix 10器件已经上了14nm,一片器件集成多达三四百亿的晶体管,速度也号称最快,能怼到1Ghz。 被英特尔公司收购的Altera家的FPGA编程用的是quartus II,经过优化后的quartus ii编译综合速度相比xilinx的vivado快了不是一点半点。 我的上篇文章介绍了vivado的远程编译下载,本篇介绍quartus II的远程编译下载。需求 寝室台式机编译一个项目
2021-03-24 19:04:37
2237
3
原创 Vivado远程编译并下载程序到本地xilinx开发板
Vivado远程编译并下载程序到本地xilinx开发板关键词: vivado 远程烧写 frp FPGA xilinx 云服务器需求分析: 项目需要,最近需要把FPGA程序从altera移植到xilinx平台,开发环境要从quartus ii换到vivado。现在有条件, 1.寝室有一台安装了vivado2019.2软件的PC(win10,性能较好、综合编译快), 2.实验室未安装vivado软件的笔记本(win10,用了三四年,安装了各种杂七杂八
2021-03-13 18:21:00
9190
6
原创 避坑总结——MCU:stm32f103zet6与FPGA:ep4ce6e22c8 的4层PCB绘制
避坑总结——MCU:stm32f103zet6与FPGA:cep4ce6e22c8 的4层PCB绘制一.总体介绍由于下项目需要,最近画了一块基于 stm32f103zet6 和 ep4ce6e22c8 的MCU+FPGA的双芯片PCB,期间遇到了不少坑,在此总结一下注意事项。废话少说直接上图:正面:背面:板子尺寸:10cm9cm0.16cm板子层数:4stm32部分为左半边电路,电路参考的是"正点原子"的开源的原理图. 开发板32部分实现的主要功能包括: 按键, LED, RTC, SD
2020-12-20 22:59:04
3138
1
ads1115数据手册及调用程序.rar
2020-04-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人