当前位置: 首页 > news >正文

实用建模技术

1、过程连续赋值

        1.  assign 和 deassign:该结构目前被认为是很糟糕的编码风格,建议禁用。

        deassign 表示一直保持被赋予的值,直到下一次改变。

module    edge_dff
            (
                input    wire    d      ,
                input    wire    clk    ,
                input    wire    rst    ,
                    
                output   reg     q      ,
                output   reg     qbar
            );

    always@(posedge clk)
    begin
        q     =    d     ;
        qbar  =    ~d    ;
    end

    always@(rst)
    begin
        if( rst == 1'b1 )
        begin
            assign    q       =    1'b0    ;
            assign    qbar    =    1'b1    ;
        end
        else
        begin
            deassign    q       ;
            deassign    qbar    ;
        end
    end

endmodule

         2.        force     release:  该结构目前被认为是很糟糕的编码风格,建议禁用。应当只出现在tb中。

module    tb();
    
    ......
    
    edge_dff(q,qbar,d,clk,rst)    ;
    ......

    initial
    begin
        #50
            force    
                dff.q    =    1'b1    ;
                #50
            release  dff.q    ;
    end
    

endmodule

     

2、改写参数

        defparam改写

module    hello_world
           (
                .......
            );

    parameter    id_num    =    0    ;

endmodule


module top
        (
            ......
        );

    defparam    w1.id_num    =    1    ;
    defparam    w2.id_num    =    2    ;

    hello_world    w1();
    hello_world    w2();

endmodule

3、条件编译和执行

        条件编译

//demo  1
`ifdef    TEST
    module    test1(......);
        ......
    endmodule
`else
    module    test2(......);
        ......
    endmodule
`endif

//demo 2
module    top    ;

    bus_master    b1();
    `ifdef   ADD_B2
         bus_master    b2();
    `elseif  ADD_B3
         bus_master    b3();
    `else
         bus_master    b4();
    `endif

endmodule

条件执行

         

4、时间尺度

        一般用于tb

`timescale    100ns/1ns    
//100ns 表示 单位时间
//1ns 表示 时间精度

 

5、常用系统任务

        1.        文件输出

                        打开文件: fopen

integer    handl    ;
handl    =    $fopen("demo1.out")    ;

        2、        写文件:fdisplay  fmonitor  fwrite   fstrobe

        

integer    decs1    ;

initial
begin
    decs1 = 1'b1    ;
    $fdisplay(decs1,"display 1")    ;
end

         

        3、        关闭文件:fclose

$fclose(handle1)    ;

        4、        显示层次:

module    M();

    initial
    begin
        $display("display in %m")    ;
    end

endmodule

module    top();

    M    m1();
    M    m2();
    M    m3();

endmodule

        5、        选通显示:strobe

                strobe语句可以确保同一时刻执行完之后才显示数据

        6、        随机数生成

                $random           ;        随机数生成器 是带符号的。

                {$random}         ;        加{}之后,为正数。

        7、        存储器初始化

                $readmemb("<file_name>",<memory_name>)        ;

module tb();

    reg [7:0]    memory [0:127]    ;

    integer i ;

    initial
    beign
          $readmemb("init.dat",memory)    ;
    end

endmodule

         8、        值变转储文件

        值变转储文件(Value conversion dump :VCD)是一个ASCLL文件,包含仿真时间,范围与信号的定义以及仿真过程中的信号变化。

        

initial
begin
    $dumpfile("myfile.dmp")    ;// 仿真信息存储到myfile.dmp
end

initial
begin
    $dumpvars           ;    //没有说明指定变量的范围,代表所有信号
    $dumpvars(1,top)    ;    //转储top中的信号,1表示转储top下的第一层
end

initial
begin
    $dumpon    ;    //启动转储
    #100000
    $dumpoff   ;    //停止转储
end

initial
begin
    $dumpall    ;    //生成一个检查点,转储所以VCD变量的当前值
end

 

                

         

相关文章:

  • 题解:洛谷 AT_dp_c Vacation
  • 软件测试的基础入门(二)
  • 【2025】基于Python+Django的酒店民宿预订管理系统(源码+调试+答疑+学习资料)
  • 【AI】基于扩散方案的大语言模型研究报告
  • 2025 Linux系统安装docker后安装docker-compose
  • 玩转ChatGPT:GPT 深入研究功能
  • LVGL开发说明
  • 深度生成模型(五)——生成对抗网络 GAN
  • 3月8日星期六今日早报简报微语报早读
  • mpirun指令使用
  • 【OpenCV】005、查看图像的形状(图像高度、宽度、通道数)shape()函数,img.shape[0]、[1]、[2]
  • vulnhub靶场之【digitalworld.local系列】的snakeoil靶机
  • PPT 小黑第32套
  • Cyborg Hawk Linux自学
  • 护网中shiro常问的问题
  • 阿里云操作系统(AliOS)
  • C#控制台应用程序学习——3.8
  • Java Spring MVC (2)
  • Lab17_ Blind SQL injection with out-of-band data exfiltration
  • 【爬虫】开篇词
  • 广州建设网站下载/cilimao磁力猫在线搜索
  • 手机网站的静态页面/深圳全网信息流推广公司
  • 网站怎么做分页/什么是交换链接
  • 手机端网站关键词排名/南京百度提升优化
  • 如何做网站ip跳转/百度seo排名优化排行
  • 网络推广网站排名/域名检测工具