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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    module tb_fulladder;/ O! H7 h  I7 j% T6 k, I
    wire SUM,C_OUT;
    ! L% X, x# s* x1 p6 Breg A,B,C_IN;
    ) w6 M/ W) s+ t* mfulladder m1(.sum(SUM),5 h6 ^, B: p; ?7 A! c* Y9 {# J
    .c_out(C_OUT),
    0 |# W0 @, W5 v: v) Q" Z6 ^.a(A),. b  ]1 Z! O+ b6 _+ L$ S$ w
    .b(B),# f0 Z2 W3 C) ^& l: @
    .c_in(C_IN));
    2 `' B9 p% m  C. w% Einitial
    / k" R4 m+ K; c/ Ibegin
    ( A% r$ T- @: {  D6 IA=1'd0;B=1'd0;C_IN=1'd0;
    / M" r; d' c6 H5 t, O0 ^$ O5 H#5 A=1'd1;B=1'd1;C_IN=1'd1;7 z7 M4 e+ j% L, s) I) v
    #5 A=1'd0;B=1'd1;C_IN=1'd1;
    ' b5 f. Y2 Q' I- l4 E#5 A=1'd1;B=1'd0;C_IN=1'd0;
    ( X+ [  S- N' T. S3 p1 r#5 A=1'd1;B=1'd1;C_IN=1'd0;, W; e* k/ _9 D1 k6 H- m

    ) k1 Z- |0 \2 H, j1 [5 M4 aend
    9 Y0 B2 D3 u0 U7 b) g, k8 gendmodule
    : I/ h3 @- h" y  @6 H0 z. a这为什么用 initial
    ( h2 |4 p0 D$ ?# \! v. Z% W0 L4 Y
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-11-22 14:59 | 只看该作者
    verilog描述的是硬件电路。所以initial语句只能用在仿真时测试平台testbench中。9 v1 S8 h' j+ `4 w
    可以使用状态机来描述。" @" _  A& w0 X) W( [
    具体步骤如下:4 m: w5 i" j4 @- m' V, X. A
    1.根据功能画出状态转换图
    3 h& a$ G. y6 P2 x' N1 Y0 |6 h2.参考状态机写法,将你的图用verilog实现3 c  X9 I% C9 y% k; Y* ]8 y
    3.按要求编写仿真平台testbench
    2 n; w3 Z8 l  B8 U1 U% u4.状态机和测试平台编译通过后使用quartus或ISE调用modelsim仿真" O' v7 N8 D! l0 H
    5.仿真通过,设计完成。
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2022-11-22 15:09 | 只看该作者
    initial块内的语句从上到下只执行一次 不符合电路的运行模式 所以是不可综合的 它一般用来仿真时赋值;你这个代码里面的initial就是用来给输入赋值测试你这个全加器的。。
    : y% I# y7 h! d2 Balways块内的语句是反复执行的 一般写成类似于 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:09, N4 ~! Q) s. g) O8 D' d( y: @% X
    initial块内的语句从上到下只执行一次 不符合电路的运行模式 所以是不可综合的 它一般用来仿真时赋值;你这 ...

    8 h: N% F) q* {/ d& V0 G请问initial既然只执行一次,那还要了干嘛?, q! ?% @7 \9 ^1 }0 d
  • 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-5 12:34 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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