自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 Glitch free 无毛刺时钟切换电路,时钟无缝切换,时钟无毛刺切换技术

无毛刺时钟切换电路,又叫 Glitch free 电路、时钟无缝切换电路,在笔试中遇到过,如果没有接触过,很可能无从下手。随着越来越多的多时钟应用于当今的芯片中(尤其是在通信领域),在芯片运行时经常需要切换时钟源。这两个时钟在频率上可能完全不相关,也可能成倍数关系。不管是哪种情况,都有可能在开关门控时产生毛刺(Glitch)。时钟线上的毛刺对整个系统是危险的,因为它可能使用边沿触发了部分寄存器,而其他寄存器却没被触发。在这篇文章中,使用两种不同的方式来避免输出时钟上有毛刺。

2023-09-24 17:00:29 853

原创 数字IC设计之时序分析基础概念汇总

时序分析主要有两种办法:静态时序分析: (static timing analysis,STA),是遍历电路存在的所有时序路径,根据给定工作条件(PVT)下的时序库.lib文件计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足约束要求,根据最大路径延时和最小路径延时找出违背时序约束的错误。

2023-09-12 23:02:28 1211

原创 数字IC设计之 ASIC电路设计流程

对设计的功能进行仿真验证,需要激励,常用工具有Mentor的Modelsim、Synopsys的VCS、以及Cadence 的NC-Verilog等,该部分称为前仿。在时序上进行分析,常用工具为Synopsys的PT工具,一般用在后端设计中,由版图生成网表去STA更准确一些。常用的是等价性检查,对比HDL设计和综合后的网表功能是否有等价性,常用工具为Synopsys的Formality工具。需要指定特定的综合库,添加约束文件,综合得到门级网表(Netlist)。:加入了布局布线延迟,更真实的时序分析。

2023-09-12 20:43:22 185

原创 跨时钟域中单比特处理的基本知识点

我们继续看,既然这个pulse synchronizer中+间利用了2flop,那么2flop的3edge要求就必须要满足,换句话说,我们转化成为的level的信号Tq要足够长。但是这样做的缺点也很明显,就是将aclk的data进行了扩展,两次的同步也增加了延时,这是为了达到每次变化都同步而付出的代价。如果没有这样频率的关系,那就得对adata有要求了,adata的变化不能很迅速,要稳定足够长的时间,这样才不会让bclk域错过值,具体怎么做呢?Latch能够存储住状态,靠的是上面的背靠背的反相器。

2023-09-11 22:35:12 194

原创 数字IC设计之时序逻辑中的亚稳态问题

以CPU取指令3ns、分析4ns、执行1ns为例● 流水线周期: 执行最长操作所花费的时间,也是流水过程中每输出1个结果花费的时间,即4ns● 操作时间: 只执行1次全部操作花费的时间,即3+4+1=8ns● n个数据流水线时间: 执行1次流水共执行n次操作花费的时间,公式 操作时间 + (n-1)×流水线周期● 吞吐率: 输出结果数量 / 流水线时间。n个数据流水线吞吐率为 n / [操作时间 + (n-1)×流水线周期]

2023-09-11 16:42:30 226

原创 数字IC设计之组合逻辑中的竞争冒险问题

两个输入信号同时的现象(即一个由1- > 0, 另一个从0 -> 1),称为竞争。指组合逻辑电路中,多个输入信号变化传输到同一个门级电路时,时间上有先有后的现象引起竞争的原因就是时延,竞争会导致冒险)因竞争导致在输出端可能产生的现象,称为冒险。分为功能冒险和逻辑冒险.●:电信号发生电平跳变时,在导线上传输的时间。

2023-09-11 09:52:14 834 1

原创 数字IC笔试面试题之--时钟偏斜(skew)与抖动(jitter)

