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

深圳万户网络科技有限公司seo快速排名的方法

深圳万户网络科技有限公司,seo快速排名的方法,网站后台地址修改,聊城专业网站建设公司1、内建数据类型 verilog有两种基本的数据类型:变量和线网,他们各自都可以有四种取值:0 1 z x; RTL代码使用 变量 来存放组合和时序值;变量可以是单bit或者是多bit的无符号数 reg [7:0] m, 32bit的有符号…

1、内建数据类型

        verilog有两种基本的数据类型:变量和线网,他们各自都可以有四种取值:0 1 z x;

RTL代码使用 变量 来存放组合和时序值;变量可以是单bit或者是多bit的无符号数  reg [7:0] m,

32bit的有符号数 integer ,64bit的无符号数 time 或者是 浮点数 real.若干变量可以被一起放在定宽数组里,所有的存储都是静态的,意味着所有变量在tb的时候都是存活的。

        1.1、 logic类型

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2025/03/20 17:24:56
// Design Name: 
// Module Name: logic_data_type
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//module logic_data_type(input   logic   rst_h);parameter   CYCLE = 20  ;logic   q,q_l,d,clk,rst_l   ;initialbeginclk = 1'b0  ;forever #(CYCLE/2)beginclk = ~clk  ;endendassign rst_l    =   ~rst_h  ;not m1(q_l,q)  ;endmodule

        1.2、        双状态数据类型

        相比于四状态数据类型(0,1,x,z),SV 引入的双状态数据类型有利于提高仿真器的性能并减少内存。

        双状态数据类型:可以用  unsigned  约束成无符号数

                        bit                :无符号,width = 1 ;

                        byte             :有符号整数, width = 8 ;

                        shortint        :有符号整数, width = 16 ;

                        int                :有符号整数,width = 32  ;

                        longint          :有符号整数, width = 64 ;

                        real               :双精度浮点

        四状态数据类型:

                        integer          : 有符号整数, width = 32      ;

                        time              :无符号整数, width = 64        ;

         对 四状态值 的检查

if( $isunknown( iport ) == 1 )$display( " @%0t : four state value detected on iport  %b ",$time,iport )    ;

2、定宽数组 

        相比于 veilog 支持的数据选择,SV提供更多的数据类型。

        2.1、        定宽数组的声明和初始化

        定宽数组的声明:          

int    one[0:15]  ;    //都表示 16个 int 的数组  
int    two[16]    ;

        多维数组的声明:

int    one[0:7][0:3]    ;    //两种声明方式都可以
int    two[8][4]        ;

         非合并数据的声明:表示三个temp_one 数组,每个数组有8个数

bit[7:0]    temp_one[3]    ;

         常量数组:

int    one[0:3]    = '{ 0,1,2,3 }    ;   
int    two[0:4]    = '{ 4,5,default:1 } ;//two 为 { 4,5,1,1,1 }

        2.2、        对数组的基本操作

 在数组中使用 for 和 foreach 关键词。

initial
beginbit[31:0]    src[5]    ;bit[31:0]    dst[5]    ;for( int i = 0 ; i < $size(src) ;i++ )src[i]    =    i    ;foreach( dst[j] )dst[j] = src[j]*2    ;end

多维数组的初始化

int    md[2][3]    =    '{ '{ 2,3,4 } , '{ 5,6,7 } }    ;initial
begin$display(" Initial value: ")    ;foreach( md[i,j] )$display(" md[%d][%d] = %0d ",i,j,md[i][j]    )    ;$display(" new value ")    ;md = '{ '{ 9,8,7 } ,'{ 3{32'd5} } }    ;foreach( md[i,j] )$display(" md[%d][%d] = %0d ",i,j,md[i][j]    )    ;        end

        多维数组的打印

initial
beginbyte    twoD[4][6]    ;foreach( twoD[i,j] )twoD[i][j]    =    i*10 + j ;foreach( twoD[i] )beginforeach( twoD[ ,j] )begin$write(" %3d  " , twoD[i][j] )    ;endend    end

        数组的复制和比较

initial
beginbit[31:0]    src[5] = '{ 0,1,2,3,4 }   ;bit[31:0]    dst[5] = '{ 5,4,3,2,1 }   ;if( src == dst )begin$display(" src == dst ")    ;endelsebegin$display(" src != dst ")    ;enddst = src    ;src[0]    =    5    ;$display(" src %s dst ",(src == dst)?"==":"!=" )    ;$display(" src[1:4] %s dst[1:4] ",(src[1:4] == dst[1:4] )?"==":"!="    )    ;end

        同时使用位下标和数组下标

 verilog-1995 不支持 同时使用 数组下标和位下标,verilog-2001取消了这个限制。

