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

如题所述

第1个回答  2024-09-22

本系列为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领域持续学习,一切安好。有缘再见!

...FPGA三种建模方式区别及Verilog语法基础篇
RTL级描述电路的数据流方式,Behavior级描述电路功能,使用任意Verilog语法。三、Verilog语法基础 信号类别:输入(input)、输出(output)、输入输出(inout) 内部信号:寄存器型(reg)、线网型(wire) 端口位宽:8位输入(input [7:0]) 连续赋值:assign语句赋值 变量类型:assign语句赋值变量必须...

相似回答
大家正在搜