(数据传输时间不变,本来满足STA分析,不会出现问题。但是时钟倾斜变大,当前时钟上升沿来临变晚,导致保持时间不在满足)但是时钟倾斜变小,下一时钟上升沿来临变早,导致建立时间不在满足)有些误差或不确定因素是仿真中无法预见的,设计者只有通过周密的思考和实际经验的积累来逐步提高系统设计的水平。这一误差来源于时钟自身(如:晶振、PLL电路的偏差),与噪声、干扰以及电源变化有关。可以看出,时钟抖动可能导致时钟上升沿比期望值来的更早或更晚。可以看出,同一时钟上升沿,到达D1和D2的时间不同。这一时间差,即为时钟偏移。

2023-09-08 22:04:10 448

原创 数字IC设计笔试面试经典题(1-10)

如下图所示的spice中给激励的语句和波形:

2023-09-08 16:32:39 1195

原创 基于vivado的 AXI Verification IP对AXI接口进行仿真

vivado提供了一个AXI VIP设计实例,接下来就生成IP设计实例,并且仿真这个设计案例。

2023-08-30 16:42:29 788

原创 AXI4总线介绍

介绍AXI之前,要知道ARM AMBA(Advance Microcontroller Bus Architecture),这是ARM在1996年提出的一个微控制器的片上总线协议,大家熟悉的AHB或APB等总线协议都是AMBA的一部分,而AXI在AMBA 3.0版本成为该协议的一部分,目前Xilinx的7系列FPGA中用的是AMBA 4.0版本中的AXI协议,所以你会看到Vivado中带AXI接口的IP介绍都是AXI4打头。它们的关系如下图所示:AXI4总线有四种类型:AXI4、AXI4-Lite和AXI4

2023-08-27 22:49:06 1014

原创 AHB2APB同步桥设计实例

很多人包括我自己在第一次接触AHB的时候,会被它的两个HREADY信号搞混,分别是HREADYOUT和HREADY(IN)信号。,例如写操作时,Slave是否可以将数据存下来。本质上是Slave对Master的反压信号。。每个Slave在采样地址和控制信号的时候,都要看这个HREADYIN信号是否为1,如果为0的话则代表别的Slave还有未完成的传输,因此不能采样地址和控制信号。首先我们思考一个问题,HREADYOUT默认的复位值应该是多少?然后我们再思考一下,如果没有HREADYIN信号会怎么样?

2023-08-25 16:08:40 532

原创 基于AHB2协议的SRAM控制器设计

我们要设计的模块为紧耦合SRAM(Tightly coupled memory),。且只支持32bit位宽的SRAM。支持按字节写,该模块除了用在IC设计中,也可以用在FPGA设计中,因为一般FPGA提供的MIG,只支持AXI或者native接口,这种情况下还是需要AHB2SRAM这个模块完成协议转换的。

2023-08-23 15:40:25 377 1

原创 AHB / AHB-Lite 总线的传输控制信号的详解(由于比较重要单独写一篇来探讨)

以图5为例,slave3可以被多个Master访问,假设Master0发起了读又发起了写,没有原子操作的支持的话,假设Master1也发起了读,我们本质上是希望Master1读到Master0写到slave3的数据,但是Master1的读很可能位于Master0的写之前,这样就不符合我们的预期了。(想象一下,主机2去写个数据,还没有写完主机1就去读同样的地址的数据,就拿到了旧的值,这样就不符合预期了,很多汇编指令有原子操作指令,从底层来看就需要硬件的机制来帮忙)。同样的,我们看传输协议,如图3所示。

2023-08-22 16:06:20 569

原创 AHB-Lite 协议简介

全局信号APB总线复位信号为低有效并且通常将该信号直接连接到系统总线的复位信号Master 信号Slave 信号可以看到Slave产生的信号都是送给MUX的,由MUX选择其中一个,送到MasterDecoder 信号Decoder实际上就产生一组信号,直接看文档。Decoder顾名思义,进行译码。对什么进行译码?实际上就是地址,当满足条件的时候,将多组HSELx的其中一个拉高,已选中需要选中的Slave。

2023-08-22 15:50:03 612

