Verilog设计基础、经验与经典电路
文章平均质量分 86
包括Verilog语法,基本电路,以及具体问题的解决办法例如补码定点小数计算问题,分频器,等等
king阿金
电子与通信工程硕士,2021年毕业。数字芯片设计验证,无线通信方向,
展开
-
8B/10B编码原理详解、Verilog实现及在JESD204B中的应用
1.8B/10B介绍及应用8B/10B编码的目的是防止串行的数据出现长时间的连0连1,因为这会使得信号直流电压不稳定,换句话说就是 keep DC-balance;另一个目的是提供给接收端‘清晰的边界’:接收端能在串行数据流中确定某个10B的起始边界;而且接收端还能判断数据是否出错,能检错不能纠错。值得一提的是,除了检错外,还有上述前2个功能的是扰码:scramble,扰码没有冗余比特出现,基本原理是使用线性反馈移位寄存器LFSR实现,这里不做详细介绍哈。8B/10B编码广泛应用于串行数据总线原创 2020-07-26 22:37:20 · 13362 阅读 · 6 评论 -
IIC协议原理以及主机、从机Verilog实现
1.原理以及主机实现原理可参考【接口时序】6、IIC总线的原理与Verilog实现,原理讲的很详细,其中也给出了IIC主机的实现思路以及Verilog,包括写数据与读数据的过程,分为两个module。但没有给出从机的Verilog实现,因此我按照其思路设计了相应的从机且为一个module内实现主机的写数据与读数据请求,另外我也将主机的写数据与读数据的合并为一个module。iic_mast...原创 2020-03-21 17:46:46 · 8413 阅读 · 28 评论 -
跨时钟域信号处理(一)--Verilog单比特信号
网上有很多的跨时钟域信号处理的相关文章,主要分为三种:单比特信号--打两拍或打更多拍(使用触发器); 多比特信号--异步双口块RAM或者异步FIFO; 格雷码转换。这次就主要说第1种情况,适用于单比特信号。1.应用场景从时钟域1的单比特信号DATA需要传到时钟域2下,在2下就可以使用寄存器打拍的方式将DATA信号同步到自己的时钟域下。为什么要打拍?因为要解决亚稳态的问题。...原创 2019-03-16 16:19:31 · 15955 阅读 · 13 评论 -
跨时钟域信号处理(二)——异步fifo的Verilog实现(附同步fifo的实现)
需要回答几个问题:1.什么是异步FIFO,异步FIFO有什么功能?2.异步FIFO的写满与读空信号如何正确产生,利用了什么技巧?3.在产生写满与读空信号时需要进行跨时钟域,设计是如何处理的?4.解释跨时钟域产生的写满与读空信号其实是比较保守的:满而非满,空而非空。上诉问题的答案在异步fifo的设计(FPGA)里面讲的很清楚。Verilog设计:比较精简的代码建议看:异步FI...原创 2019-11-03 16:24:25 · 7409 阅读 · 0 评论 -
FPGA芯片的资源组成介绍——以Xilinx的7系列为例
目录1.主要的资源是 configurable logic block (CLB)与布线资源2.存储资源BlockRAM :BRAM3.运算单元DSP48E14.IO Banks :IO Bs5.Mixed-Mode Clock Manager:MMCM和PLL6.高速串行收发器 GTX/GTH/GTY Transceiver等7.PCI-E模块例子:1.主要的...原创 2019-10-30 20:57:34 · 6283 阅读 · 0 评论 -
Verilog实现偶数、奇数、半整数、分数(小数)分频,画电路图用D触发器实现分频
目录1.偶数分频2.奇数分频3.半整数分频4.分数(小数)分频参考资料:通常我们说对原时钟进行N分频,即分频后的时钟的一个周期是原时钟周期的N倍。N可以为偶数、奇数、半整数、分数(小数)。1.偶数分频Verilog:N为偶数,使用一个计数器循环0-(N-1)进行计数,在N/2-1与N-1分别将输出取反,即完成了N分频。若果采用D触发器画出分频器,单个D触发器的反...原创 2019-10-30 11:19:43 · 6194 阅读 · 4 评论 -
COMS原理及门电路设计
目录1.N/P MOS管的物理结构图2.N/P MOS管的工作原理3.N/P MOS管的抽象模型4.典型门电路设计1.cmos反相器设计2.coms与非门与或非门设计3.与或非门、或与非门设计4.异或、同或设计5.设计方法总结参考资料关于CMOS进一步的组合逻辑与时序逻辑设计请参考:CMOS的宽/长比、传输门与三态门、锁存器与触发器、简单版图、竞争与...原创 2019-04-07 18:48:59 · 11394 阅读 · 4 评论 -
Verilog自动例化模块端口的C++程序
因为要频繁例化模块,而手写很麻烦,所以用C++写了个简单的程序,自动生成例化模块端口。2019.7.23版本1.02019.8.27版本2.0 升级内容:重构程序算法,对输入格式更宽容1.加入带有parameter的,输出忽略parameter2.任意一行允许有空格,包括位宽与端口名、端口名之后及逗号之后有无空格都可以3.加入自动定义输相同的出端口名,并填充输出端口的括号4.允许有re...原创 2019-07-23 18:57:42 · 1222 阅读 · 0 评论 -
补码的意义及Verilog中的补码定点小数计算
目录1.原码,反码,补码2.补码的意义3.Verilog中的补码运算与定点小数3.1补码定点小数的加减运算3.2补码定点小数的乘除运算3.3对运算的结果近似截取一定位宽3.4实际应用中的例子1.原码,反码,补码原码:n位的二进制数,最高位为符号位,正数为0,负数为1。剩下的n-1位表示该数的绝对值反码:原码的符号位不变,正数不变,负数按位取反补码:反码正...原创 2018-11-22 17:57:16 · 4236 阅读 · 0 评论 -
数字逻辑代数基础——基本定理、公式与卡诺图化简法、格雷码、LSFR等
复习一下数字电路,下次就省事直接看自己写的了。目录1.常用门电路图2.逻辑代数的基本定理----化简时比较好用3.化简逻辑函数时几个关键的公式(A'代表A的非)4.格雷码与二进制的转换5.线性反馈移位寄存器LSFR1.常用门电路图 2.逻辑代数的基本定理----化简时比较好用反演定理:对于任意一个逻辑...原创 2019-10-04 23:13:27 · 6023 阅读 · 1 评论 -
Verilog实现状态机与状态机经典示例——序列检测器、自动饮料售卖机
状态机在Verilog设计中普遍采用,设计状态机的方法是先利用表格写出状态,然后进行状态化简,且建议使用mealy状态机,这样使得设计出的状态机精简。原创 2019-10-19 22:57:39 · 7738 阅读 · 3 评论