自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (8)
  • 收藏
  • 关注

原创 Allegro中设置带差值的等长线组规则

Pin1 的数值即上游已经走线的长度,针对底板而言这里可以理解为核心板的走线长度,Pin2 则是走线本板子后端的走线,可以理解为再下游的底板,而整个等长规则是确保Pin1 delay + Pin2 Delay + 走线长度 同组等长!另外,等长规则约束要精确到 pin pair,也即器件的管脚到管脚之间的走线,而非只是net,因为有的net涉及多个走线,等长分析时很可能是全部一起,而非信号实际流向的距离。Allegro 画PCB进行等长约束规则设置时,需要用到等长规则中的差值设置功能。

2022-12-30 12:02:08 1566

原创 运放振荡问题的个人理解

运放使用时振荡问题与反馈补偿电容问题

2022-10-25 20:33:39 4010

原创 verilog刷题:LFSR 产生特定序列

LFSR 产生特定序列

2022-09-14 20:58:10 778

原创 verilog刷题:奇数50%占空比分频及相位调整

奇数50%占空比分频及相位调整

2022-09-05 16:45:51 544

原创 verilog刷题:valid ready握手无气泡

刷题,valid ready 握手无气泡

2022-08-27 18:06:57 1660

原创 玄铁E906移植----番外0:玄铁C906仿真环境搭建

玄铁E906移植----番外0:玄铁C906仿真环境搭建

2022-06-17 20:52:24 2820 2

原创 四、E906移植----printf函数重映射至uart

玄铁riscv核E906的fpga移植04篇,printf函数重映射至串口

2022-06-10 22:34:52 2105 9

原创 三、E906移植----FPGA生成可用的比特流并实现串口发送

E906的FPGA移植03篇

2022-06-07 00:03:23 3259 8

原创 二、E906移植----项目解读与FPGA基本工程搭建

E906的FPGA移植02篇

2022-06-02 23:52:15 4542 5

原创 一、E906移植----项目介绍、开发环境与实验平台搭建

E906的FPGA移植系列 01篇

2022-06-01 23:58:08 8222 17

原创 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

原创 分享一个基于QT的自定义串口助手

QT串口助手项目

2022-01-24 21:45:08 758 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

原创 vscode把空格替换成换行符并换行显示

勾选正则表达式:空格直接打;换行用: \n

2021-12-27 21:22:53 5078

原创 关于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

原创 zynq7020的arm A9核降频实录

zynq arm9 cortex a9 降频

2021-12-11 20:31:06 7346 6

原创 LC滤波器之m推演滤波器的LC参数matlab计算

m推演LPF滤波器LC参数计算matlab程序

2021-12-02 19:16:51 3321

原创 多级LC滤波器级联问题

LC滤波器级联问题

2021-12-02 00:19:13 4737

原创 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

Angilent34401A数字万用表使用手册

Angilent34401A数字万用表使用手册

2022-11-03

一些常用的频谱仪选型总结

一些常用的频谱仪选型总结

2022-05-19

基于QT编译后的串口助手

基于QT编译后的串口助手 功能描述见我的QT串口助手那篇博客

2022-02-14

报告5-仿人智能控制.rar

基于matlab的仿人智能控制算法(HSIC)的一种搭建

2021-11-02

报告4-神经网络拟合.rar

matlab 搭建简单的BP神经网络

2021-11-02

报告2-PID、模糊、模糊PID.rar

PID、fuzzy和 fuzzy PID控制相应的matlab仿真算法

2021-11-02

main_slave.c

该程序为52单片机模拟 IIC从机行为程序, 程序中假定从机只是响应SCL变化,从来不主动改变SCL,只改变SDA信号, 实现简单的数据传输功能。

2020-04-25

ads1115数据手册及调用程序.rar

16bitADC ——ADS1115的51单片机 IIC 控制时序程序 , 程序时序基本的寄存器配置和测量读取控制,并将结果显示到数码管上。 附带ads1115的数据手册。

2020-04-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除