原创 AHB总线协议

这要看优先级算法是如何规定的。如果一笔burst被打断,master再度获得接入权限时,会传递剩余的部分。如一笔长度为INCR8的传输在传递3 beat后被打断,master再次获得接入授权后,会继续传输剩余的5 beat,剩余部分可以由一个SINGLE和一个INCR4组成,或者一个INCR。HBUSREQx: master向arbiter发出接入请求的信号。HLOCKx:指示是否要进行不可中断的传输,这一信号与HBUSREQx同时由master向arbiter发出。

2023-08-22 14:59:20 411

原创 APB slave 设计及介绍

参考ARM公司的例子得到的,链接如下,APB3.0例子APB4.0例子一个简单的APB从接口。32位数据总线,端独立。对于APB3从机示例,数据处理仅为32位。对于APB4从机示例,使用PSTRB信号对单个字节执行写操作。数据传输需要两个时钟周期。4个32位RW寄存器该模块是一个,上面APB相关的信号都介绍过,这里不再重复介绍,其中的ECOREVNUM的意思是ECO revision number,如果没有用到ARM的ECO的话,将该信号固定为全0即可。右边这个slave_reg实际上就对应。

2023-08-19 23:04:15 495

原创 AMBA总线介绍

总线:是指计算机组件间规范化的交换数据的方式,以一种通用的方式为各个组件提供数据传送和控制逻辑。chatgpt 给的结果是 :总线(Bus)是计算机系统中用于传输数据、地址和控制信号的一种集合线路。它在计算机内部的各个组件之间传递信息,如中央处理器(CPU)、内存、输入输出设备等。总线可以分为不同的类型,包括数据总线、地址总线和控制总线。数据总线(Data Bus):用于传输数据和指令,使各个组件能够交换信息。

2023-08-19 17:37:57 724

原创 经典加法器Verilog实现

超前进位加法器是由全加器发展而来,目的提高运算速度,当加法器的级数提高时,高位的进位信号需要从低级逐级传递,为了缩短这个时间,我们可以从低级的输入信号确定一个组合逻辑电路,唯一确定一个高位的进位信号,从而提高运行速度,超前进位加法器也称为快速进位加法器,目的是缩短进位信号的生成时间。并行加法器就是利用多个全加器实现两个操作数各位同时相加,并行加法器中全加器的个数与操作数的位数相同,常用的并行加法器有行波进位加法器,超前进位加法器,进位选择加法器,容易实现,运算速度快,但是资源耗的多。8bit流水线加法器。

2023-08-12 20:06:20 616 1

原创 串并转换器(简介及Verilog实现)

串并转换是完成串行传输和并行传输的两种传输方式之间的技术,通过移位寄存器可以实现串并转换。串转并时,将数据移位保存到寄存器中,再将寄存器中的数据同时输出。并转串时,将数据移位,再将寄存器的做高位或者最低位的数值串行输出。总结:本次转换时使用了移位寄存器,还有一种以计数器的结构来实现,有兴趣的可以自己研究一下。

2023-08-08 15:53:30 547

原创 边沿检测器(简介及Verilog实现)

思路很简单,就是先对信号延迟一拍,再用组合逻辑对原信号和延迟信号判断。涉及到两个信号延迟一拍,优先考虑是不是边沿检测。上升沿检测 din && ~din_d。下降沿检测 ~din && din_d。边沿检测分上升沿检测和下降沿检测。

2023-08-08 15:31:06 111

原创 奇偶分频器(简介和Verilog实现)

小数分频不能精确到控制占空比,也没办法控制到精确的小数分频,而是平均频率的小数倍,小数分频涉及到奇数分频,偶数分频以及平均分布的方法。单计数器实现,只在上升沿计数,在上升沿和下降沿采用输出高低电平。在上升沿和下降沿计数,在上升沿和下降沿采用输出高低电平。奇数分频需要考虑占空比是否50%,要求使用双边沿逻辑。只在上升沿计数,在上升沿和下降沿采用输出高低电平。确定分频次数后,要合理安排分频的顺序,确保平均。完成奇偶分频,确定好分频的次数。小数分频涉及到奇数和偶数分频。计数器实现2n偶数分频。

