![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
仿真
快,快去救列宁!
布哈林是叛徒!
展开
-
利用QuartusII的LPM功能实现RAM的定制
我们知道,RAM是用来在程序运行中存放随机变量的数据空间,使用时可以利用QuartusII的LPM功能实现RAM的定制。 软件环境:QuartusII 11.0 操作系统:win7实现方法一、利用LPM_RAM:1.首先准备好存储器初始化文件,即.mif文件。 该文件的生成方法见《如何生成mif文件》; 本文预先生成了一个正弦波的数据文件,TEST1.mif,可以在...原创 2020-01-20 20:39:10 · 9431 阅读 · 0 评论 -
FPGA如何生成RAM或ROM中的数据mif文件
mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据。生成QuartusII11.0可用的mif文件,有如下几种方式:方法1:利用Quartus自带的mif编辑器优点:对于小容量RAM可以快速方便的完成mif文件的编辑工作,不需要第三方软件的编辑;缺点:一旦数据量过大,一个一个的输入会使人崩溃;使用方法:在quart...原创 2020-01-20 20:36:27 · 4136 阅读 · 0 评论 -
FPGA学习:理解阻塞赋值与非阻塞赋值
一、初步理解阻塞赋值与非阻塞赋值在Verilog HDL语言中,信号有两种赋值方式:(1).非阻塞(Non_Blocking)赋值方式( 如 b <= a; )块结束后才完成赋值操作。 b的值并不是立刻就改变的。 这是一种比较常用的赋值方法。(特别在编写可综合模块时)(2).阻塞(Blocking)赋值方式( 如 b = a; )赋值语句执行完后,块才结束。 b的值在...原创 2020-01-15 23:52:28 · 1452 阅读 · 0 评论 -
Altera-Modelsim RTL级仿真
下文介绍利用Altera-Modelsim来进行功能仿真的步骤quartus ii 版本:17.0altera-modelsim版本:ModelSim - Intel FPGA Starter Edition 10.5b (Quartus Prime 17.0)1、首先要设置altera-modelsim的执行路径,即指定altera-modelsim的安装路径,打开Quartusii...原创 2020-01-15 23:46:36 · 1798 阅读 · 0 评论 -
Modelsim进行RTL行为级仿真、综合后门级仿真(前仿真)和quartus时序仿真(后仿真)
一、RTL行为级仿真(前仿真) 在大部分设计中执行的第一个仿真将是RTL行为级仿真。这个阶段的仿真可以用来检查代码中的语法错误以及代码行为的正确性,其中不包括延时信息。如果没有实例化一些与器件相关的特殊底层元件的话,这个阶段的仿真也可以做到与器件无关。因此在设计的初期阶段不使用特殊底层元件即可以提高代码的可读性、可维护性,又可以提高仿真效率,且容易被重用。(绝大部分设计人员将这个阶段...原创 2020-01-14 00:25:55 · 4046 阅读 · 0 评论 -
FPGA学习:MODESIM与FPGA原理图联合仿真错误(VSIM 3033)
在QUARTUS中编译能够成功,Modelsim仿真时出现如下错误 :“erro: Instantiation of '***' failed. The design unit was not found"。原因:在Modelsim中只能新建HDL类的文件,而不能采用原理图输入的方式,即Modelsim不能识别”原理图输入“方式。解决方法:首先,将原理图文件怎么变成HDL文件,FILE->...原创 2020-01-11 00:49:41 · 3075 阅读 · 0 评论 -
FPGA学习:timescale简介
1.timescale的介绍timescale包含时间单位和时间精度两部分。设定格式为`timescale timeunit / timeprecisiontimeunit和timeprecision由值1、10、和100以及单位s、ms、us、ns、ps和fs组成。2.timescale对相对时间的影响如果设定`timescale 1ns/1ps,#100是相对时间,等价于#1...原创 2020-01-10 23:51:41 · 3485 阅读 · 0 评论 -
双口RAM乒乓操作
双口RAM经常用于跨时钟域处理,且比FIFO灵活性更大。本文给出一个具体的设计实例,让大家理解双口RAM在跨时钟域处理中乒乓操作的用法。输入数据速率20MHz,输出数据速率100Mhz,使用双口RAM完成跨时钟域处理。一次传输的数据为1024个,假设数据位宽为8bit,使用两片宽度为8、深度为1024的双口RAM完成数据传输。使用乒乓操作提高读写效率,写RAM1时,读取RAM2中的数据;写...原创 2020-01-02 23:19:33 · 2906 阅读 · 1 评论 -
FPGA之乒乓操作
1.乒乓操作原理 乒乓操作是一个主要用于数据流控制的处理技巧,典型的乒乓操作如图所示: 外部输入数据流通过“输入数据选择控制”模块送入两个数据缓冲区中,数据缓冲模块可以为任何存储模块,比较常用的存储单元为双口RAM(Dual RAM),SRAM,SDRAM,FIFO等。 在第1个缓冲周期,将输入的数据流缓存到“数据缓冲1”模块,在第2个缓冲周期,“输入数据选择...原创 2020-01-02 23:10:01 · 3347 阅读 · 0 评论 -
彻底弄懂乒乓操作与并行化
乒乓操作可以看做成另一种形式的流水线技术。乒乓缓存结构如下图所示。输入数据流通过输入数据选择单元时,时间等分地将数据流分配到两个数据缓冲模块。数据缓冲模块可以是RAM,FIFO等。通过将数据交替存放到数据缓冲模块1、数据缓冲模块2。并交替从数据缓冲模块1、数据缓冲模块2读取数据送入到数据流运算处理模块。工作过程如下: 第一段乒乓缓冲周期:将数据流缓存到数据缓冲模块1。...原创 2020-01-02 23:07:12 · 8552 阅读 · 0 评论 -
FPGA自学:周期方波上升沿产生短脉冲信号
问题:如何在低频率的周期信号产生一个短脉冲信号?1)首先利用时钟计数产生一个周期信号;2)其次利用计数器产生一个短脉冲信号。代码如下:module Adv(clk_5m,rst,clk_25hz,trigger);input clk_5m;input rst;output clk_25hz;output trigger;reg [17:0]cnt;reg clk_...原创 2020-01-02 22:04:40 · 2429 阅读 · 0 评论 -
FPGA自学:计数器
Verilog实现代码:module Counter(clk,en,rst,cnt_value);input clk;input rst;input en;output [3:0]cnt_value;reg [3:0]cnt;always @(posedge clk or negedge rst)if(!rst) cnt <= 4'd0;else if(en...原创 2019-12-27 22:20:23 · 458 阅读 · 0 评论