FPGA
文章平均质量分 79
FPGA&IC设计导师
加拿大海外博士、资深硬件架构师、软件无线电专家,8 年教学仪器开发经验为加拿大多个公司发展提供资深技术和管理,8 项专利。
展开
-
Quartus II 18.x Modelsim仿真设置
Quartus II 18.x Modelsim仿真设置本节内容介绍在如何在QuartusII 应用环境下设置modelsim仿真选项,并进行波形仿真。下面以四位乘法器为例介绍。在QuartusII 18.x 的界面下建立两个文件,一个是设计文件mul4.v实现4×4的乘法器;另一个是testbench 文件tb.v,提供激励。mul4.v文件如下:module mul4(input [3:0] a,input [3:0] b,output [7:0] c);assi原创 2021-08-18 09:30:50 · 1016 阅读 · 0 评论 -
Verilog中的时间尺度与延迟
在Verilog的建模中,时间尺度和延迟是非常重要的概念,设置好时间尺度和延迟,可以充分模拟逻辑电路发生的各种情况和事件发生的时间点,来评估数字IC设计的各种要求,达到充分评估和仿真的作用。注意延迟语句是不可综合的,只是用来数据建模或仿真。1. 时间尺度语法格式: `timescale 10ns/1ns用关键字 `timescale标识,后面跟时间刻度,如:10ns/1ns,其中10ns表示基本时间刻度,就是每10ns作为一个刻度。1ns是精度,一般在仿真软件中的最小刻度。不同的仿真工具的精原创 2021-08-16 14:17:57 · 6825 阅读 · 0 评论 -
Verilog 预编译
Verilog 预编译Verilog 语言支持宏定义(`define),参数 parameter,局域参数(localparam)以及`include等内容。这些数据常量的支持极大方便数字系统设计、仿真与验证。这些参数是预编译的。预编译所谓预编译就是在系统编译之前,将定义的宏常量,参数等先对系统文件扫描一边,将文件中引用的宏和参数以实际值替代,对`include 文件的引用,将实际文件复制到对应位置,然后才对系统进行编译,这一点和具有编译运行的软件编译处理是一致的,如C语言,C++语言等..原创 2021-08-11 09:32:47 · 1102 阅读 · 0 评论 -
Verilog 变量声明与数据类型一
Verilog 变量声明与数据类型一Verilog语法中最基本的数据类型有 线网(wire),寄存器(reg)和整数(integer)三种类型,这三种数据类型是可综合的数据类型,在Verilog 程序设计中被广泛使用。其它还有可以用于仿真的数据类型如 timer,real,字符串等变量都可以看作reg类型的扩展。wire,reg ,integer,timer,real是声明变量类型的关键字。变量必须先声明后使用,声明后变量的数据类型也就确定了。变量声明是模块(module)内惟一的,不能在同一个模块或函原创 2021-08-10 14:01:44 · 4629 阅读 · 0 评论 -
Verilog 变量声明与数据类型二
Verilog 变量声明与数据类型二上节介绍了wire,reg数据类型及其用法,并对变量定义中的向量的定义及使用做了说明。本节主要介绍其它几种类型。常用的有如下几种:整数integer,实数 real, 时间time,字符串等,他们本质上也是寄存器类型。 整形integer 整形变量用关键字integer 声明,在声明时不用指定位宽,位宽的大小和编译器有关,一般默认为32位。和reg关键字不同,如没有特别指定,reg型变量是无符号数,而integer声明的变量是有符号数的。integer类型的原创 2021-08-06 09:22:47 · 2314 阅读 · 0 评论 -
Verilog 变量中位的数值类型
Verilog 变量中位的数值类型Verilog变量中每个位(bit)的数值类型有四种,分别为1,0,Z,X。其中1,0比较明确就是高、低电平。而x, z在逻辑设计中也经常用到来建模。X,Z既可以大写,也可以使用小写字母。 0:逻辑 0 或 “假” 1:逻辑 1 或 “真” x 或 X:未知 z 或 Z:高阻 X表示其值不确定,可能为0,也可能为1; 从高低电平的角度看,四值含义如下表所示: Verilog中4个逻辑值原创 2021-08-04 09:43:33 · 3111 阅读 · 0 评论 -
Verilog标识符与关键字
Verilog标识符与关键字1、标识符:Verilog HDL中的标识符是指用来声明数据,变量,端口,例化名等除关键字外的所有名称的组合。如:input a, 这里a就是一个标识符,用来代表一个输入端口的名称。Verilog HDL中的标识符(identifier)可以是任意一组字母、数字、$符号和_(下划线)符号的组合,但标识符的第一个字符必须是字母或者下划线。另外,标识符是区分大小写的。下面所示都为合法的表示符:Count, count, a, y, _mem, ab0, x$, o原创 2021-08-03 14:26:56 · 8032 阅读 · 0 评论 -
FII-PRA006/010开发板硬件实验一
FII-PRA006/010开发板硬件实验一以一位全加器为例介绍如何利用开发板进行板载实验。一位全加器的Verilog代码如下: 1 2 3 4 5 6 7 8 9 10 module fadd1 ( input a,b,ci, output sum, output co ); assign {co, sum}...原创 2021-08-02 09:37:33 · 300 阅读 · 0 评论 -
FII-PRX100-D开发板FPGA的烧录和RISC-V 软件代码下载
1. 生成*.bit文件之前先RESET结果首先,打开VivadoFII_RISCV_V2.01工程(这里以V2.01版本为例),如图1所示。图1 FII_RISCV_V2.01工程要生成相应的*.bit文件需要先synthesis和implementation。推荐在进行synthesis之前,先reset前一次的结果。Reset操作如图2-图4所示。图2 选中上次的synthesis图3 选中reset图4 在弹出窗口中确定reset2.生成.原创 2021-07-31 13:44:47 · 863 阅读 · 1 评论 -
Vivado中综合,实现,编程和调试工程可能会出现的问题及解决方案
Xilinx公司的IDE(集成开发环境) Vivado用处广泛,学会使用Vivado对FPGA的学习至关重要,这里以PRX100-D开发板为例,对Vivado的学习使用进行探讨。本文将会持续更新,列出一些常见的Vivado使用过程中出现的问题,供大家参考。在Vivado使用过程中 出现的问题,主要会分为以下几类:与Vivado软件本身相关的问题 Vivado综合,仿真,实现过程中出现的问题 编程和调试PRX100-D开发板注意事项1.与Vivado软件本身相关的问题Vivado在添加新原创 2021-07-31 09:10:29 · 11113 阅读 · 3 评论 -
PRA006/PRA010 开发板,Quartus Altera JTAG 配置,以及常见故障解决
FRASER INNOVATION INCAltera JTAG 设置及故障排除版权声明:© 2020 Fraser Innovation Inc ALL RIGHTS RESERVEDWithout written permission of Fraser Innovation Inc, no unit or individual may extract or modify part of or all the contents of this manual. Offenders原创 2021-07-30 17:42:34 · 949 阅读 · 0 评论 -
Quartus II 下FPGA管脚锁定
Quartus II 下FPGA管脚锁定在新建工程、编辑文件、编译、排错完成后就进入管脚锁定以及电平设置阶段。这里还是以一位全加器为例介绍管脚锁定。开发板使用FII-PRA006. 开发工具Quartus 18.1。一位全加器的module 输入、输出与开发板,FPGA的对应关系,见表1。表1程序信号名 网络标号 FPGA管脚 端口说明 对应 module的输入、输出 co SW7_LED7 77 Led灯第7位 co sum S原创 2021-07-30 15:11:17 · 11912 阅读 · 1 评论 -
Verilog (FPGA)板级实验—Quartus II
Verilog (FPGA)板级实验—Quartus II这是第一个例子将会在硬件实验板演示我们的设计。本节的目的不是给大家介绍复杂的设计工程,复杂的设计方法,而是借助一个简单的例子,介绍如何将整个设计流程介绍给大家。本节内容包括新建文件,编写Verilog 代码,将代码添加到工程中,编译,开发板相关硬件介绍,管脚锁定,编程下载,板级验证。我们将按照这套流程一步步教会FPGA(Verilog)的开发流程。开发板 FII-PRA 006/010 Quartus II 新建工程 新建文件,编写Ver原创 2021-07-30 11:14:05 · 1746 阅读 · 2 评论 -
Quartus II 18.xx 创建新工程
Quartus II 18.xx 创建新工程本节以Quartus II 18.0 为例介绍如何在QuatusII下创建一个新的工程,其它版本如 Quartus II 18.XX,Quartus II 19.XX,Quartus II 20.XX,基本一致,可以参照本节步骤执行。启动Quartus II 18.0 lite Edition,启动后的界面如图1所示:图1在新建、打开项目向导区,点击New Project Wizard按钮,如图2红框标识:图2注:图2左下方绿框设置 .原创 2021-07-29 14:15:47 · 1637 阅读 · 0 评论 -
Verilog 的设计方法与设计流程
Verilog 的设计方法与设计流程Verilog的设计方法有两种,一种是自顶向下(top_down)的设计方法,一种是自底向上(bottom_up)的设计方法。设计流程是指从一个项目开始从项目需求分析,架构设计,功能验证,综合,时序验证,到硬件验证等各个流程之间的关系。设计方法自顶向下的设计方法:即先定义顶层模块功能,进而分析要构成顶层模块的必要子模块;然后进一步对各个模块进行分解、设计,直到到达无法进一步分解的底层功能块。这样,可以把一个较大的系统,细化成多个小系统,从时间、工作量上分配给更原创 2021-07-29 14:15:08 · 2295 阅读 · 0 评论 -
Quartus II 软件安装步骤
Quartus II 软件安装步骤从Intel网站下载QuartusII安装包,https://fpgasoftware.intel.com/?edition=lite。图 1点击下载点击选择 Combined Files点击选择合适的版本点击选择合适的版本在这里我们选择最新版本20.1.1,也可选择以前的版本。如果是新用户可能要求注册,登录等。2.下载文件现在后的文件名为Quartus-lite-20.1.1.720-windows.tar,解压展开后文件夹的名称为原创 2021-07-29 10:13:38 · 3442 阅读 · 1 评论 -
TTL,CMOS,LVTTL,LVCMOS电平标准
TTL电平VCC:5V数字电路中,由TTL电子元器件组成电路使用的电平。电平是个电压范围。标准输出高电平(VOH):2.4V标准输出低电平(VOL):0.4V(0.5V)通常输出高电平:3.5V(3.6V)通常输出低电平:0.2V最小输入高电平(VIH):2.0V最大输入低电平(VIL) :0.8V对TTL器件规定输出高电平>2.4V,输出低电平<0.4V。在室温下,TTL器件一般输出高电平是3.5V,输出低电平是0.2V。最小输入高电平和低电平:输入原创 2021-07-28 17:17:47 · 4738 阅读 · 0 评论 -
Verilog 语法中关于模块例化的方法
Verilog 语法中,关于模块例化有两种方法,一种是位置相关, 另外一种是名称相关verilog 语言中形成一个模块:module module_name( input a, input b, output c, input [31:0] d, output [7:0] e, ..... inout x);verilog 语法...endmoduleverilog 语言中模块:1)包括module...原创 2021-07-28 11:40:58 · 3649 阅读 · 0 评论 -
FPGA 双向口的使用及Verilog实现
FPGA的双向口在FPGA的设计应用中使用及其广泛,如I2C接口中的SDA,3线制的SPI接口中的数据线,传统控制总线中的数据总线,以及内存的访问DDR3/DDR4的数据总线等都是双向访问的。双向访问涉及到的概念比较多,如三态的概念,高阻的概念,输入、输出引脚合并,输入输出分时复用等概念,因此初学者往往比较迷惑,觉得无所适从,本文从底层基本原理入手,揭示双向口的机理,并用Verilog程序开发为例一步步引导大家如何使用双向口(inout)的使用与开发。双向口涉及的基本模型 三态门 为了描述方便,原创 2021-07-28 11:40:13 · 3631 阅读 · 0 评论