initial
beginbit[31:0]    src[5]    =    '{ 5{5} }    ;$displayb(   src[0]     ,,src[0][0]  ,,src[0][2:1]                                   );end

        合并数组   :     等待数组的变化的时候,必须使用合并数组

bit [3:0} [7:0]    data    ;    //4 个 8bit的data的数组

3、动态数组  

            使用动态数组

int    dyn[] , d2[]    ;    //动态数组声明initial
begindyn    =    new[5]    ;    //给dyn分配 5 个空间foreach( dyn[j] )begindyn[j] = j ;endd2 = dyn    ;d2[5]    =    0    ;$display(dyn[0],d2[0]);dyn = new[20](dyn)    ;    //为dyn分解 20 个空间 并复制 原来的数据dyn = new[100]    ;dyn.delete()    ;    // 删除所有元素    end

        使用动态数组保存元素数量不一定的list

bit [7:0]    mask[]    =    '{ 8'b0000_0000 , 8'b0000_0001    ,8'b0000_0010 , 8'b0000_0011    ,    8'b0000_0100 , 8'b0000_0111    ,8'b0000_1000 , 8'b0000_1111    ,8'b0001_0000 , 8'b0001_1111                       };

         可以把一个 顶宽数据 复制到 动态数据,SV会为动态数组分配空间(new[ ])并复制数组。

 4、队列

         队列的操作:队列的常量不用 ' 。


module  demo_2_9();
int j = 1    ,q2[$]    =    { 3,4 }    ,    //队列的声明q[$]     =    { 0,2,5 }  ;initialbeginq.insert(1,j)    ;    //插入元素
//        q.insert(2,q2)   ;q.delete(1)      ;    //删除第一个元素q.push_front( 6 )    ;    //在q的前面插入 6 q.push_back( 8 )     ;    //在q的后面插入 8 q.pop_back           ;    //删除最后一个元素并返回新的长度q.pop_front          ;    //删除第一个元素并返回旧的的长度foreach( q[i] )begin$display( q[i] )    ;endq.delete        ;    //删除q这个数组end
endmodule

队列操作

    int j   =   1       ,q2[$]   =   { 3,4 } ,q[$]    =   { 0,2,5 }   ;int len_q = 0       ;initialbeginq = { q[0],j,q[1:$] }       ;q = { q[0:2],q2,q[3:$] }    ;q = { q[0],q[2:$] }         ;q   = { 6,q }   ;len_q   = q[$]      ;//将q的长度复制给 jq   = q[0:$-1]  ;//删除队列最后一个数q   = { q,8 }   ;//在q之后插入 8j   = q[0]      ;q   = q[1:$]    ;q   = {}        ;//删除队列end

 

 

 

http://www.dtcms.com/wzjs/508830.html

相关文章:

  • 如何批量做网站安徽网站开发哪家好
  • win7云主机怎么做网站搜索引擎推广方法
  • 江津网站建设爱上链外链购买平台
  • java可以做网站吗百度信息流广告怎么收费
  • 福州做网站外包域名停靠网页app推广大全
  • 外贸推广网站有哪些佛山seo培训机构
  • 做微网站优化技术
  • 电子商务与网站建设产品网络推广的方法
  • 什么网站排名做的最好网络赚钱推广
  • 做网站如何上传apk网络营销课程报告
  • 怎么用ip地址做网站怎么去做推广
  • 个人主题网站设计aso是什么意思
  • 建设银行新加坡招聘网站域名注册网
  • 开发网站怎样注册公司市场营销策划方案范文
  • vs2008如何新建网站深圳网站建设专业乐云seo
  • 寿宁县建设局网站网站关键词如何优化
  • 沈阳工伤保险做实网站预测2025年网络营销的发展
  • 上海做网站 公司排名怎么进行网站推广
  • 昆山装饰公司网站建设百度seo推广怎么做
  • 做win精简系统的网站广告seo是什么意思
  • 临沂专业做网站北京seo怎么优化
  • 中国城市新闻网站联盟网站快速排名上
  • 织梦网站怎么做伪静态页面手机百度一下百度
  • 域名指向其他网站怎么营销一个产品
  • 腾讯网站建设公司怎么自己做一个小程序
  • 怎样注册自己网站seo优化课程
  • 网站开发语言选择深圳今日重大新闻
  • 哪个做简历的网站比较好今日头条国际军事新闻
  • 怎么做外贸网站推广福州seo代理计费
  • 网站专题建设北京seo编辑