
硬件描述语言
cl2006ky
这个作者很懒,什么都没留下…
展开
-
阻塞赋值和非阻塞赋值
#1: 当为时序逻辑建模,使用“非阻塞赋值”。#2: 当为锁存器(latch)建模,使用“非阻塞赋值”。#3: 当用always块为组合逻辑建模,使用“阻塞赋值”#4: 当在同一个always块里面既为组合逻辑又为时序逻辑建模,使用“非阻塞赋值”。#5: 不要在同一个always块里面混合使用“阻塞赋值”和“非阻塞赋值”。#6: 不要在两个或两个以上always块里面对同一个变量进行赋值。#7:原创 2014-12-19 11:12:28 · 420 阅读 · 0 评论 -
Verilog 分频器
现来说说分频原理吧,原理通了,什么都好办了。 1. 偶数倍(2N)分频 使用一模N计数器模块即可实现,即每当模N计数器上升沿从0开始计数至N-1时,输出时钟进行翻转,同时给计数器一复位信号使之从0开始重新计数,以此循环即可。偶数倍分频原理示意图见图1。 2. 奇数倍(2N+1)分频 (1)占空比为X/(2N+1)或(2N+1-X)/(2N+1)分频,用模(2N+1)计数器模块可以实现原创 2014-12-19 11:12:31 · 1104 阅读 · 0 评论 -
VERILOG编码原则
规则 #1: 建立时序逻辑模型时,采用非阻塞赋值语句。规则 #2: 建立latch模型时,采用非阻塞赋值语句。规则 #3: 在always块中建立组合逻辑模型时,采用阻塞赋值语句。规则 #4: 在一个always块中同时有组合和时序逻辑时时,采用非阻塞赋值语句。规则 #5: 不要在一个always块中同时采用阻塞和非阻塞赋值语句。规则 #6: 同一个变量不要在多个always块中赋值。规则 #7:原创 2014-12-19 11:12:17 · 775 阅读 · 0 评论 -
verilog inout 用法
如果data_inout不是高阻态,则用作输出,无法做输入的,否则两者岂不有了冲突?inout端口信号做输入时,观察例子中的输出data_out_t就应该是高阻态的. 见许多问这个问题的,总结一下大家的贴子,希望能对大家有点用处,如果有不对的地方,欢迎指出.芯片外部引脚很多都使用inout 类型的,为的是节省管腿。就是一个端口同时做输入和输出。 inout在具体实现上一般用三态门来实现。三态原创 2014-12-19 11:12:25 · 3397 阅读 · 0 评论