FPGA系统性学习笔记连载_Day6 FPGA三种建模方式区别及Verilog语法基础篇...

发布网友 发布时间:2024-10-23 16:42

我来回答

1个回答

热心网友 时间:2024-11-14 15:46

本系列为FPGA系统性学习学员学习笔记整理分享,如有学习或者购买开发板意向,可加交流群联系群主。



连载《叁芯智能fpga设计与研发-第6天》 【FPGA数据流建模、行为级建模、结构化建模 区别】及【Verilog HDL语法基础】



原创作者:紫枫术河 转请联系群主授权,否则追究责任



这篇文件记录,FPGA的3种建模方式及基本的Verilog HDL语法,内容会根据学习进度,不断更新。



一、FPGA的3种建模方式



A、数据流建模(assign)



数据流建模类似于信号从输入流向输出,不存储中间过程。使用连续赋值语句(assign)描述组合逻辑电路,便于模拟。




1.1、使用连续赋值语句(assign)描述电路逻辑
1.2、连续驱动,赋值随时计算
1.3、线网型变量可被赋值
1.4、线网型变量不存储值,只能是寄存器(reg)类型之外的变量
1.5、线网型变量可被多重赋值
1.6、reg型变量不能被多重赋值
1.7、建议组合逻辑使用assign
1.8、assign与行为语句并行


B、行为级建模(initial、always)



行为建模使用初始(initial)或总是(always)块描述信号行为。涉及算术运算和延迟,用于验证和加速仿真。



C、结构化描述



结构化描述通过实例化功能模块,包括门原语、用户自定义原语(UDP)和其他模块,表示设计层次。



二、RTL级与Behavior级



RTL级描述电路的数据流方式,Behavior级描述电路功能,使用任意Verilog语法。



三、Verilog语法基础




信号类别:输入(input)、输出(output)、输入输出(inout)
内部信号:寄存器型(reg)、线网型(wire)
端口位宽:8位输入(input [7:0])
连续赋值:assign语句赋值
变量类型:assign语句赋值变量必须为wire类型
always语法:@敏感信号,@ (*)自动敏感所有使用到的变量
case/casex语法:条件判断
repeat语法:重复语句
位拼接
仿真文件:定义时间精度


后续将更新Vivado、ISE、Quartus II、candence等安装相关设计教程,提供学习资源、项目资源、好文推荐等。



愿大侠在FPGA领域持续学习,一切安好。有缘再见!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com