- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一个牛人的Systemverilog总结
Systemverilog数据类型l合并数组和非合并数组1)合并数组:存储方式是连续的,中间没有闲置空间。例如,32bit的寄存器,可以看成是4个8bit的数据,或者也可以看成是1个32bit的数据。表示方法:数组大小和位,必须在变量名前指定,数组大小必须是【msb:lsb】Bit[3:0] [7:0] bytes;?2)二维数组和合并数组识别:合并数组:?bit [3:0] [7:0] arrys;大小在变量名前面放得,且降序二维数组:?int arrays[0:7] [0:3] ;??大小在变量名后面放得,可降序可升序位宽在变量名前面,用于识别合并和非合并数组,位宽在后面,用于识别数组中元素个数。?3)非合并数组一般仿真器存放数组元素时使用32bit的字边界,byte、shortint、int都放在一个字中。非合并数组:字的地位存放变量,高位不用。表示方法:?Bit???[7:0] bytes;??4)合并数组和非合并数组的选择?(1)当需要以字节或字为单位对存储单元操作。?(2)当需要等待数组中变化的,则必须使用合并数组。例如测试平台需要通过存储器数据的变化来唤醒,需要用到@,@只能用于标量或者合并数组。?Bit[3:0] [7:0] barray[3]??; 表示合并数组,合并数组中有3个元素,每个元素时8bit,4个元素可以组成合并数组?可以使用barry[0]作敏感信号。?l动态数组随机事物不确定大小。使用方法:数组在开始是空的,同时使用new[]来分配空间,在new[n]指定元素的个数。Int dyn[];?Dyn = new[5];?????//分配5个元素空间?Dyn.delete() ;?????//释放空间l队列在队列中增加或删除元素比较方便。l关联数组当你需要建立一个超大容量的数组。关联数组,存放稀疏矩阵中的值。表示方法:采用在方括号中放置数据类型的形式声明:Bit[63:0] assoc[bit[63:0]];?l常量:1)Verilog 推荐使用文本宏。好处:全局作用范围,且可以用于位段或类型定义缺点:当需要局部常量时,可能引起冲突。2)Parameter?作用范围仅限于单个module3)Systemverilog:?参数可以在多个模块里共同使用,可以用typedef 代替单调乏味的宏。?过程语句l可以在for循环中定义变量,作用范围仅在循环内部for(int i=0;i10;i++)array[i] =i;?l任务、函数及void函数1) 区别:Verilog中task 和function最重要的区别是:task可以消耗时间而函数不能。函数中不能使用#100的延时或@的阻塞语句,也不能调用任务;Systemverilog中函数可以调用任务,但只能在fork??joinnone生成的线程中。2)使用:?如果有一个不消耗时间的systemverilog任务,应该把它定义成void函数;这样它可以被任何函数或任务调用。?从最大灵活性角度考虑,所有用于调用的子程序都应该被定义成函数而非任务,以便被任何其它任务或函数调用。(因为定义成任务,函数调用任务很有限制)?l类静态变量作用:1)类的静态变量,可以被这个类的对象实例所共享。当你想使用全局变量的时候,应该先想到创建一个类的静态变量静态变量在声明的时候初始化。2)类的每一个实例都需要从同一个对象获取信息。l静态方法作用:当静态变量很多的时候,操作它们的代码是一个很大的程序,可以用在类中创建一个静态方法读写静态变量,但是静态方法不能读写非静态变量。l???????ref高级的参数类型Ref 参数传递为引用而不是复制。Ref比 input 、output、inout更好用。Function void print_checksum(const ref bit [31:0] a[ ]);1)也可以不用ref进行数组参数传递,这时数组会被复制到堆栈区,代价很高。2)用带ref 进行数组参数传递,仅仅是引用,不需要复制;向子程序传递数组时,应尽量使用ref以获得最佳性能,如果不希望子程序改变数组的值,可以使用const ref。3)???????Ref参数,用ref 传递变量;可以在任务里修改变量而且,修改结果对调用它的函数可见,相对于指针的功能。?l???????Return语句增加了return语句。Task任务由于发现了错误而需要提前返回,如果不这样,那么任务中剩下的语句就必须被放到一个else条件语句中。体会下Task load_array(int len. Ref int array[ ]);If(len0)??begin?$display(“Bad len”);?Returun;//任务中其它代码…?endtask?l局部数据存储 automatic作用
您可能关注的文档
- 《大学生职业规划与就业指导》试卷及参考答案.doc
- 《太史公自序》整理.doc
- 《天津市居住建筑节能设计标准》学习报告.doc
- 《外国教育史》教案.doc
- 《大一统气派与中华民族的象征》导学案.doc
- 《实验设计与数据处理》lecture5.doc
- 《小学校园文化建设行动研究》实施规划.doc
- ZPW—2000A无绝缘移频自动闭塞系统培训教2.doc
- 北醫网络期末计算机应用基础I考试说明.doc
- 《家庭治疗理论与实践》复习提纲.doc
- 2024年中国城区经济高质量发展研究报告.docx
- 2024年网络安全现状报告-ISACA-41页.docx
- 什么是数据架构(华为).pdf
- 乘联会:2024年9月轻型商用车市场预测研究报告-16页.pptx
- 2024秋日自然山野研学系列(秋日在野计划主题)活动策划方案-47P.pdf
- 2024AIGC创新应用洞察报告-创业邦.docx
- 智慧社区(街道)康养医疗居家养老管理运营平台体系解决方案.pdf
- 轻工制造“碳中和”专题报告:CCER重启在望,我国碳交易市场大有可为-20230330-民生证券-46页.docx
- 2024年9月中国快递物流行业经济运行情况月度报告.docx
- 2024年纷享销客一体化BI智能分析平台橙皮书V2.docx
最近下载
- 农民工工资支付计划.pdf VIP
- 市政验·绿-4 种植穴、槽的挖掘工程检验批质量验收记录.pdf VIP
- DB53∕T 67.3-2017 建筑消防安全检测评价 第3部分:灭火设施.pdf
- ISO14000环境管理体系练习题.pdf VIP
- 产品质量保证承诺书15篇.pdf VIP
- 2025(部编版)语文九年级上册 第二单元 复习课件.pptx
- 一级建造师工程经济讲义.pdf VIP
- 关于成都市数字化金融创新服务的研究.pdf VIP
- 2023年02月安徽合肥市教育局直属事业单位选调工作人员笔试参考题库+答案详解.docx VIP
- 《单位消防安全管理 第2部分:建筑消防设置维护》 DB53T 270.2-2017.pdf VIP
文档评论(0)