- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Verilog数字系统设计
概述:
Verilog HDL 是一种硬件描述语言,用于数字电子系统设计。
Verilog 适合系统级(system),算法级(alogrithem),寄存器传输级(RTL),逻辑级(logic),门级(gate),电路开关级(switch)设计,而SystemVerilog 是Verilog语言的一种拓展和延伸,更适用于可重用的可综合IP和可重用的验证用IP设计,以及特大型(千万门级以上)基于IP的系统级设计和验证。
Verilog的设计流程:
自顶向下的设计
搜索
知识产权核(IP)
软核:功能经过验证的,可综合的,实现后电路结构总门数超过5000门的VerilogHDl模型
(很重要)
固核:在FPGA器件上实现的,经验证是正确的,总门数在5000门以上的电路结构编码文件
硬核:在某一种专用集成电路工艺(ASIC)的器件上实现的,经验证是正确的,总门数在5000门以上的电路结构版图掩膜。
系统级,算法级,RTL级属于行为级
门级和开关级属于结构级
描述测试信号的变化和测试过程的模块叫做测试平台(testbench)
基本语法:
模块结构的组成:
一部分描述接口,一部分描述逻辑功能
模块的端口:
模块的端口表示的是模块的输入和输出名
在模块被引用时,通常有两种方法
flop flop_d(d1,clk,clrb,q,qn);
flop flop_d(.clock(clk),.q(q),.clear(clrb),.qb(qn),.data(d1));
模块内容:
I/O说明
输入口: input[信号位宽-1:0] 端口名;
输出口: output[信号位宽-1:0] 端口名;
输入/输出口: inout[信号位宽-1:0] 端口名;
内部信号声明
Reg [width-1:0]R变量1,R变量2...;
Wire [width-1:0]W变量1,W变量2...;
功能定义
用“assign”语句 如 assign a=bc;
用实例元件 如 and #2 ul(q,a,b);
用always 块 如 always@(posedge clk or posedge clr)
begin
...
end
数据类型
常量:程序运行中其值不能改变的量,包括整型,参数型常量(parameter)
变量:。。。。。。。。。。。。。。可以改变的量,
网型数据类型(wire) 表示器件间的物理连接
寄存器数据类型(reg) 表示抽象的存储单元
Memory型 描述一个寄存器数组
运算符
Integer是有符号数,reg是无符号数
如操作数有一位为1,其逻辑值为true,如操作数为全0,其逻辑值为false,如操作数只包括0,x,z,则逻辑值为x
赋值语句
非阻塞赋值: b=a (时序逻辑)
阻塞赋值 b=a (组合逻辑)
块语句
顺序块(begin-end语句)
并行块(fork-join语句)
条件语句
if_else case
生成语句
结构说明语句
Initial语句
Always语句
Task语句
Function语句
常用的系统任务
$display(p1,p2,...,pn)
值变存储文件
系统任务
模块C2
模块B2
模块B1
模块A3
模块A2
模块A1
模块C1
模块C
模块B
模块A
系统级设计
文档评论(0)