- 博客(11)
- 资源 (5)
- 收藏
- 关注
原创 关于Spyglass CDC的简单学习
Spyglass(synopsys家)一、跨时钟域检查简介随着技术的发展,数字电路的集成度越来越高,设计也越来越复杂。很少有系统会只工作在同一个时钟频率。一个系统中往往会存在多个时钟,这些时钟之间有可能是同步的,也有可能是异步的。如果一个系统中,异步时钟之间存在信号通道,则就会存在CDC(clock domain crossing)问题。如上图中,CLKA和CLKB之间没有固定的相位关系,是异步时钟。前半部分设计属于时钟域CLKA,后半部分设计属于时钟域CLKB。DA信号从时钟域CLKA进入到时钟域
2021-12-27 21:11:34 2569
原创 Verilog中不可综合汇总(更新中...欢迎评论)
一、建立可综合模型Tips(1)不使用initial。(2)不使用#10。(3)不使用循环次数不确定的循环语句,如forever、while等。(4)不使用用户自定义原语(UDP元件)。UDP详见我的文章: https://blog.csdn.net/qq_44816673/article/details/121672075(5)尽量使用同步方式设计电路。DC综合电路一般是同步电路,综合异步电路需要增加额外条件:http://blog.sina.com.cn/s/blog_6c090c5d01
2021-12-02 14:10:20 1776
原创 Verilog中浅谈for与generate for
标题简介在C语言或者其他编程语言中for语句往往用作循环语句,但是在硬件电路Verilog 中一般不在可综合代码中使用,因为for循环会被综合器展开为所有变量情况的执行语句 ,每个变量独立占用寄存器资源,每条执行语并不能有效地复用硬件逻辑资源,造成巨大的资源浪费。 简单的说就是:for语句循环几次,就是将相同的电路复制几次,因此循环次数越多,占用面积越大, 综合就越慢。for语句的一般 使用 情况: 在testbench中 使用 ,往往用于激励信号的生成。在for循环中需要用到Integer,Inte
2021-12-02 09:20:15 8809
原创 通信总线----UART(有详细代码)
UART通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。本文详细文档和完整的代码会在后面文章以文档的形式发出来1. 硬件连接硬件连接比较简单,仅需要3条线,注意连接时两个设备UART电平,如电平范围不一致请做电平转换后再连接,如下图所示:TX:发送数据端,要接对面设备的RXRX:接收
2021-09-01 12:44:09 5514 4
原创 DC综合基础知识以及简易操作
DC学习从本科最开始学习DC综合,就一直有用到综合,不得不说DC在综合这一块做的的确是一枝独秀。刚开始使用DC综合工具,一直使用别人做好的脚本,不是很理解其中的意义。一直想找时间系统性的学习一下DC综合相关的知识,恰巧的是暑假有幸参加一个培训,其中就有synopsys公司的内部人员对我们进行培训,虽然培训的是DC NXT的内容,不过对于脚本啥的基础知识是一样的。我将之前学习的内容加上这次培训的内容,然后在网上又系统的上了一门课程,总结了两个word包括基础知识和简易操作,下一个博客将会发出来。
2021-08-24 12:15:18 1238 1
原创 异步bus交互(三)—FIFO
跨时钟域处理 & 亚稳态处理&异步FIFO1.FIFO概述FIFO: 一、先入先出队列(First Input First Output,FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。 1.什么是FIFO? FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成
2021-05-03 17:47:22 529
原创 异步bus交互(二)— 握手协议(2)
跨时钟域处理 & 亚稳态处理1.概述常见的跨时钟域信号处理方法都有哪些呢?有如下的三种:(1)两级DFF同步器(2)握手协议(3)异步FIFO..2.一个复杂的握手信号如果频率较高的时钟域A中的信号D1 要传到频率较低的时钟域B,但是D1只有一个时钟脉冲宽度(1T),clkb 就有几率采不到D1了,如图1。因此只有当D1 在很长一段时间内为1或0,确保一定可以被clkb采样到,才能用两级DFF同步器处理。如果信号D1 只有1T或几个T的脉宽,又需要传到时钟频率较低甚至或快或慢
2021-05-02 15:22:31 1999
原创 异步bus交互(二)— 握手协议(1)
跨时钟域处理 & 亚稳态处理1.概述常见的跨时钟域信号处理方法都有哪些呢?有如下的三种:(1)两级DFF同步器(2)握手协议(3)异步FIFO..2.一个简单的握手信号使用握手信号“xreq”和“yack”,“系统x”将数据发送给“系统y”。下面是使用握手信号传输数据的例子。发送器“系统x”将数据放在数据总线上并发出“xreq”(请求)信号,表示有效数据已经发到接收器“系统y”的数据总线上。采用两级D触发器缓存,把“xreq”信号同步到接收器的时钟域“yclk”上,
2021-05-02 14:44:54 2592 2
原创 异步bus交互(一)— 两级DFF同步器
异步bus交互(一)— 两级DFF同步器跨时钟域处理 & 亚稳态处理1.问题产生现在的芯片(比如SOC,片上系统)集成度和复杂度越来越高,通常一颗芯片上会有许多不同的信号工作在不同的时钟频率下。比如SOC芯片中的CPU通常会工作在一个频率上,总线信号(比如DRAM BUS)会工作在另一个时钟频率下,而普通的信号又会工作在另外的时钟频率下。这3个不同时钟频率下工作的信号往往需要相互沟通和传递信号。不同时钟域下的信号传递就涉及到跨时钟域信号处理,因为相互之间的频率、相位不一样,如果不做处理或者
2021-05-01 16:42:24 4206 1
原创 总线通信—SPI
总线通信—SPI(代码在另一博文)1.概述简述SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。应用SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,分别是SSEL(片选,也写作 SCS)、SCLK(时钟,也写作SCK)、MOSI(主机输出从机输
2021-04-19 22:32:35 615
原创 总线通信——IIC(附工程)
通信总线—IIC协议(附工程案例)1.概述IIC = Inter Integrated-Circuit 总线是PHLIPS公司推出的一种串行总线,属于半双工通信方式,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL,如下图:2.内部结构I2C总线通过上拉电阻(大小由速度和容性负载决定一般在3.3K-10K之间)
2021-04-18 16:20:56 701
apb_UART.zip
2021-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人