verilog基础篇
文章平均质量分 56
ciscomonkey
10年还在这行!
展开
-
基础篇verilog-‘timescale的解释
verilog-timescale解释’timescale 1ns/1ps其中1ns代表步进,1ps代表精度,精度代表小数点后能够识别到的位数#200.001 //代表200ns_1ps#200.0001 //编译将会报错原创 2018-11-02 20:57:31 · 5129 阅读 · 0 评论 -
verilog基础篇--常用的信号生成模块
背景有时候被叫写一些简单的测试信号,翻来覆去的写。这里我留个底,下次直接复制这些模块。常用信号1、//模块功能:产生脉宽可调的周期脉冲信号//模块功能:产生脉宽可调的周期脉冲信号`timescale 1ns / 1nsmodule pulse_gen_module # ( parameter PULSE_WIDTH_W = 16 )( input ...原创 2019-05-21 16:25:12 · 5302 阅读 · 3 评论 -
按键抖动仿真Testbench(repeat、task、random)的用法
TASK(任务)将一定的操作封装成为一个整体,方便多次调用。调用时候,只需要写testbench的名字和输入参数repeat随机函数 $randomtb的写法独热码 推荐使用...原创 2019-02-20 23:30:36 · 6200 阅读 · 0 评论 -
modelsim的工程仿真流程--2
文章目录引言创建工程及工程库加载设计文件运行仿真保存波形文件wlf基本仿真流程与工程仿真流程方法对比引言首先建立一个工程,然后向工程中添加设计文件,接下来编译设计文件,之后运行仿真。创建工程及工程库此时可以看到在workspace窗口开始有了project标签,由于新建的工程中没有文件,所以显示为空白区域。至此创建工程结束,接下来可以向工程中添加文件。加载设计文件一般来说,我们不...原创 2019-02-19 20:02:37 · 709 阅读 · 0 评论 -
modelsim的库仿真流程--1
创建一个新库在仿真之前要先建立一个新的库文件,所有的仿真的程序实例都要编译入库。首先在仿真文件夹新建好工程文件夹,以后的仿真文件都放到这里面。然后切换目录。建立一个库:此时就会出现work的空白库选择编译此处的编译表示要编译后,把编译文件添加到库当中。选中要添加入库的文件进行编译。上图表示成功编译入库。运行仿真成功编译后的.v软件入库后,就可以进行仿真了。...原创 2019-02-18 23:25:16 · 583 阅读 · 0 评论 -
记录一次quartus II prime standard 18添加器件库的方法
Quartus II 18 prime standard 我很早之前就已经安装好了,但是一直没用,所以当时为了节约内存就没有安装device,我一直用的quartus 13.0 。今天我想着是要解决一下这个问题了,于是我按照网上教程开始安装,如下图所示结果出现了,如下的提示:The quartus prime software cannot launch the Device insta...原创 2019-02-23 20:30:21 · 16508 阅读 · 29 评论 -
verilog基础--sign表达式
下面我们来看看官方文档,遇到别人写的代码不懂的,或者模棱两可的语法,一定要亲自去查阅官方的文档,但是在查阅官方文档之前,我们来看看基本的有符号和无符号在计算机中的表示方法,以及有符号二进制如何运算吧。note:反码是什么 ? 正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反符号在计算机中的表示有符号数通常以2的补码形式来表示,计算机为方便减法计算,在表示负数的时候...原创 2019-02-12 18:17:06 · 1858 阅读 · 0 评论 -
verilog基础—规范化参数定义parameter
引言采用parameter可以让程序变得可维护性,所以在verlog中,尽量在有数据可能发生变动的地方,设置为parameter,以免以后又从头开始更改。parameter经常用于定义数据位宽,定义时间延迟,在模块和实例引用时,可以通过参数传递,改变被引用的模块。因此我们尽量把所有的可能变动的参数设置在顶层,一眼明了,方便日后维护。端口参数与模块内部参数本module内有效的定义,可用于...原创 2019-02-11 12:52:37 · 10001 阅读 · 0 评论 -
verilog一些小知识点注意事项集合
如果我们的程序足够复杂,只有一个模块一个模块的写程序,然后进行相关的testbench测试,这样,会有助于我们顺利完成一个较大的工程。如果全部写完后,再去对顶层测试,一旦有错,那么找起来,相当麻烦,也许运行一次就要花费大量时间,效率极低。- suggest-1:分模块测试的好处 先写模块,然后将此模块设为顶层,然后立马针对此模块进行测试。 在setting--->general 下面可...原创 2019-02-16 16:17:46 · 1080 阅读 · 0 评论 -
verilog基础-状态机之FPGA独立按键消抖设计与验证(熟练testbench的写法)
独立按键消抖设计与验证开发板:小梅哥AC620软件:quartus 13.1一般情况下抖动的总时间会持续20ms以内。状态机的基本结构,下面是一个状态机的样例,我们只需要在以后模仿着写即可 /* 有限状态机,三过程块建模风格 ***************************************** */ // 状态编码 localparam IDLE ...原创 2019-01-15 22:40:34 · 1911 阅读 · 0 评论 -
FPGA实现序列检测(训练testbench写法)
电路设计与状态机FPGA的基础概念Cyclone IV器件采用了M9K的嵌入式块RAM,即每个嵌入式存储器块的容量为9216bit。4个PLL,一个PLL可以最多支持5路输出。cyclone IV E中,除了EP4CE6和EP4CE10两个容量等级的器件只含有两个PLL单元以外,其它容量的器件均含有4个PLL。M9K存储器,见名思意,该存储器每个M9K,存储容量是9Kbit,这些存储器...原创 2019-01-14 10:37:54 · 5139 阅读 · 0 评论 -
verilog基础篇RAM IP核的使用
在该页面中,我们去掉了q output port(去掉输出寄存器),并且添加了一个rden读使能信号,所谓rden读使能信号就是,当该信号为高电平时,我们才可以读取RAM IP核中的数据。其余的页面我们使用默认设置即可,不要忘记勾选inst初始化模板文件。//该代码主要实现了先往RAM IP核中的0-31地址写入0-31数据,//每个地址对应一个数据,比如0地址对应0数据,1地址对应1数...原创 2018-11-26 16:23:28 · 15887 阅读 · 0 评论 -
verilog 基础篇 signal_tap 的使用
实验工具:锆石A4开发板软件:quartus 13.1Signal Tap 就相当于逻辑分析仪,signal Tap是利用FPGA的内部逻辑资源形成一个内部的逻辑分析仪有时候内部管脚还多于外部管脚,这个时候更没法测试使用流程//---------------------------------------------------------------------------//...原创 2018-11-22 22:27:23 · 3533 阅读 · 0 评论 -
基础篇-verilog-FPGA实现频率相位调制DDS信号
//此模块实现频率、相位可调的DDS信号输出//Fword越大,越快的的让高位的address+1,Fword取0,那么则需要很长很长的时间address才会+1//所以Fword相当于步进,步进越大,频率越快,步进越小,频率越小。//-------------------------------------------------------------------------------...原创 2018-11-03 22:52:50 · 10196 阅读 · 16 评论 -
基础篇-verilog-实现循环左移右移
//实现循环右移reg [7:0] shifter;always(posedge clk )beginshifter<={shifter[0],shifter[7:1]};end//解释:每一次都是把原来的最低位,往最高位搬移一次。//实现循环左移reg [7:0] shifter;always(posedge clk)beginshifter<={shifter...原创 2018-11-02 19:50:16 · 25101 阅读 · 2 评论 -
基础篇-verilog-按位与和逻辑与
//逻辑与wire [3:0] a=4’b0101;wire [3:0] b=4’b1110;c=a && b;//c=1逻辑与&&表示的是交集,2个条件同时成立,结果才为真wire [3:0] a=4’b0101;wire [3:0] b=4’b0000;c=a &&a原创 2018-11-02 20:18:44 · 56925 阅读 · 1 评论 -
独立于三大FPGA平台采用modelsim仿真
背景独立于三大FPGA平台进行仿真,可以加快仿真速度,所以,完全有必要掌握以下,而且,我很纳闷儿的事情是每次修改了verilog后,修改了TB后,都要重新启动modelsim,这一点也让验证仿真的过程变得十分慢,而且每次都要在modelsim中,我们才知道tb的语法是否正确,这一点也让我觉得挺烦的。所以本篇文章开始致力于解决这件头疼的事情。Modelsim对不同公司器件的后仿真后仿真又称之为...原创 2019-05-27 20:20:46 · 2773 阅读 · 0 评论