2023-08-08 15:20:22 1189

原创 Verilog 实现奇偶校验

是一种校验代码传输正确性的方法,根据被传输的一组二进制数位中“ 1” 的个数是奇数或者偶数来进行校验。采用哪种校验是事先规定的,通常会设置一个奇偶效验位,用它是这组代码中1的个数为奇数或者偶数,若奇校验,接收端,校验“1”的个数是奇数,偶校验:数据和校验位中“1 ” 的总数为偶数,则数据无误,否则数据有误。奇校验:数据和校验位中“1” 的总数为奇数,则数据无误,否则数据有误。奇校验实现方式:校验位默认为高电平,每检测到1,则状态翻转。偶校验实现方式:校验位默认为低电平,每检测到1,则状态翻转。

2023-08-07 16:24:23 1306 2

原创 数字IC-序列检测-fsm

序列检测器包含两种,一种是移位寄存器,另一种时状态机,还有重复序列和不重复序列检测。重点关注和了解如何用状态机去实现。序列检测器就是将指定的序列从数字码流 中检测出来,收到输出1,否则输出0。此处采用的状态机是三段式Moore状态机的写法。重复序列检测1101序列。不重复序列检测1101。序列检测简介及代码实现。不重复序列检测1101。重复序列检测1101。

2023-08-07 15:49:24 98 1

原创 数字IC,三大核心代码架构之计数器(verilo实列)

计数器设计是数字IC设计 的核心,也是最常用的代码片段,通过记录时钟周期个数,可以控制电路的时序,通过计数器可以实现测量,计数,状态控制,分频,计数器有触发器和逻辑门共同构成。约翰逊(Johnson)计数器又称扭环计数器,是一种n位触发器来表示2n个状态的计数器,约翰逊计数器相邻两组数只有一位不同,避免竞争冒险。这里要考虑的是复位信号和其他标志信号,一般复位是计数器清0,其他标志信号看情况。加计数,还是减计数,在同一个设计里面,计数的方向要保持一致。一般条件是时钟沿跳变,还有可能是使能信号,标志信号等。

2023-08-07 15:01:02 164 1

原创 双口ram 简介及Verilog实现

RAM(Random Access Memory),随机存储器,是一种用来暂时存储中间数据的存储器,掉电易失,按照类型可以分为单口ram,双口ram,其中双口ram又有简单(伪)的ram,真双端口ram,在异步FIFO的内部就是一个双端口ram存储数据,ram 是最简单的ip,在FPGA和ASIC设计中会经常用到成熟的ram,重点理解ram的输出输入特性,了解在项目中如何使用RAM,以及如何控制RAM的读出和写入。4两个端口同时对同一个地址单元,一个写入数据,一个读取数据(read err )

2023-08-07 11:41:46 754 2

原创 异步FIFO的设计

1,经过同步FIFO的设计,了解FIFO ,现在来写异步FIFO,应该有点思考了,由于要解决跨时钟域的问题,前面设计同步FIFO的计数器方法就不太实用了,所以就选择高位扩展法,但是还有个问题如果采取二进制也会造成亚稳态,所以选择格雷码。testbech与同步FIFO的类似,这里只给出Verilog实现。2 ,读写跨时钟域的问题,这里都是采取打两拍来解决,但是如何判断。读空判断: 将写指针同步到读指针,在于读指针判断。写满判断:将读指针同步到写指针,在于写指针判断。总结一下别人的结论,这里就不再讨论了,

2023-07-19 16:45:08 51

原创 同步FIFO的设计(计数器和高位扩展法)

