电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

SystemVerilog语言简介VIP免费

SystemVerilog语言简介_第1页
1/14
SystemVerilog语言简介_第2页
2/14
SystemVerilog语言简介_第3页
3/14
SystemVerilog 语言简介 1. 接口(Interface) Verilog 模块之间的连接是通过模块端口进行的。为了给组成设计的各个模块定义端口,我们必须对期望的硬件设计有一个详细的认识。不幸的是,在设计的早期,我们很难把握设计的细节。而且,一旦模块的端口定义完成后,我们也很难改变端口的配置。另外,一个设计中的许多模块往往具有相同的端口定义,在Verilog 中,我们必须在每个模块中进行相同的定义,这为我们增加了无谓的工作量。 SystemVerilog 提供了一个新的、高层抽象的模块连接,这个连接被称为接口(Interface)。接口在关键字 interface 和 endinterface 之间定义,它独立于模块。接口在模块中就像一个单一的端口一样使用。在最简单的形式下,一个接口可以认为是一组线网。例如,可以将 PCI总线的所有信号绑定在一起组成一个接口。通过使用接口,我们在进行一个设计的时候可以不需要首先建立各个模块间的互连。随着设计的深入,各个设计细节也会变得越来越清晰,而接口内的信号也会很容易地表示出来。当接口发生变化时,这些变化也会在使用该接口的所有模块中反映出来,而无需更改每一个模块。下面是一个接口的使用实例: 实际上,SystemVerilog 的接口不仅仅可以表示信号的绑定和互连。由于 SystemVerilog的接口中可以包含参数、常量、变量、结构、函数、任务、initial 块、always 块以及连续赋值语句,所以 SystemVerilog 的接口还可以包含内建的协议检查以及被使用该接口的模块所interface chip_bus; // 定义接口 wire read_request, read_grant; wire [7:0] address, data; endinterface: chip_bus module RAM (chip_bus io, input clk); // 使用接口 // 可以使用 io.read_request 引用接口中的一个信号 ... endmodule module CPU(chip_bus io, input clk); ... endmodule module top; reg clk = 0; chip_bus a; // 实例接口 // 将接口连接到模块实例 RAM mem(a, clk); CPU cpu(a, clk); endmodule 共用的功能。 2. 全局声明和语句 在Verilog 中,除了一个模块可以作为模块实例引用其他模块外,并不存在一个全局空间。另外,Verilog 允许任意数目的顶层模块,因此会产生毫无关联的层次树。 SystemVeriog 增加了一个被称为$root 的隐含的顶级层次。任何在模块边界之外的声明和语句都存在于$root 空间中。所有的模块,无论它处于哪一个设计层次,都可...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

SystemVerilog语言简介

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部