zoukankan      html  css  js  c++  java
  • Vector bit-select and part-select addressing verilog片选写法

    大端 m

    m[ a +: b ] == m[ (a+b-1) : a ]

    m[ a -: b ] == m[ a : (a-b+1) ]

    小端 n

    n[ a +: b ] == n[ a : (a+b-1) ]

    n[ a -: b ] == n[  (a-b+1) : a ]

    module top;
    `timescale 10ns/1ns
    
    reg [31:0] big_vect = 'h12345678;
    reg [0:31] little_vect = 'h87654321;
    reg [63:0] dword;
    
    integer sel;
    initial 
    begin
     #100
     
     $display("1. big_vect = 0x%h, big_vect[0 +:8] is %h, and big_vect[7 -:8] is %h ", big_vect, big_vect[0 +:8], big_vect[7 -:8] );
     
    if (   big_vect[0  +:8] ==    big_vect[7  : 0])begin  $display("   big_vect[0  +:8] ==    big_vect[7  : 0]"); end 
    if (little_vect[0  +:8] == little_vect[0  : 7])begin  $display("little_vect[0  +:8] == little_vect[0  : 7]"); end
    if (   big_vect[15 -:8] ==    big_vect[15 : 8])begin  $display("   big_vect[15 -:8] ==    big_vect[15 : 8]"); end
    if (little_vect[15 -:8] == little_vect[8  :15])begin  $display("little_vect[15 -:8] == little_vect[8  :15]"); end
    if (sel >0 && sel < 8) dword[8*sel +:8] = big_vect[7:0]; // Replace the byte selected.
    
    // 注意: big_vect[0:7] 引用错误,同理little_vect[15:8] 也是引用错误。
    // if (   big_vect[0  +:8] ==    big_vect[0  : 7])begin  end  
    
    end
    
    endmodule


    输出
    # 1. big_vect = 0x12345678, big_vect[0 +:8] is 78, and big_vect[7 -:8] is 78 # big_vect[0 +:8] == big_vect[7 : 0] # little_vect[0 +:8] == little_vect[0 : 7] # big_vect[15 -:8] == big_vect[15 : 8] # little_vect[15 -:8] == little_vect[8 :15]
  • 相关阅读:
    Axure RP
    简单实现SSO
    php Header 函数使用
    使用 PHP SOAP 来创建一个简单的 Web Service。
    简单 php 代码跟踪调试实现
    js打开新窗口,打开新窗口屏蔽工具栏和地址栏,窗口按规定大小显示
    PHP 面向切面编程
    Shell 简单构建 Node web服务器
    thinkphp 迁移数据库 -Phinx 简单说明文档
    magento 2 method config
  • 原文地址:https://www.cnblogs.com/jiang-ic/p/9000960.html
Copyright © 2011-2022 走看看