Verilog
文章平均质量分 83
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 · 987 阅读 · 0 评论 -
Verilog中的时间尺度与延迟
在Verilog的建模中,时间尺度和延迟是非常重要的概念,设置好时间尺度和延迟,可以充分模拟逻辑电路发生的各种情况和事件发生的时间点,来评估数字IC设计的各种要求,达到充分评估和仿真的作用。注意延迟语句是不可综合的,只是用来数据建模或仿真。1. 时间尺度语法格式: `timescale 10ns/1ns用关键字 `timescale标识,后面跟时间刻度,如:10ns/1ns,其中10ns表示基本时间刻度,就是每10ns作为一个刻度。1ns是精度,一般在仿真软件中的最小刻度。不同的仿真工具的精原创 2021-08-16 14:17:57 · 6753 阅读 · 0 评论 -
Verilog 预编译
Verilog 预编译Verilog 语言支持宏定义(`define),参数 parameter,局域参数(localparam)以及`include等内容。这些数据常量的支持极大方便数字系统设计、仿真与验证。这些参数是预编译的。预编译所谓预编译就是在系统编译之前,将定义的宏常量,参数等先对系统文件扫描一边,将文件中引用的宏和参数以实际值替代,对`include 文件的引用,将实际文件复制到对应位置,然后才对系统进行编译,这一点和具有编译运行的软件编译处理是一致的,如C语言,C++语言等..原创 2021-08-11 09:32:47 · 1081 阅读 · 0 评论 -
Verilog 变量声明与数据类型一
Verilog 变量声明与数据类型一Verilog语法中最基本的数据类型有 线网(wire),寄存器(reg)和整数(integer)三种类型,这三种数据类型是可综合的数据类型,在Verilog 程序设计中被广泛使用。其它还有可以用于仿真的数据类型如 timer,real,字符串等变量都可以看作reg类型的扩展。wire,reg ,integer,timer,real是声明变量类型的关键字。变量必须先声明后使用,声明后变量的数据类型也就确定了。变量声明是模块(module)内惟一的,不能在同一个模块或函原创 2021-08-10 14:01:44 · 4579 阅读 · 0 评论 -
Verilog 变量声明与数据类型二
Verilog 变量声明与数据类型二上节介绍了wire,reg数据类型及其用法,并对变量定义中的向量的定义及使用做了说明。本节主要介绍其它几种类型。常用的有如下几种:整数integer,实数 real, 时间time,字符串等,他们本质上也是寄存器类型。 整形integer 整形变量用关键字integer 声明,在声明时不用指定位宽,位宽的大小和编译器有关,一般默认为32位。和reg关键字不同,如没有特别指定,reg型变量是无符号数,而integer声明的变量是有符号数的。integer类型的原创 2021-08-06 09:22:47 · 2278 阅读 · 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 · 3085 阅读 · 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 · 7945 阅读 · 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 · 288 阅读 · 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 · 843 阅读 · 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 · 11031 阅读 · 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 · 937 阅读 · 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 · 11776 阅读 · 1 评论 -
Verilog 的设计方法与设计流程
Verilog 的设计方法与设计流程Verilog的设计方法有两种,一种是自顶向下(top_down)的设计方法,一种是自底向上(bottom_up)的设计方法。设计流程是指从一个项目开始从项目需求分析,架构设计,功能验证,综合,时序验证,到硬件验证等各个流程之间的关系。设计方法自顶向下的设计方法:即先定义顶层模块功能,进而分析要构成顶层模块的必要子模块;然后进一步对各个模块进行分解、设计,直到到达无法进一步分解的底层功能块。这样,可以把一个较大的系统,细化成多个小系统,从时间、工作量上分配给更原创 2021-07-29 14:15:08 · 2262 阅读 · 0 评论