例如3bit的地址,我们扩展成4bit 地址区间从3‘b000-3’b111变成4‘b0000-4'b1111,假设不看最高位的话,地址区间任然是3’b000-3'b111,所以,最高位就可以看作是指示位。存器,一般分两种同步和异步,先说同步,在设计中同步FIFO是只有一个时钟信号,所以要考虑到的是读空,和写满两个状态的判断。当读写地址相同时,表明FIFO为空,这种情况发生在复位,或者读指针读出最后一个数据,追上了写指针。当读写使能信号都有效时,说明又读又写,计数器不变,FIFO中的数据个数没有变化。

2023-07-19 16:27:20 234

原创 Verilog实现二进制与格雷码的转换

格雷码的特点是从一个数变为相邻的一个数时,只有一个数据发生跳变,所以,就可以避免二进制编码计数器组合电路中出现的亚稳态。格雷码的最高位作为二进制的最高位,二进制的次高位是二进制的高位和格雷码的次高位相异或得到,其他位以此类推。二进制的最高位作为格雷码的最高位,次高位的格雷码是二进制的最高位与次高位异或得到,其他位类似。由于格雷码是一种变权码,每一位没有固定的大小,很难进行比较大小和算数运算。Verilog 代码实现。2,二进制转换成格雷码。3,格雷码转换成二进制。

2023-07-19 10:43:43 485

原创 UltraEdit编辑器+注册机(windows版)

UltraEdit软件集成了SSH/telnet 客户端、脚本、自定义工具、宏和智能模板等内容,用户常用这款软件进行修改EXE或DLL文件。软件内建英文单字检查、C++及VB指令突显,可以帮助用户编辑文件,软件完全可以取代记事本,使用起来非常方便。是一款非常好用的文本编辑软件,软件功能丰富强大,能够编辑文本、十六进制、ASCII码等。用户可以使用这款软件同时编辑多个文件,帮助用户进行日常文字处理,代码编辑等工作,软件还附有 HTML 标签颜色显示、搜寻替换以及无限制的还原功能。

2022-09-04 21:58:15 33266 11

原创 mybatis+mybatisplus +spring-mybatisplus+ springbootmybatisplus运行出的报错总结

导依赖坐标是会报红色,说明没有下载下来,但是刷新之后还是下载不下来,就要看seting.xml文件中有没有加入阿里云的连接来下载,<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>c

2022-05-17 22:05:53 361

原创 Springboot-mybatisplus-mp整合案例

创建模块之后导入坐标完成pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://

2022-05-17 21:52:55 180

原创 Spring -Mybatisplusz整合案例

在mybatisplus的基础上创建模块导入坐标c<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0..

2022-05-17 21:35:58 164

原创 mybatisplus(mp)案例

在navicat创建数据库和表-- 创建测试表create table tb_user ( `id` int primary key auto_increment , `user_name` varchar(20) NOT NULL COMMENT '用户名', `password` varchar(20) NOT NULL COMMENT '密码', `name` varchar(30) DEFAULT NULL COMMENT '姓名', `age` int(11) DEFAULT.

2022-05-17 21:24:23 109

原创 Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springfr

报错如下显示:at org.springframework.test.context.BootstrapUtils.createCacheAwareContextLoaderDelegate(BootstrapUtils.java:113) at org.springframework.test.context.BootstrapUtils.createBootstrapContext(BootstrapUtils.java:80) at org.springframework.test.con.

2022-05-17 16:06:04 6807

原创 Caused by: java.lang.ClassNotFoundException: org.springframework.core.KotlinDetector

at java.net.URLClassLoader.findClass(URLClassLoader.java:387) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ... 24 mor.

2022-05-17 15:53:43 1273

原创 Java web 实现页面显示数据库表格

运行错误显示ERROR: IllegalAccessException for stop method in class org.apache.tomcat.maven.plugin.tomcat7.run.ExtendedTomcat目录mapperpackage com.itheima.mapper;import com.itheima.pojo.Brand;import org.apache.ibatis.annotations.Select;import j..

2022-05-12 22:33:51 3357 2

空空如也

空空如也

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

TA关注的人

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