找回密码
 注册
关于网站域名变更的通知
查看: 271|回复: 2
打印 上一主题 下一主题

Verilog小提示

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-11-2 10:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
Verilog小提示
% E( d2 a5 d$ F" h& F  f* B7 a编程中的问题:; N7 b5 N8 s9 G9 K
1)Always模块中,左边的变量都是reg型的
; d; X3 x1 b9 D# {3 }+ G8 q5 I6 }2)不可以在always模块中调用,组合逻辑9 _! P* @  F, q& _+ s, D% `# C' j
3)相应的||,|和or的用法要注意,第一个是逻辑判断,判断相应的事件,而第二个则是位运算,单个bit分别进行运算,而第三个是在@的条件中加入的,表示两个都有的,相应的在写程序的时候要注意;
/ ?/ N& A, U9 x7 j, O( b9 j4)Testbed.v中一般除了clk,其他全部都是wire型的,而clk是reg型的。' l9 ~" W& \# G/ D* _+ o9 @* ^: Z
5)每一个always procedural block中只能在左侧存在一个变量,即a <=b;在一个always block中a不能变,但b可以变;3 }1 E: ?9 O+ h8 {: z/ `. |4 X, F; |
6)由于最后会在所有的<=后面加上#`RD,所以最终不会出现计时器与相应的clk,出现重叠的情况。* J2 q% c) o1 j) p4 c% E1 p
7)always @( posedge clk ) begin1 z" W* j. o! w! y, _
if ( data2in )* Y+ C8 S" V& E% s# b7 @
ina1 <= di;* ]& A8 w5 [8 V( i8 T1 J9 t
end9 X1 I9 o7 o/ p2 f; r
  和相应的count出现联系的时候可以这样来做。
, r1 `- p2 ]4 h8)初始化的思想要有,在一些比较器的初始状况的时候可以先赋给初始值,初始值赋给的时候一般是最小或者最大之类的,根据情况来确定,另外时序电路是与时钟密切相关的,要理解相应的位置的时序产生的什么样子的变化,确定好之后然后就可以定义相应的触发条件,来进行触发;然后就是要注意组合逻辑和时序逻辑要分开处理,要明白他们之间的区别。+ ^* c; E4 c0 N9 e+ a) m% E8 {
组合逻辑是每个周期不变化的部分,而时序电路或是有相应的触发条件,或是随时钟变化而变化。7 N5 B5 B9 H* F# L
相对来说,组合逻辑是赋值的思想;一直赋值然后就可以变化;而时序电路则是要先将组合时序等分开,然后再说其他的,目前阶段的时序电路代码不会有很大的代码量。
# C8 E0 [" H" t, T, Y& z9) 具体架构还是要问清楚模块划分,组合时序逻辑划分,看了具体的架构不一定能确定理解,看了代码才能清楚。分组的思想,产生同样的结果的条件柔和在一起构成组合逻辑。& [) Z2 K5 J0 B% p4 U+ l- W. t
10) 常用的信号比如说en,clear,set等信号由很多逻辑组合而成,要分清楚;另外,电路逻辑先架构然后再代码的顺序可以减少debug的时间,虽然要花费画架构图的时间,但实际上会减少整体的时间) ]) {" B! l- w1 q9 \9 t# ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-29 15:17 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表