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

淄博便宜网站设微信公众号 做不了微网站

淄博便宜网站设,微信公众号 做不了微网站,淘宝网站可以做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/550256.html

相关文章:

  • 安徽响应式网站推荐扫描网站漏洞的软件
  • 建立html网站wordpress挂载机制
  • 邯郸做商城网站的公司大人和小孩做系列网站
  • 网站建设怎么设置留言界面网站建设之织梦后台熊掌号主页
  • 司法局网站体制机制建设情况软件编程入门自学教程
  • 长春模板网站建站千锋教育培训
  • 毕业设计网站开发实施步骤wordpress 导航 分类
  • 网站建设实践学做电商需要什么条件
  • 做网站备案要多久湖南住房城乡建设厅官方网站
  • 开封网站优化公司网络销售怎么才能找到客户
  • 什么软件可以做网站htmlwordpress 图片模版
  • 网页建站总结报告企业电子网站的建设案例分析
  • 怎么做淘宝客网站赚钱吗网络营销专业是干嘛的
  • 网站开发公司管理模式合肥seo优化外包公司
  • 站外推广内容策划盈世企业邮箱登录入口
  • 赣州市做网站郑州企业做网站
  • 北京海大网智网站建设制作公司体育网站建设
  • ysl千色t9t9t9成全东莞网站推广优化建设
  • wordpress建个人网站wordpress文章展示页
  • 网站制作(信科网络)邯郸捕风科技有限公司
  • 荥阳网站建设多少钱网站asp怎么没有菜单栏
  • 广州天河区建设网站公司美妆网站建设方案
  • 网站整站建设做百度商桥网站
  • 网站改版策划书一个电商网站建设需要哪些技术
  • 用vs2012怎么做网站wordpress页头登录
  • 外贸网站建设公司效果wordpress产品页面在哪改
  • 免费静态网站模板网络管理系统功能
  • php高性能网站建设微博推广技巧
  • 网站优化北京百度的网址是什么
  • 湖南建设网站公司门户网站需求