描述
本文来源电子发烧友社区,作者:james, 帖子地址:
https://bbs.elecfans.com/jishu_2288839_1_1.html
FPGA
常用的基本类型wire、reg和parameter。
wire:线网型数据,表示硬件单元之间的物理连线,是verilog中默认的数据类型,由assign操作关键字赋值,可以是一个赋值表达式,assign关键字是实现组合逻辑操作的一种主要描述方式。
reg:寄存器型数据,会保持数据原有的值,直到被改变,无符号数。
parameter:表示常量,只能赋值异常。
所有操作都是在module中完成,module/endmodule表示模块的开始与结束,模块的参数由input/output信号组成。
在模块中,assign只能实现组合逻辑赋值,且一个assign后面只能跟一个赋值表达式,always既能实现组合逻辑赋值,又能实现时序逻辑赋值操作,且可以包括多条赋值表达式,多条赋值表达式应位于begin/end中间。在always中被赋值的信号应该定义为reg类型。
FPGA其中很多操作符及其用法和C语言有很多通之处,有时间大家可以系统性的了解一下verilog的语法。
使用高云烧录工具Gowin Programmer烧录程序中第一次上电经常会出现找不到仿真器的错误,如下图所示。
经过摸索,发现了一个基本100%上解决的办法。第一步点击“USB Cable Setting”,在弹出的窗口界面中点击“Custom LPT”按键,如下图所示。
在弹出的界面中点击“Add”按钮,然后再在上图的界面中点击“Query”按键,最终点击“Save”按键,再次进行烧录,可以看到烧录成功的界面,如下图所示。
FPGA工程是通过顶层Verilog文件和真实的硬件原理图的连接进行对应的,将其称之为用户约束(布线器),云源软件通过“Process”Tab中的“User Constraints”选项下“FloorPlanner”子选项进入FloorPlanner显示界面,如下图所示,真实的引脚通过图中红色部分的“I/0 Constraints”选择不同信号的硬件管脚号、电平、速度、驱动能力等。
打开APP阅读更多精彩内容