IC模块设计
文章平均质量分 81
IamSarah
数字IC设计方向,已工作。IC之路慢慢其修远兮,吾将上下而求索!
展开
-
并行数据转换为串行数据的转换器
这篇文章写一下今天早上设计的并行数据到串行数据的转换器,也算是对并行总线和串行总线一个小小的应用,编码过程中也用到了task。该转换器主要实现的功能是:1、把并行地址存入寄存器2、把并行数据存入寄存器3、连接串行单总线4、地址的串行输出5、数据的串行输出6、挂起串行单总线7、给信号源应答8、让信号源给出下一个操作对象9、结束写操作该设计利用嵌套的状态原创 2017-07-24 12:04:16 · 20987 阅读 · 1 评论 -
任意分数分频器的verilog实现
这篇博文是关于分频器最后的讲解了,主要是要实现nume/deno倍的分频。对于nume/deno倍的分频,实质上就是要在nume个输入的时钟周期里,输出deno个脉冲。因此这里需要通过简单的数学运算来保证deno个脉冲的输出。nume,deno,quot和remd满足下面的式子:nume = quot*deno + remd,从这个式子中我们可以得到quot=nume/deno,即nume和den...原创 2019-03-25 22:48:08 · 5940 阅读 · 0 评论 -
N+0.5分频器的verilog实现
上篇文章中主要讲了一下奇数分频的实现,本篇文章说明一下N+0.5分频器如何设计。本篇文章以5.5分频为例进行说明。对于N+0.5分频,没有办法实占空比为50%,因此我们实现占空比为1/(N+0.5)的分频器,即在0.5个周期实现高电平即可。先说一种设计思路:通过两个分频时钟的与操作实现。两个分频时钟的占空比均为(N+1)/(2*N+1),对于5.5分频电路来讲,其占空比为6/11,不过这两个分...原创 2019-03-25 17:42:00 · 2733 阅读 · 1 评论 -
奇数分频器的verilog实现
分频器的设计对于微电子专业的学生来说应当是必须掌握的一基本知识点,对于偶数分频器的设计来说比较简单,那么对于奇数分频器以及小数分频器的该怎么去处理呢,本篇博文主要来谈谈奇数分频器的设计,小数分频器的设计等到下篇文再写。奇数分频器的实现可以分为两大类:占空比非50%的奇数分频器的实现 占空比为50%的奇数分频器的实现 对于占空比非50% 的奇数分频器的实现也是非常简单,对于3分频,可实现占...原创 2019-03-25 12:16:48 · 9315 阅读 · 0 评论 -
SPI总线介绍和verilog实现
这篇文章讲SPI总线,SPI是serial peripheral interface 的缩写,即串行外围设备接口。该接口是摩托罗拉公司提出的全双工同步通信的接口,该接口只有四根信号线,在芯片的管脚上只占用4根线,节约了芯片的管脚。这四根信号信如下:1、MOSI:主器件数据输出,从器件数据输入。2、MISO:主器件数据输入,从器件数据输出。3、SCLK:时钟线,有主器件控制。4、原创 2017-07-28 17:25:17 · 35494 阅读 · 16 评论 -
I2C总线协议的verilog实现
最近一直在学习各种接口,今天要讲的是I2C 总线。I2C是是一种简单的同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传原创 2017-07-27 18:34:24 · 17772 阅读 · 6 评论 -
异步fifo设计(四)
这篇文章主要是上篇文章的verilog代码实现,现在将代码贴上:module fifo #(parameter size_data=8, parameter size_addr=4)(input wr_inc,wr_clk,wr_rst, input rd_inc,rd_clk,rd_rst, input [size_data-1:0]wr_data, ou原创 2017-07-26 21:58:45 · 1620 阅读 · 0 评论 -
异步fifo的设计(三)
这篇文章主要讲述一下另一种异步fifo的设计方法,这种设计方法与上篇文章设计方法的区别在于不需要将读指针rd_ptr和写指针wr_ptr同步化。该论文中采取对读、写指针的异步比较并且异步判断出empty和full状态位的值。这里的读写指针还是采用格雷码计数器。由前面博客中讲到的格雷码计数器可知,有两种设计方法:一种设计只用到一组触发器,但是Grey-to-binary转换器,二进制增量器,Bi原创 2017-07-26 18:10:10 · 1846 阅读 · 1 评论 -
异步fifo的设计(二)
这篇文章接上一篇文章讲,首先看一下异步fifo设计的整体框图: 在该设计中会有6个小模块: 1、fifo.v这个模块是顶层模块; 2、fifomem.v:这个模块是fifo的内存缓冲器,该内存属于双端RAM 3、sync_r2w.v:这个模块是将读指针rd_ptr同步化到写的时钟域; 4、sync_w2r.v:这个模块是将写指针wr_ptr同步化到读的...原创 2017-07-25 18:23:33 · 4222 阅读 · 9 评论 -
异步fifo的设计(一)
上一篇文章讲的是同步fifo的设计,这篇文章主要讲一下异步fifo的设计。异步fifo和同步fifo的区别主要在于读写所用的时钟是否一致。异步fifo设计因为读写所用的时钟不一致因而设计比较复杂,会涉及到读指针和写指针的同步化。 异步fifo设计主要要解决两个问题: 1)如何产生fifo的读写指针 2)如何判断fifo的空满状态原创 2017-07-25 16:59:18 · 11981 阅读 · 1 评论 -
同步fifo设计
这篇文章主要介绍一下同步fifo用verilog实现。首先介绍一下fifo的相关知识。fifo是 first input first output 的缩写,即先进先出队列,fifo一般用作不同时钟域的缓冲器。fifo根据读和写的时钟是否为同一时钟分为同步fifo和异步fifo。异步fifo相比同步fifo来说,设计更加复杂一点。本文中先讲同步fifo的一种设计方法。下图是同步fifo的结构图:原创 2017-07-24 16:10:42 · 18795 阅读 · 11 评论 -
低功耗设计之RTL级降低功耗
最近在看《硬件架构的艺术》这本书,本篇博文也是来自书中的内容。随着工艺的进步,低功耗设计显得越来越重要了。作为一个数字前端设计师,我们就来看看如何在RTL级别减低功耗。实质上在大规模ASIC设计中,当RTL级设计完成的时候,整个系统至少80%的功耗就已经确定。后端流程没有办法修复微架构,而微架构和RTL代码风格对于动态和静态功耗有极大的影响。下面就说说在RTL级别可以从哪几个方面降低功耗。状态...原创 2019-03-26 11:08:16 · 5278 阅读 · 0 评论