数字电路设计
隔壁老余
笃志穷理
展开
-
序列信号发生器的三种实现方式
一、状态转移型的序列信号产生器的verilog HDL 设计用一个不断循环的状态机,循环产生序列信号001011。过程过于简单,我就不画状态图了。直接给出verilog HDL设计代码://有限状态机方式实现001011序列信号产生器 module sequence_signal_fsm(clk, rst_n, dout); ...转载 2020-09-04 21:48:31 · 8665 阅读 · 0 评论 -
三段式moore状态机实现典型交通灯
交通灯说明作为IC/FPGA应聘者,交通灯的verilog设计是必须掌握的基本技能。本文以典型交通灯为例,即在主干道和支路相交的十字路口,主干道具有较高优先级。首先,应该明确:【1】除红灯外,其他有效灯转为另个状态,中间都应设定黄灯作为缓冲,如:交通灯由绿灯转为红灯之前,应该有一段黄灯作为缓冲段,同理,如果拐弯等转为红灯,也应设定黄灯作为缓冲段;【2】主干道处于红灯时,支路应处于非红灯的几个状态的转换过程,支路处于红灯时,主干道同理;本文假定灯的状态包括:绿灯、黄灯、左拐,主干道绿灯亮40s,支路绿原创 2020-08-28 16:17:53 · 2897 阅读 · 0 评论 -
整数(奇偶)+分数分频器的verilog实现(大合集)
异步FIFO设计分频器实现一、50%占空比整数分频1.1 奇数分频器1.1.1 方法1:2N分频上下沿波形相异或1.1.2 方法2:N分频上下沿波形相或(输出初始态为0)1.2 偶数分频器二、非50%占空比分频三、小数(分数)分频3.1 N+0.5分频3.2 任意小数分频3.2.1 基于脉冲删除小数分频的算法描述3.2.2 脉冲删除小数分频的仿真分频器实现分频在数字设计中应用广泛,通常可以使用锁相环PLL和计数器实现。本文介绍的分频器是基于计数器实现的,由于使用的是DFF(D触发器),这实际上是行波计数原创 2020-07-31 12:24:44 · 5484 阅读 · 1 评论 -
可综合的异步fifo设计(二)
本篇是继可综合的async_fifo设计(一)的下半篇,给出了testbench代码、测试波形及几个注意事项。异步FIFO设计三、重难点四、仿真波形4.1 读写不同时进行的逻辑测试4.1.1 FIFO初始化功能验证4.1.2 FIFO空标志产生逻辑的验证4.1.4 FIFO写满保护功能的验证4.1.5 FIFO读空保护(不再读)功能的验证4.2 读写同时进行的逻辑测试4.2.1 写信号不做间隔控制4.2.2 写信号做间隔控制4.3 testbench代码三、重难点整个设计前后,提出以下几个问题://原创 2020-07-14 23:12:13 · 1167 阅读 · 2 评论 -
可综合的异步fifo设计(一)
异步FIFO设计一、基本概念二、设计思路2.1 设计前准备工作2.1.1 系统框图2.1.2 格雷码基础2.1.3 异步fifo工作流程举例2.2 RTL建模2.2.1 DPRAM建模2.2.2 WR_LOGIC建模2.2.3 RD_LOGIC建模2.2.4 PIPE模块建模2.2.5 格雷码处理模块建模一、基本概念1.异步fifo定义:跨读写时钟域的dpram(双口ram),fifo的读写时钟是相互独立的两个时钟,在各自时钟下实现fifo数据的读写功能。2.异步fifo用途:【1】跨时钟域的多bi原创 2020-07-14 11:01:54 · 3343 阅读 · 0 评论 -
深度卷积神经网络的数字实现——二维卷积的纯数字电路实现(二)
继第一篇卷积神经网络博客,这里继续更新后文。3 数字模块实现方案3.1 总体模块总体模块不做过多说明,详细请看各底层子模块的介绍。3.1.1 接口定义3.2 乘法器子模块3.2.1 模块功能实现两个8位有符号数之间的乘法,并输出一个16位的数据。对输出结果不进行截取或饱和处理,保证数据的完备性。3.2.2 接口定义3.2.3 实现方案本乘法器采用类似booth乘法器的算...原创 2019-11-14 23:05:51 · 2620 阅读 · 8 评论 -
深度卷积神经网络的数字实现——二维卷积的纯数字电路实现(一)
这是我2019.09这个月的项目任务。之前比较忙,现在以此文记录之。这实际上是第一届复旦微电子设计大赛数字赛道的参赛题目。借此题可以主动对深度学习,机器学习进行学习了解,由于是零基础,所以都是重零开始,对于初学者,文中难免有些生僻概念,部分会给出参考文献。此外,本次数字设计要求使用UVM平台进行设计的验证,故也可以借此机会入手UVM,毕竟对于数字IC设计来说,多掌握验证的知识,也是锦上添花。...原创 2019-10-31 22:17:25 · 2117 阅读 · 0 评论 -
Pid算法在闭环dc-dc中的应用
时间:2019.10.25至此,已经初步完成闭环pid算法应用的仿真。以下对本次工作作关键性笔记记录。PART1:项目简述第一, 项目内容与试验目的。项目内容:搭建硬件BUCK平台(开环,平台上包括栅极驱动电路),使用fpga完成数据采集和数据处理,设计一个fpga数控电源。本次设计,采用的adc型号为ad9200。试验目的:1】 在fpga开发平台上成功运行pid算法;2】 熟悉数...原创 2019-10-25 21:27:03 · 3789 阅读 · 1 评论 -
数字设计中的小数处理——在加法与乘法运算中
先提两个问题:【1】 数字设计中小数的处理【2】 加法器、乘法器中输出数据的位宽问题1、有符号数和无符号数的定义,最高位表示符号位,其他位为数据位。无符号数则没有符号位;2、有符号数和无符号数转化为10进制表示的时候唯一的区别就是最高位的权重不同,这里的负数的表示与3中的表示不相同,这里的每一个位都具有权值,只不过最高位(即符号位)也是参与到权值贡献中,且其表示的为负值;举例:如4bit...原创 2019-10-16 10:09:21 · 1801 阅读 · 1 评论 -
Verilog之非阻塞赋值(三)—— 赋值延后一个周期
总结:(一、二为一组,不延后;三、四为一组,延后1周期)其一,当在always块中的每一个条件分支中,仅有一条赋值语句(不管是阻塞与非阻塞),且要满足条件中的条件判断式不含有在本模块中定义并赋值的reg变量(采用非阻塞赋值)或者来自其他模块的非阻塞reg型信号,此时阻塞与非阻塞表现的结果是一样的,都是在时钟边沿瞬间完成的;理解非阻塞赋值分两个过程,RHS的计算为第一步,LHS的赋值为第二步,这...原创 2019-08-27 21:19:18 · 10165 阅读 · 11 评论 -
信号之建立时间和保持时间
这篇文章讨论的对象是数字设计或FPGA设计中一对重要概念——信号的建立时间和保持时间。最初考虑写这篇文章仅是因为在建模PCF851(一款AD-DA芯片)时,由于笔者没有考虑到这方面的时序要求,虽然整体时序框架正确,但细节部分(具体的信号时序,如上升沿到来前信号的到来时间)没有注意,最终导致花了很长时间才找到问题所在。而后,逐渐了解到时序约束、STA等概念,其实在面试相关工作岗位时,有关建立时间...原创 2019-07-04 16:53:47 · 13743 阅读 · 1 评论 -
数字电路设计中的竞争与冒险和时序同步always块的问题分析
本次讨论数字电路设计中的竞争与冒险以及一些不好理解的概念。PART1:竞争与冒险step1:基本认识在组合逻辑电路中,常常具有发生竞争现象的可能性,以及会带来冒险的后果。首先明确,一般情况下我们将逻辑门电路视为理想电路,即没有考虑延迟,而实际中,输入信号经过门电路获得输出,总是需要传输时间的,即门电路的传输延迟。所谓竞争:在组合电路中,某个变量(或信号)经过两条以上的路径到达...原创 2019-05-04 15:02:15 · 2307 阅读 · 0 评论