FPGA设计之latch出现 背景 在数字电路中我们学习过触发器和锁存器,但是在写Verilog的时候很少使用latch(锁存器),这是为什么呢。触发器(FF)与锁存器(latch)对比基本定义 锁存器,是一种对脉冲电平敏感的存储单元电路。锁存器和寄存器都是基本存储单元,锁存器是电平触发的存储器,寄存器是边沿触发的存储器。两者的基本功能是一样的,都可以存储数据。产生场景 锁存器是组合逻辑产生的,而寄存器是在时序电路中使用,由时钟触发产生的。latch危害 latch 的主要危害是会产生毛刺(glitch),这种毛
ESP32C3串口通信 背景 最近在淘宝发现了合宙通信推出的ESP32C3开发板,价格相对便宜(9.9包邮),官方主要提倡使用luat快速开发,笔者习惯用C/C++开发,邃本文中笔者使用ESP-IDF进行开发。API函数库及思路代码...
FPGA之RAM Control RAM简介: RAM 的英文全称是 Random Access Memory,即随机存取存储器, 它可以随时把数据写入任一指定地址的存储单元,也可以随时从任一指定地址中读出数据, 其读写速度是由时钟频率决定的。 RAM 主要用来存放程序及程序执行过程中产生的中间数据、 运算结果等。RAM分类:RAM分类 这里我们使用最简单的单端口RAM:DINA:RAM 端口 A 写数据信号。ADDRA:RAM 端口 A 读写地址信号,对于单端口 RAM 来说,读地址和写地址共用同该地址线。WEA:
SystemVerilogHDL简易频率计设计 背景最近写一个多路信号发生器的时候,发现用肉眼观察波形信号很麻烦,想着用SV写一个自动检测频率的设计让其自动输出。设计思路捕捉连续的两个下降沿,然后根据cnt计数值计算频率,误差范围测量Mhz以内的方波时较小。因为设计思路较为简单,笔者在这就不放出状态机的FSM了代码...
Ubuntu开发嵌入式串口权限问题 背景: 串口:不管是做单片机,Linux,还是FPGA开发,都是重要的下载和debug设备。 最近笔者将大部分平台从Windows切换成Ubuntu,使用makefile和cmake开发,效率较高。但是在下载和使用串口调试助手过程中发现都要root运行,这样很不方便现象: 其实实际操作并不难,只需很简单的操作即可实现非root权限访问//dev/tty***等设备了我们首先来看一下为什么普通用户没有权限了:$ ls -l /dev/ttyUSB0crw-rw---- 1 root dia
ESP32报错 ESP32系列下载的时候报错:CMake Error at run_serial_tool.cmake:56 (message):/XXXXXX/.espressif/python_env/idf4.4_py3.8_env/bin/python/XXXXXX/esp-idf/components/esptool_py/esptool/esptool.py --chipesp32c3 failed或FAILED: CMakeFiles/flashninja: build stopped: subc
Ubuntu下树莓派rp2040开发环境搭建 最近在折腾树莓派的MCU rp2040,在论坛上查询了很多资料,各路开发环境都有,主流的还是官方主推的MicroPython和C/C++,身为做嵌入式的,还是更习惯于用C开发。 查看了官方环境搭建手册,官方还是以开发Linux那一套来开发MCU,具体操作如下:去Github树莓派仓库下载一键安装脚本,给个传送门一键安装脚本,直接git clone下来之后,将文件夹sudo chmod 777更改成普通用户权限,然后执行。 .
ESP32下载出错 最近做个小玩具,采用市面上最通用的ESP32最小系统板结果发现在有两个三极管当作自动下载电路的情况下依然不能进入自动下载模式现象报错:A fatal error occurred: Failed to connect to ESP32: Wrong boot mode detected (0x13)! The chip needs to be in download mode.For troubleshooting steps visit: https://github.com/espressif
时钟分频引发的思考 最近写一个多路PWM驱动LED的驱动器,本以为会非常简单的,但是当设计到计数分频的时,才注意到一个平时没注意到的点。 当always@(posedge clk_50m or negedge rst),由于clk_50m是系统时钟,不建议将50m分出来所得到的时钟在用于其他always模块里面,这样会造成在约束阶段,对时钟的约束增加很多,如何STA和后端处理时造成很多不必要的困难,所以不管是在FPGA还是ASIC设计中,都不建议使用分出的时钟做D触发器的
AISC/FPGA设计中 硬件UART波特率误差计算 ASIC设计中UART波特率误差计算背景误差来源计算最大误差允许值-简洁版计算最大误差允许值-完整版背景误差来源计算最大误差允许值-简洁版计算最大误差允许值-完整版总结与疑惑背景误差来源计算最大误差允许值-简洁版计算最大误差允许值-完整版背景 本篇文章不涉及任何Verilog代码,仅仅只是对UART通信过程中产生的误差进行分析 最近在写UART的Verilog的时候,因为没涉及同步通信和兼容各种其他协议所以很快就写完了。但是在做验证的时候遇到疑惑了,记录一些碰到的疑惑与大家分享。误差来源
Ubuntu下ASIC/FPGA环境搭建 Ubuntu下ASIC/FPGA环境搭建ASIC and FPGAUbuntu下ASIC/FPGA环境搭建前言准备Ubuntu环境安装制作启动盘安装UbuntuVivado软件安装Synopsys相关软件安装安装IC软件license生成、环境以及激活启动scl_keygen生成器环境设置激活结束语参考文献前言 最近收拾柜子,找到了上学期间使用联想R720, I5-7300HQ, 16G 2666,配置不算太差,打算用来安装一些IDE和EDA 用作外出闲暇时办公,由于有时需要做一些ARM核的交叉编译
JlinkV10被Ban,恢复教程 最近Segger推出了新版本的Jlink 7.58版本驱动,但未告知淘宝特别版的Jlink会被禁止。很不幸笔者的JlinkV10也中招了,如果你手上的JlinkV10还未在电脑上安装7.58版本及之后的驱动,请一定不要安装安装现象如果读者误安装,就会插上Jlink之后,驱动提醒您更新最新的V11版本固件,然后点了更新,更新结束之后/重新上电之后,Jlink的灯会变成红色闪烁5次然后变绿色,然后打开Jlink_Commander,就会出现如图一样的结果这是因为Segger在7.58版本里面对V10进行
MDK Pack安装包下载算法BUG MDK安装Pack包之后无法选择Pack里面对应的下载算法背景最近笔者准备DIY一些MCU小玩具,给电脑装上MDK5.36的最新版,和谐,安装上对应芯片的Pack包,开发完之后发现Download无法选择对应型号的下载算法。现象解决思路一开始笔者以为是MDK版本的问题,遂更换版本,结果更换多个版本的MKD和Pack,现象均与上图一样,可能是笔者电脑问题,笔者最后把文件夹,注册表删除均无果。希望有MDK大神看一下这到底是什么原因。解决办法找到我们Pack安装路径,大部分使用者会装在MDK
Ubuntu 20.04下安装微信 安装必要的工具及deepin-wine依赖sudo apt install wget g++ git安装deepin-winegit clone “https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu.git”cd deepin-wine-for-ubuntu #切换到下载目录sudo ./install.sh #执行安装安装包链接http
Ubuntu下安装Vivado2020.2进度到最后1/3卡住不动 Ubuntu下安装Vivado2020.2进度到最后1/3卡住不动今天在Ubuntu下安装Vivado时候,一切顺利,但是直到安装到最后1/3时死活卡住不动,等了一个小时无果。查资料此处是缺一个libncurses5库,解决方法如下:sudo su,然后输入密码 进入管理员身份sudo apt install libncurses5即可解决...
Vivado2020.2与Modelsim2020.4联合仿真 Vivado2020.2与Modelsim2020.4联合仿真此链接为我自制知乎投稿,引用到CSDN是为了帮助更多有需要的朋友。不是单纯的复制粘贴。写文章不易,欢迎大家在知乎和CSDN给我点赞。Vivado2020.2和Modulsim2020.联合仿真 - Hack的文章 - 知乎https://zhuanlan.zhihu.com/p/384075655...
ESP8266 WIFI kill 2021版教程(小白0基础) ESP8266 WIFI kill 2021版教程(小白0基础)最近收拾箱子,收拾出几个ESP8266模块,遂做几个WiFi kill本教程仅供技术交流使用,造成任何损失概不负责用CP2102作为串口下载的8266WIFI模块制作准备原材料硬件:ESP8266模块 CH340或者CP2102作为串口microUSB数据线一条软件:添加链接描述1:串口驱动CH340/CP21022:信可安官方Flash下载工具3:串口调试助手4:KILL固件你好! 这是你第一次使用 Mar