搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
笔触狂放9
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Anaconda使用Linux指令方法_anaconda中运行linux命令
2
python画界面的插件,tkinter-designer
3
kafka简介
4
【Linux】CentOS更换国内阿里云yum源(超详细)_centos 换源
5
网络安全人士必备的16个威胁情报分析网站_威胁分析网站_威胁ip查询
6
哪些平台和市场备受大卖们青睐?今年第二季度热门平台排行
7
Vue报错:Error in v-on handler: “TypeError: Cannot read properties of undefined (reading ‘length‘)“_error in v-on handler: "typeerror: cannot read pro
8
高性能无锁队列 Disruptor 核心原理分析及其在i主题业务中的应用
9
D-Link service.cgi远程命令执行漏洞复现
10
地理信息系统(Geographic Information System,GIS)_地理信息gis
当前位置:
article
> 正文
[systemverilog]1_数据结构
作者:笔触狂放9 | 2024-08-09 09:10:09
赞
踩
[systemverilog]1_数据结构
1.内建数据类型
(1)logic与reg/wire区别联系
(2)logic和bit
(3)硬件世界和软件世界
(4)变量类型划分(四值/二值、有无符号)
(5)例题1
1000_0000原是代表-0,计算机中规定其代表为-128。详细可见笔记“IC_1_1”。
(6)例题2
当result_vec= signed_vec;由于result_vec为9位,所以signed_vec自动将最高位补1,表示有符号位。
(7)静态转换、动态转换、显示转换、隐式转换
静态:类型+单引号;动态:系统函数,$cast会在仿真阶段而非编译阶段返值。
(8)例题3
2.定宽数组
(1)数组的声明
(2)多维数组声明和使用
(3)初始化和赋值
注意定宽数组用的是单引号“’”;
4{8}的用法;
default:-1的用法。
(4)存储空间
根据数组是否为组合型而占用存储空间不同,以32bit为一个存储空间的话,组合型的(pack)存储是连续的,而非组合的数组中的每个组员占用一个存储空间。更详细的pack/unpack数组可参考节。
(5)例题
因为logic是四值逻辑,需要两bit的存储,所以对于pack而言,24*2=48,而24bit为一个单元,故需要两个单元;
对于unpack而言,8*2=16<24,所以还是3个单元就行。
(6)基本数组操作-for/foreach
(7)基本数组操作-复制和比较
3.动态数组
(1)数组声明和分配空间
(2)示例
new[数组宽度](数组名):将已有数组的值复制到新数组中。
sv中int默认值是0,interger默认值是X。
删除动态数组的方式(3种):dyn.delete();dyn=new[0];dyn='{};
4.队列
(1)概念
(2)示例
5.关联数组
(1)概念
(2)声明
通过方括号中放置数据类型实现 int data_as[bit [31:0]] : int为存储数据类型,bit[31:0]为寻址的类型。
(3)初始化
关联数组初始化时使用 : '{};在大括号内写入键值对的信息,键值对用:连接;
data_as =
'{
1:20,2:21,3:22
}
;
(4)关联数组的大小
可以使用size()、num()来实现;没有写入数据时,大小为0。
(5)示例
中括号里面其实是索引值(idx)。
有两种方式遍历,foreach和if,其中assoc.first()返回第一个索引值,若没有数组为空,则返回0。
6.结构体
(1)概念
(2)单引号的使用
动态数组 、关联数组、结构体是分开存放的,非合并的方式都需要“‘{} ”,即需要单引号。只有组合型的数组、队列的赋值不需要单引号。
(3)如果没有typedef,结构体定义后,声明变量时只能struct pixel s1。
7.枚举类型
(1)概念
(2)
枚举类型可以赋值给整型,整型不能赋值给枚举类型。
8.字符串
(1)概念
字符串空的时候不是“\0”而是“”。
(2)$sformatf()/$sformat()
$sformatf(): 首先$sformatf()/$sformat()这两个函数是不做打印的事儿的!这两个函数就是整理整理字符串的格式啊!按照函数里“ ”中的格式,把相应的变量填进去。
$sformat ( output_var , format_string [ , list_of_arguments ] ):$sformat()比$sformatf()多了第一个参数,第一个参数就是放整理好的字符串的容器。$sformat()会直接把整理好的字符串放到第一个字符串类型的参数中。
$sformatf ( format_string [ , list_of_arguments ] ): 系统函数$sformatf的行为类似于$sformat,只是字符串结果作为$sformatf的函数结果值传回,而不是像$sformat那样放在第一个参数中。
(3)getc/putc/tolower/substr:
9.数组的组合型/非组合型声明(packed/unpacked用法)
(1)如果数组任一维度出现在数组名的右边,就是非组合型,否则是组合型。当某维度出现在左边,仅该维度是连续的。
reg [15:0] RAM [0:4095] //unpacked
logic a1 [7:0] [1023:0] //
unpacked
wire [3:0] select //packed
logic [3:0][7:0] data //packed 也称合并数组
(2)数组维度的判断方法:
数组名同一侧(左或右):从右向左,依次是低维度高纬度。
数组名不同侧:左边低维度,右边高维度。
(3)以下例子中结构体是连续存储的,数组也是连续存储的。
(4)packed array 初始化或赋值时,只要大括号即可,无需单引号。
(5)非组合型数组无法直接赋给组合型数组,组合型数组也无法直接赋给非组合型数组。
(6)组合型数组和向量类似。
10.概念域(scope)
11.硬件过程块
(1)always
always是为了描述硬件行为,always中的@(event...)敏感列表是为了模拟硬件信号的触发行为。所以,always过程块是用来描述硬件时序电路和组合电路的,只可以在module或者interface中使用。两个always是并行执行的,同个过程块内部是串行执行。
(2)initial
initial过程块可以在module、interface和program 中使用。
12.软件方法(软件过程块)
(1)函数function
参数列表默认是input。数据变量在参数列表中可被声明ref类型。函数是不耗时的,这是与task的一个区别。
(2)任务task
task可允许事件触发 、等待事件、延迟。
function能干的,task都能干;task可以调用function,但是function不能调用task,因为task允许耗时语句。
(3)示例task
函数op_copy里t,s都是input,所以没有在退出函数时返回值给参数t。用ref,或改成output就可以了。
13.变量生命周期
(1)概述
module中的变量都是静态生命周期。automatic的用法。
(2)示例
记住static的,不会被多次初始化。
(3)规律
(4)示例
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/笔触狂放9/article/detail/952452
推荐阅读
article
【
数据结构
】堆和
优先
级
队列
_堆和
优先
队列
...
堆的构建和基本方法的实现以及TopK问题。_堆和
优先
队列
堆和
优先
队列
目录 一、堆 1....
赞
踩
article
数据结构
——
队列
_模拟
排队
数据结构
是
什么...
队列
1.
队列
的介绍
队列
是
一种先进先出的
数据结构
,这和栈有所不同,但又更容易理解。类似于食堂
排队
打饭,车站
排队
买票。后来的...
赞
踩
article
【
C
数据结构
-图】3.
深度
优先
搜索
、
广度
优先
搜索
_
深度
优先
搜索
广度
优先
搜索
...
文章目录
【
1. DFS
深度
优先
搜索
】1.1 基本原理1.2
C
实现
【
2. BFS
广度
优先
搜索
】2.1 基本...
赞
踩
article
算法
基础学习笔记
---
-
数据结构
---
KMP
算法
_董晓
算法
...
KMP
算法
是一种改进的字符串匹配
算法
,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它...
赞
踩
article
数据
结构 | 考研代码题之顺序表 |
1
查
找
L中值为e的
数据
元素
若
找
到
则
返回
其下标,
若
找
不到
则
返回
...
假设有一个顺序表 L,其存储的所有
数据
元素
均为不重复的正数,查
找
L中值为e的
数据
元素
,
若
找
到
则
返回
其下标,
若
找
不到
则
返回
...
赞
踩
article
数据结构
:带
索引
的
双链
表
IDL
...
它更省内存,可以用于从内存里的红黑树,到硬盘上的
数据结构
(如B+树),的转换过程中的替代品。举例来说,
索引
中储存的长度是...
赞
踩
article
数据结构
-
回文
数字-
java
_在不使用额外
的
内存空间
的
条件下判断一个整数
是否是
回文
。...
1.题目在不使用额外
的
内存空间
的
条件下判断一个整数
是否是
回文
。
回文
指逆序和正序完全相同。提示:负整数可以是
回文
吗?(比如...
赞
踩
article
回文
算法
数据结构
_设计
回文
算法
数据结构
...
题目:
回文
是指正读反读均相同的字符序列,如"abba"和"abdba"均是
回文
,但"good"不是
回文
。试写一个算法判定...
赞
踩
article
数据结构
:
回文
判断_
数据结构
回文
判断...
回文
:指正读反读均相同的字符序列,如“abba”、“abdba”、12321均是
回文
解题思路: 基于栈的先进后出,后进先...
赞
踩
article
数据结构
单
链
表
的
回文结构
_单向
链
表
回文...
链
表
的
回文结构
,即 1 --> 2 --> 3 --> 2 --> 1 这样的形式,
链
表
正着和反过来是一样的。1 时间复...
赞
踩
article
数据结构
:
回文
判断
_
数据结构
回文
的
判断
代码...
7-1
回文
判断
回文
是指正读反读均相同
的
字符序列,如“abba”和“abdba”均是
回文
,但“good”不是
回文
。编写一...
赞
踩
article
【
数据结构
】(牛客)
链表
的
回文结构
,
LeetCode
相交
链表
,
LeetCode
环形
链表
_
java
链表
...
本文详细讲述了(牛客)
链表
的
回文结构
,
LeetCode
相交
链表
,
LeetCode
环形
链表
等题目,里面讲述了我自己的思路,...
赞
踩
article
【C++
数据结构
】用栈
实现
回文
字符串
的
判断
(类模板)_用栈
实现
回文
判断
的算法...
栈
实现
的是一种后进先出(last-in,first-out,LIFO)策略,将一个正序的数组入栈并出栈后可以得到逆序数组...
赞
踩
article
数据结构
:栈-
回文
判断
_
回文
判断
栈...
【代码】
数据结构
:栈-
回文
数
判断
。
_
回文
判断
栈
回文
判断
栈 ...
赞
踩
article
7-1
回文
判断(
数据结构
)
PTA
C语言
_
pta
回文
字符串
...
回文
是指正读反读均相同的字符序列,如“abba”和“abdba”均是
回文
,但“good”不是
回文
。编写一个程序,使用栈判...
赞
踩
article
数据结构
判断
字符串
是否为
回文
_
数据结构
判断
一个
字符串
是否为
回文
...
#include
#include
#define MAXSIZE 100bool j...
赞
踩
article
[
数据结构
]-
链表
回文
结构
判断
_
回文
检测
数据结构
...
对于一个
链表
,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,
判断
其是否为
回文
结构
。,请返回一个bool...
赞
踩
article
数据结构
:使用链栈实现
回文
判断
_试写
一个
算法
,
判断
依次读入的
一个
...
题目:
回文
判断
试写
一个
算法
,
判断
依次读入的
一个
以@为结束符的字母序列,是否为形如‘序列1&序列2’模式的字符序列。其中序...
赞
踩
article
【
数据结构
】用
C语言
判断
链表
的
回文
结构
_
c
链表
回文
...
本文介绍了一种使用快慢指针找到
链表
中间节点,并通过逆置中间节点后的部分来判断
链表
是否为
回文
的算法。时间复杂度为O(n),...
赞
踩
article
【
数据
结构
】
二叉树
——
顺序
结构
——堆及其
实现
...
树是一种非线性的
数据
结构
,它是由n(n>=0)个有限节点组成的一个具有层次关系的集合。除根节点外,其余部分被分为M(M>...
赞
踩
相关标签
数据结构
队列
算法
c语言
深度优先
广度优先
学习
c++
考研
C语言
Python
java
排序算法
链表
单链表
leetcode