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

在verilog里always和 initial的区别是什么?

[复制链接]
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    module tb_fulladder;1 r  [0 M4 A/ i* t2 s" Q% n! y
    wire SUM,C_OUT;* m' s6 C9 S: L* P* _; }1 o
    reg A,B,C_IN;' P7 W6 X/ ]# A! v
    fulladder m1(.sum(SUM),2 ]. u; M3 |+ W: Q4 R
    .c_out(C_OUT),+ e! [  F/ o" F
    .a(A),: a3 r# b( I. M# w
    .b(B),0 e3 j/ t5 @+ ~$ F
    .c_in(C_IN));
    + L% C( S9 L7 p7 h, `; pinitial" `- r9 N5 d8 d! o7 f5 Y8 s; f
    begin
    , V" n4 S) b4 jA=1'd0;B=1'd0;C_IN=1'd0;
    6 Y' u4 b, }+ }  l#5 A=1'd1;B=1'd1;C_IN=1'd1;8 |& N: V0 X5 [# `/ r& \
    #5 A=1'd0;B=1'd1;C_IN=1'd1;! ~5 ~* @! V3 e  T
    #5 A=1'd1;B=1'd0;C_IN=1'd0;' N: z/ o% V5 G
    #5 A=1'd1;B=1'd1;C_IN=1'd0;5 q. N! n- R1 g

    - h0 h; U) y" y( h. Bend9 f: {0 V# y2 m8 U" Q
    endmodule
    6 b% W+ l) ?: P( R9 z这为什么用 initial
      n7 ~- F- H0 ^; p, R8 s) [
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-11-22 14:59 | 只看该作者
    verilog描述的是硬件电路。所以initial语句只能用在仿真时测试平台testbench中。
    & K2 P8 s( Y( R$ d+ `% C可以使用状态机来描述。# ~. J: R9 Z8 r& b4 ~
    具体步骤如下:0 Z% q. q' [# Y; O1 w. o
    1.根据功能画出状态转换图
    9 o1 h; W. U' A2.参考状态机写法,将你的图用verilog实现3 g6 @  h7 G7 A' R- ^  H
    3.按要求编写仿真平台testbench
    , S( j3 p- U- e3 \4 l+ ^/ ^  E4.状态机和测试平台编译通过后使用quartus或ISE调用modelsim仿真
    ' |4 F4 k4 y0 R# D5.仿真通过,设计完成。
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2022-11-22 15:09 | 只看该作者
    initial块内的语句从上到下只执行一次 不符合电路的运行模式 所以是不可综合的 它一般用来仿真时赋值;你这个代码里面的initial就是用来给输入赋值测试你这个全加器的。。
    6 z7 @7 a' r; Y- v2 `: }' S( {always块内的语句是反复执行的 一般写成类似于 always @ (posedge clock or negedge reset) 或 always @ (*)的形式写成时序或组合逻辑

    点评

    请问initial既然只执行一次,那还要了干嘛?  详情 回复 发表于 2022-11-22 15:27
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4#
     楼主| 发表于 2022-11-22 15:27 | 只看该作者
    R_myself 发表于 2022-11-22 15:095 Z6 v1 f% ?# j; U
    initial块内的语句从上到下只执行一次 不符合电路的运行模式 所以是不可综合的 它一般用来仿真时赋值;你这 ...
    ( [- {0 P% J9 E7 `( [
    请问initial既然只执行一次,那还要了干嘛?
    # @' ]/ Z6 _, w: `  t  a
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
    发表于 2022-11-22 15:29 | 只看该作者
    仿真 初始化各种数据啊 比如说 你这个程序 每隔五个时钟 改变一下输入 测试输出是否正确 基本上就是这么用的
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-31 07:17 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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