• modesim测试语句


    0:    fork  Reg1 = 4'd2; Reg2 <= Reg1; i <= i + 1'b1; join
    0:    fork  Reg2 <= Reg1;Reg1 = 4'd2; i <= i + 1'b1; join
    0:    begin  Reg1 = 4'd2; Reg2 <= Reg1; i <= i + 1'b1; end
    0:    begin  Reg2 <= Reg1;Reg1 = 4'd2; i <= i + 1'b1; end

    均是按顺序执行?

    1. always @ ( 铭感区域 ) Reg1 <= ~Reg1;
    2. always @ ( * ) Reg1 = ~Reg1;
    3. always Reg1 <= ~Reg1;
    4. forever Reg1<= ~Reg1;

    3.4为验证语法,综合无法实现 

    过程控制:

    `timescale 1 ps/ 1 ps
    module exp09_simulation();
        
        /*********************/ // environment signal
        reg CLK, RSTn;
        
        initial                                                
            begin                                                      
            CLK = 1; RSTn = 0; #10; RSTn = 1; 
             end   
              always #5 CLK = ~CLK;     
          /********************/
    
        initial $monitor($time,,,"clk=%b i=%d j=%d",CLK, i, j);
    
        reg [2:0]i;
        reg [2:0]j;
        reg [3:0]Reg1;
        
        always @ ( posedge CLK or negedge RSTn )
            if( !RSTn ) 
                begin 
                    i <= 3'd0; 
                    Reg1 <= 4'd0; 
                end
            else 
                case( i )
                
                    0:
                    begin Reg1 <= 4'd1; i <= i + 1'b1; end
                    
                    1:
                    begin Reg1 <= 4'd2; i <= i + 1'b1; end
                    
                    2:
                    if( j == 3) i <= i + 1'b1;
                    
                    3:
                    begin Reg1 <= 4'd3; i <= i + 1'b1; end
                    
                endcase
        
        /********************/    
        
        reg [3:0]Reg2;
        
        always @ ( posedge CLK or negedge RSTn )
            if( !RSTn ) 
                begin 
                    j <= 3'd0; 
                    Reg2 <= 4'd0; 
                end
            else 
                case( j )
                
                    0:
                    if( i == 2 ) j <= j + 1'b1;
                    
                    1:
                    begin Reg2 <= 4'd1; j <= j + 1'b1; end
                    
                    2:
                    j <= j;
                    
                    3:
                    begin Reg2 <= 4'd2; j <= j + 1'b1; end    
                    
                endcase
        
        /********************/    
        
    endmodule
  • 相关阅读:
    PHP 输出true false
    code::blocks 注释快捷键
    GDAL 网址
    wine qq2011安装
    C++ ACM解题
    C++内存分配秘籍—new,malloc,GlobalAlloc详解(Zhuan)
    grub4dos初级教程-入门篇(Z)
    GDAL 编译(转)
    ubuntu双系统安装
    shapfile格式说明(转)
  • 原文地址:https://www.cnblogs.com/shaogang/p/4924814.html
Copyright © 2020-2023  润新知