版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FPGA基础篇:Verilog基础语法Verilog基础语法1.1可综合模块以module为单元,具体实现如下1.1.1时序逻辑以异步触发的D触发器为例,时序逻辑在always块里实现主要注意点:1.声明模块时,输入变量一定是wire类型2.声明模块时,输出变量可以是wire,也可以是reg,reg变量只能在always块中赋值3.敏感列表既可以是边沿触发,也可以是电平触发4.沿触发的逻辑里,一定采用的是非阻塞触发《=1.1.2组合逻辑以数据选择器为例,组合逻辑通常使用assign语句赋值主要注意点:1.sel=0时,c=a;sel=1时,c=b,即二选一数据选择器。四选一则有两个选择端,四个输入端,八选一则是三个选择端,八个输入端。2.wire变量一定要用连续赋值语句赋值,而且必须用阻塞赋值1.2仿真模块仿真模块和可综合模块的区别:可综合模块最终生成的bit文件会烧录进芯片运行,而仿真模块编译过后是在仿真软件(例如modelsim)上运行的。仿真模块是基于可综合模块进行例化,并通过仿真软件的模拟,可以初步验证我们写的可综合模块的实现现象。以计数器为例,可综合模块如下:基于以上可综合模块的仿真模块如下:1.仿真的模块声明不需要输入列表2.initial块只能对【寄存器】量进行赋值3.例化模块时,如果原始模块是输出变量,则括号内必须【wire变量】HDL常见例子2.1译码器2.1.1可综合模块(case语句)此模块用case实现了一个数据选择的功能,先产生了一个8位计数器,通过判断计数器的值来输出不同的取值,当计数器计数到1时,o_data和o_dv分别输出5和1,当计数器为2时,输出7和1,其余均输出0。(Note:Case语句常常运用于状态机中状态的判断)Case语句注意点:必须有default语句,否则会形成锁存器2.1.2仿真模块2.2状态机由于FPGA内部语句块都是并行运行的,当我们希望FPGA按照顺序执行我们的语句时,就会用到状态机。下面例子是使用状态机模拟的一个简单的自动售货机,该售货机中的商品2.5元一件,每次投币既能投入1元,也能投入0.5元,当投入3元时,需要设定找零。2.2.1状态图2.2.2可综合模块(2段式状态机)2.2.3仿真模块2.2.4仿真脚本仿真脚本可以省去人工操作modelsim软件图形页面的步骤,运行脚本,modelsim可以根据脚本命令自动运行包括创建工作目录,编译文件,启动仿真等步骤,以下是本例中的仿真脚本。仿真脚本编写好后,只需要进入仿真软件(本例使用的是modelsim),改变当前路径到脚本保存的路径,然后在modelsim命令行输入do[脚本文件名]即可。仿真结果:2.2.5上板测试上板测试对原来的条件做了一定改动更方便观测结果,输入和输出分别使用的按键和LED灯,测试版使用的是Anlogic的EF3L40CG332B_DEV,实现的功能如下:①在开发板上完成自动售货机的实验,投币的动作通过按键实现,当按一次按键(按下到抬起算一次),算作投币一次;②按键有两个,按下分别代表5毛和1元,可乐售价2.5元;③当投入总金额为5毛时,led灯亮一个,投入总金额为1元时,led灯亮两个,投入总金额为1.5元时,led灯亮三个,投入总金额为2元时,led亮四个,用单向流水灯效果充当出可乐并且不找零的情况,用双向流水灯效果充当既出可乐又找零的情况。流水灯持续十秒后熄灭,状态回到初始状态。重新设计状态图如下:代码详见工程fsm_key,笔记不再赘述,此次笔记主要记录关于顶层模块和例化的相关知识点:工程目录如下所示:各模块之间的关系是:顶层文件是fsm.v,在fsm.v中调用了模块led_water_single,led_Water_double和key_debounce,这三个模块的功能分别是单向流水灯,双向流水灯和按键消抖。想在顶层文件中调用对应的模块需要在顶层文件中对相应的模块进行例化,以单向流水灯为例。单向流水灯的声明如下:(具体功能实现代码略,如有需要,请登录www.fortune-co.com留言)那么在fsm.v中例化方法如下:括号外的信号是对应的声明信号;括号内的信号是从fsm模块中传入的信号,该信号名称可以自定义。整个工程的框架如下:(由于本实验没有另外写一个总的TOP文件,而是将例化和状态机信号处理都放在了fsm模块中,因此top层和状态机模块都标注的是fsm)其中key05,key10,就是从外界接入的信号,led[7:0]即输出信号。接入信号我们要引到对应的按键,可以参考EF3L40CG332B_DEV的原理图SW2和SW3对应的FPGA的管脚分别是R19和R20,同理可查,八个led的对应脚,并写出相应的管脚约束文件管脚约束文件写完后,在可综合模块顶层文件中的输入输出信号就会对应到相应的物理输入输出,也可以使用图形页面设置。完成后编译下载到板子上观测现象。在本次实验的过程中也发生了一个编程错误问题,刚编写完上板测试时发现结果和预想的有差异,具体错处在输入3元进入双向流水灯的状态时,双向流水灯正向流水正常,当反向流水时,在倒数第二个灯会卡住,然后反复亮灭倒数一二个灯,没法完成反向流水。由于第一次正向流水是正常的,因此推测是在反向流水时有条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖北楚道数字交通科技有限公司公开社会招聘6人笔试参考题库附带答案详解(3卷合一版)
- 2025河南中国平煤神马集团易成新能面向集团内部招聘32人笔试参考题库附带答案详解(3卷合一版)
- 2025江苏腾海物业管理有限公司招聘国有企业人员笔试参考题库附带答案详解(3卷)
- 2025年贵州磷化(集团)有限责任公司招聘130人笔试参考题库附带答案详解(3卷)
- 2025年中国铁路国际有限公司招聘高校毕业生4人笔试参考题库附带答案详解(3卷)
- 2025国家电投广东公司招聘40人笔试参考题库附带答案详解(3卷)
- 济宁市2024年山东济宁曲阜市事业单位招聘工作人员(综合类)(56人)笔试历年参考题库典型考点附带答案详解(3卷合一)
- 2026年西藏单招职业技能信息技术专项练习含答案办公软件网络应用
- 2026年江苏普高生单招职业适应性测试题库含答案机考专用
- 2026年湖南单招递补录取专项冲刺卷含答案补录考生专用
- 透水砖施工工艺及技术交底文档
- 晕针的护理及防护
- 公路工程试验检测实施细则22
- 阿司匹林肠溶片
- 2024包头轻工职业技术学院工作人员招聘考试试题及答案
- 海上应急搜救预案
- 劳动合同涨工资协议
- 2025年内蒙古执业药师继续教育答案(一)
- 2025年师德师风工作总结
- 网络安全知识培训教程课件
- 膝骨关节炎中西医结合诊疗指南
评论
0/150
提交评论