ModelSim+Synplify+Quartus的Altera_FPGA的仿真与验证

合集下载

FPGA的EDA软件设计流程

FPGA的EDA软件设计流程

对于初学者而言,FPGA的设计流程是否显的"又臭又长"呢?呵呵,如果真的有这样的感觉,没有关系,下面我就通过对软件的使用来了解FPGA的设计流程。

1)使用synplify pro对硬件描述语言编译并生成netlist综合前要注意对器件的选择,方法是在project->implementation option中对要下载的器件和网表的生成情况进行选择。

综合后的网表有两种:RTL级网表和门级网表(gate netlist),通过对网表的分析可以对设计的实现方式有初步的了解,并分析其中的错误和不合理的地方,另外还可以对关键路径的delay和slack进行分析。

使用synplify pro要先新建工程,注意修改工作目录,然后添加所要编译的文件,要注意top文件要最后一个添加,这样才可以保证生成的文件是以top文件来命名的2)使用modelsim进行功能仿真导入源程序和testbench进行仿真,并保存波形文件(.wlf)3)使用quartusⅡ根据netlist进行布线,并进行时序分析在使用quartusⅡ前要做一些必要的设置,在assignments->eda tools setting中的simulation中选择modelsim,并选择选项run this tools automatically after compilation。

如果没有提前做这些设置,可以quartus做完编译布线后,做同样的设置,然后运行EDA netlist writer和eda simulation tool在使用synplify pro得到满意的netlist后,可以在synplify pro中通过option-> quartusⅡ直接调用quartusⅡ,quartusⅡ对synplify pro生成的.vqm文件进行编译,布线。

然后根据设计要求进行时序分析和引脚调整。

4)使用modelsim进行布线后仿真由于quartusⅡ提前做了设置,因此在编译布线完成后,会在工作目录下生成modelsim仿真所需要的文件和库(modelsim_work),在modelsim中将产生的文件和库所在的文件夹设置为当前目录,modelsim_work库会自动导入,新建工程会提示所使用的modelsim.ini文件,应使用quartus生成的,然后导入文件(包括testbench),进行编译,仿真的时候在library中添加modelsim_work库,在sdf选项中可以添加quartus生成的延迟信息文件.sdo,注意作用域的选择,如果testbench中调用被测试模块的语句是send3a tb,那么作用域应该写tb,在option选择中可以选择是否看代码覆盖率。

fpga开发流程及工具链

fpga开发流程及工具链

fpga开发流程及工具链FPGA(Field-Programmable Gate Array)的开发流程包括设计、仿真、综合、布局布线和配置等几个步骤。

常用的工具链包括Vivado、Quartus Prime等。

开发流程如下:1. 设计:在HDL(硬件描述语言)中使用VHDL或Verilog等语言对FPGA的逻辑电路进行设计。

可以使用设计工具如Vivado或Quartus Prime进行设计,也可以使用其他常用的IDE(集成开发环境)进行开发。

2. 仿真:使用仿真工具对设计进行验证。

通过仿真可以提前检测设计中的错误,以保证FPGA系统的正确性。

常用的仿真工具有ModelSim、VCS等。

3. 综合:将设计转化为可实现的逻辑电路,并生成布局和布线所需的网表。

综合工具会将设计转换为FPGA可以理解和实现的硬件描述,并生成逻辑网表。

常用的综合工具包括Synplify、Xilinx ISE等。

4. 布局布线:将逻辑网表映射到FPGA芯片的具体物理位置,并进行信号线的布线。

布局布线工具会根据设计的物理约束,将逻辑电路映射为FPGA芯片上的实际连线。

常用的布局布线工具有PAR(Place and Route)等。

5. 配置:将生成的bit文件(二进制配置文件)下载到FPGA芯片中,使其按照设计的功能进行配置和工作。

配置工具一般由FPGA厂商提供,如Xilinx的Vivado、Altera的Quartus Prime等工具。

常用的工具链有:1. Xilinx Vivado:Xilinx公司推出的综合工具和开发环境,用于设计、仿真和配置Xilinx FPGA芯片。

2. Altera Quartus Prime:Altera公司(现为Intel)的FPGA开发工具,支持设计、仿真、综合和布局布线等。

3. ModelSim:Mentor Graphics公司的一款通用的数字电路仿真工具,可用于FPGA开发中的设计验证。

用ModelSimSE进行功能仿真和时序仿真的方法(ALTERA篇)

用ModelSimSE进行功能仿真和时序仿真的方法(ALTERA篇)

用ModelSimSE进行 功能仿真和时序仿真的方法 (ALTERA篇)黄俊April 2007用ModelSim SE进行功能仿真和时序仿真的方法 (ALTERA篇)软件准备(1) QuartusII,本文截图是QuartusII 6.1界面的。

我个人认为,如果是开发StratixII或CycloneII或MAXII,用QuartusII6.0+SP1+SP2比较稳定。

(2) ModelSim SE. ALTERA仿真库要已经装好,安装仿真库的笔记已记录于《在ModelSimSE中添加ALTERA仿真库的详细步骤》中。

我电脑上装的是ModelSim SE6.1b。

例子程序的制作先在Quartus II里生成一个例子程序,以方便介绍三种仿真的方法。

步骤如下:1、新建一个工程(Project),工程名取lpm_shift, 器件选CycloneII EP2C5Q208C, 第三方的工具暂时都不选。

2、菜单栏上ToolsÆMegaWizard Plug-In Manager, 点Next,在storage中选LPM_SHIFTREG,输出文件格式根据习惯选一种语言,在这里以Verilog的为例,在右边的output file名字中加上lpm_shift。

点Next。

3、这个例子是做一个移位寄存器,调用lpm库,和cycloneII元件库,也正好可以作为对前面建好的ALTERA库的一个验证。

点可以查到该模块的使用说明和详细介绍。

移位寄存器比较简单,就不用细看了。

如下图设置.点Next.4、加上一个异步清零端,点Next,再点Next,最后点Finish.Add/Remove Files in Project…,6、点图标,选中生成的lpm_shift,点打开再点Add都加到项目中去。

7、在这里直接把lpm_shift.v当成顶层文件,就不需要再例化它了。

8、下面写一个简单的TestBench.a)Quartus II工具栏上点图标,选Verilog HDL;b)点,设文件名为top_tb;c)如下所述写一个简单的TestBench.(例子见附件)开始仿真z ModelSim仿真有很多种流程,下面我采用个人感觉比较好一个流程进行仿真验证:基于工程(Project)的流程Step1 新建一个工程Step2 添加文件到工程中去Step3 编译设计文件Step4 启动仿真器,指定顶层设计单元Step5 查看和调试结果z对的设计有三个阶段的仿真。

ModelSim中Altera仿真库的添加

ModelSim中Altera仿真库的添加

ModelSim中Altera仿真库的添加最近,做一个IP核的调试,但是里面调用了Altera的syncram,这样ModelSim就不能直接进行仿真,而QuartusII又不支持Tesbbench的仿真,所以为了在ModelSim中仿真就必须将Altera的这些仿真库添加到ModelSim中。

通常,在ModelSim中进行仿真需要加入Quartus提供的仿真库,原因是下面三个方面:·Quartus不支持Testbench;·调用了megafunction或者lpm库之类的Altera的函数;·时序仿真要在Modelsim下做仿真。

下面以Altera器件为例,介绍如何在ModelSim中加入Altera的仿真库,Quartus II软件中自带有Altera的仿真库,只要把它拿到ModelSim中去编译一下就可以了,具体步骤如下:1.设置仿真库路径打开ModelSim安装目录(我用的是ModelSim SE 6.2版本,安装在D:\ModelSim\Installfiles目录下),新建文件夹altera,我们就在该目录下存放预编译的各种Altera库。

启动ModelSim SE 6.2,在主窗口执行【File】/【Change Directory】命令将路径转到altera文件夹。

或在命令行中执行cd D:/ModelSim/Installfiles/altera。

2.新建库Quartus II中提供的仿真库文件存放的路径是...\altera\80\quartus\eda\sim_lib,每个库文件提供了两种形式:.v(Verilog)格式和.vhd(VHDL)格式两种,根据你所用的语言选择使用。

用于编译资源库的文件有220model.v,220model.vhd,220pack.vhd,altera_mf.v,altera_mf.vhd,altera_mf_components.vhd,altera_primitives.v,altera_primitives.vhd,altera_primitives_components.vhd文件。

quartus第三方工具的使用

quartus第三方工具的使用

QuartusII7.1(SP1)中第三方软件的使用从QuartusII7.1开始支持Node-Locked License的第三方综合器直接从Quartus中调用,因此,使用第三方软件更加方便了。

下面举例说明如何直接从Quartus中直接调用第三方的综合器和仿真器进行综合与仿真。

综合器以Synplify为例,仿真器以Modelsim为例。

例中Quartus采用7.1SP1,安装在d:\altera;Synplify版本是Synplify 8.6.2,安装在d:\Synplicity; Modelsim版本是ModelSim SE 6.2e安装在d:\Modeltech_6.2e1、第三方软件路径的设置:a、在Tools->Options->General->EDA Tools Options中设置Synplify和Modelsim的安装路经。

b、同时要选中Enable NativeLink for Synplify/ Synplify Pro with a node-locked license。

这一点非常重要,如果不选的话,就无法直接从Quartus中直接调用Synplify进行综合。

2、对于新建工程,要让它用第三方软件进行综合和仿真可采用如下步骤:a、File->New Project Wizard点Next进行下一步。

b、设置工程路径,完成后点Next进行下一步。

c、如果己有源程序,可以在此加入到工程中,如果没有选Next进行下一步。

d、选择器件e、设置第三方工具,EDA design entry/synthesis tool选Synplify,选中Run this toolautomatically to synthesize the current design;EDA simulation tool选Modelsim;如果让Quartus在综合、适配后自动调用Modelsim进行门级时序仿真可以选中Run Gate Level Simulation automatically after compilation,点Next进行下一步。

quartus与modelsim联合仿真步骤总结自己

quartus与modelsim联合仿真步骤总结自己

1.首先安装好quartus和modelsim2.复制altera quartus eda sim_lib 中对应芯片的.v文件到modelsim文件夹内3.打开quartus新建工程在第四步eda tool setting 中simulation选项中选择modelsim 语言默认为veillog 后面不打勾4.assignments settings eda stimulation工具选择modelsim 路径选择modelsim安装的路径写到win32这一步点击确定至此准备工作全部完成5.写veillog 程序然后保存编译编译后会在我们的工程目录下生成simulation文件夹,里面又有一个modelsim文件夹。

6.创建或者是编写testbench引导文件简单的可以创建复杂的需要自己编写quartus自己创建不了这是一个端口引导文件目的是建立modelsim和quartus之间的桥梁能够让modelsim创建出我们需要的与quartus中相匹配的端口并且执行相同的功能这些功能执行信息都存放在了testbench引导文件当中7.创建testbench文件过程:Processing->Start->Start Test Bench Template Write这时创建的testbench文件存放在4中所说的modelsim文件夹中以.vt为后缀名以工程名命名8.添加该文件:Assignments->EDA Tool Settings选择Simulation设置仿真环境在NativeLink settings中选择Compile test bench并点击后面的Test Benches 在Test Benches中点击New设置Test Bench属性在Test bench entity栏一定要填写刚刚我们创建的testbench文件的实体名即module top_vlg_tst();中的top_vlg_tst。

在quartusII中用modelsim-altera仿真

在quartusII中用modelsim-altera仿真

在quartusII中用modelsim_altera做功能仿真1.设置modelsim_altera的执行路径(即其安装路径中的可执行文件的路径)(1)Tool→Options(2)打开如下图:(3)选择general →EDA Tool Options,在右侧的窗口中选择Modelsim_Altera,在Location of Executable中单击,用浏览的方式找到该软件的安装路径中的可执行文件路径,单击确定。

到此仿真软件的设置基本完成了。

2.项目仿真当我们建立一个新的项目时是需要对其中代码进行仿真的,整个过程需要三步:2.1首先,要预先设置仿真软件;下面介绍如何预设仿真软件。

1.Assignments→Settings…2.打开如下界面3选择“Simulation”,右侧设置按上图设置。

2.2其次,仿真之前需要编写测试平台,测试平台有两种的方法:●直接建立XX.v文件●在quartusII中自动生成测试平台模板文件,文件为XX.vt文件下面介绍如何自动生成测试平台模板文件。

1.Processing→Start→Start Test Bench Template Writer注意:要生成testbench模板的前提条件是为项目选择预用的仿真软件,然后模块必须编译成功。

Testbench模板生成后的默认路径为:项目目录\simulation\modelsim\项目名.vt(因为刚才在预设置仿真软件时的“Output Directory”选择的是默认的值simulation\modelsim)。

2.对于自动生成的测试平台模版需要打开修改测试激励信号,这里不做介绍,很简单的。

2.3改写完后要在项目里添加测试平台文件到项目里。

1.Assignments→Settings…2.在打开界面做如下操作:(1)选择“Compile test bench”,然后单击“Test Benches…”(2)打开下面的窗口(3)单击“New”打开下面的窗口,且按图中填写相关信息这个窗口是用来输入testbench的资料和选择testbench的路径的。

《数字信号处理的FPGA实现》读书笔记

《数字信号处理的FPGA实现》读书笔记

<数字信号处理的FPGA实现>Verilog写状态机大概有这样几点要求:1、组合逻辑完成状态转移的条件判断,时序逻辑完成状态机的状态转移。

2、组合逻辑和时序逻辑分别在两个不同的always块中完成,根据状态机状态通过译码逻辑产生的与状态机无关的逻辑部分不要放在专用的状态机always块中。

3、状态编码预先定义为parameter,状态较少的状态机推荐使用one-hot方式编码,以减小译码逻辑的复杂度,提高性能。

4、建议单独使用一个模块来描述状态机。

5、状态机应有一个default状态,在上电复位的时候作为初始状态。

6、注意状态机组合逻辑中的if...else语句,不要出现latch。

7、对于复杂状态机,最好采用状态机嵌套方式完成。

其实上面很多都是按照Synopsys LEDA的coding style的要求的,状态机的写法相对固定,因此很多Design entry的工具可以自动生成状态机代码,Xilinx也有工具支持直接由状态转移图输入完成状态机的编码。

所以关键还是画好状态转移图,其他就相对简单了。

visual hdl+ISE+synplify Pro+modelsim!1.设计输入1)设计的行为或结构描述。

2)典型文本输入工具有UltraEdit-32和Editplus.exe.。

3)典型图形化输入工具-Mentor的Renoir。

4)我认为UltraEdit-32最佳。

2.代码调试1)对设计输入的文件做代码调试,语法检查。

2)典型工具为Debussy。

3.前仿真1)功能仿真2)验证逻辑模型(没有使用时间延迟)。

3)典型工具有Mentor公司的ModelSim、Synopsys公司的VCS和VSS、Aldec公司的Active、Cadense公司的NC。

4)我认为做功能仿真Synopsys公司的VCS和VSS速度最快,并且调试器最好用,Mentor 公司的ModelSim对于读写文件速度最快,波形窗口比较好用。

FPGA核心知识详解(3):那些让FPGA初学者纠结的仿真

FPGA核心知识详解(3):那些让FPGA初学者纠结的仿真

FPGA核心知识详解(3):那些让FPGA初学者纠结的仿真核心提示:对于FPGA初学者而言,如何正确了解并理解FPGA的仿真是关键。

应广大FPGA初学者和爱好者要求,编辑根据多名在FPGA领域有过多年工作经验的前辈介绍,特此为大家整理并分享以下关于FPGA各种仿真的简洁介绍。

若大家有任何需要补充的或本文有任何不当之处,欢迎在评论中加以说明。

同时也可加入FPGA技术交流群(QQ:263281510)跟大家一起探讨,更欢迎大家加入论坛参与互动。

初学者学习FPGA,必定会被它的各种仿真弄的晕头转向。

比如,前仿真、后仿真、功能仿真、时序仿真、行为级仿真、RTL级仿真、综合后仿真、门级仿真、布局布线后仿真等。

Quartus和Modelsim软件的仿真形式Quartus II有两种仿真形式:1、功能仿真;2、时序仿真。

Quartus II调用Modelsim的两种仿真形式为:1、RTL级仿真;2、Gate-level仿真。

以下内容均经过资料查证,详细如下:理解方法一当用quartus进行仿真时,分为功能仿真(al)和时序仿真(TIming);当用Modelsim-Altera时,分为功能仿真(RTL)、综合后仿真(post-synthesis)和布局布线仿真(Gate-level)。

其中,功能仿真又称为前仿真,布局布线仿真又称为后仿真。

注:此处的功能仿真(RTL)与1中的功能仿真(al)是不一样的,前者是HDL级仿真,后者是门级网表的功能仿真。

(1)当在quartus中调用Modelsim-Altera进行RTL仿真时(前提是在第三方仿真工具中选择Modelsim-Altera),步骤如下:a)编写源文件和测试文件;b)Assignment-》setTIng-》simulaTIon-》不选中run gate leve simulaTIon.。

..。

,选中nativelink-》添加测试文件,填写文件名;c)start analysiselabration;。

ModelSim-Altera使用方法

ModelSim-Altera使用方法

ModelSim-Altera使用方法平台软件:ModelSim-Altera 6.5e (Quartus II 10.0) Starter Edition 内容1 设计流程使用ModelSim仿真的基本流程为:图1.1 使用ModelSim仿真的基本流程2 开始2.1 新建工程打开ModelSim后,其画面如图2.1所示。

图2.1 ModelSim画面1. 选择File>New>Preject创建一个新工程。

打开的Create Project对话框窗口,可以指定工程的名称、路径和缺省库名称。

一般情况下,设定Default Library Name 为work。

指定的名称用于创建一个位于工程文件夹内的工作库子文件夹。

该对话框如图2. 2所示,此外还允许通过选择.ini文件来映射库设置,或者将其直接拷贝至工程中。

图2.2 创建工程的对话框2. 按照图2.3所示,设置Project Name为LED_FLOW,Project Location为D: /led_flow。

图2.3 输入工程信息当单击OK按钮后,在主体窗口的下方将出现Project标签,如图2.4所示。

图2.4 Project标签3. 之后,将出现Add Items to the Project的对话框,如图2.5所示。

图2.5 在工程中,添加新项目2.2 在工程中,添加新项目在Add Items to the Project对话框中,包括以下选项:Create New File——使用源文件编辑器创建一个新的Verilog、VHDL、TCL 或文本文件Add Existing File——添加一个已存在的文件Create Simulation——创建指定源文件和仿真选项的仿真配置Create New Folder——创建一个新的组织文件夹1. 单击Create New File。

打开图2.6所示窗口。

图2.6 创建工程文件夹2. 输入文件名称:LED_FLOW,然后选择文件类型为Verilog。

模电数电题面试题集锦

模电数电题面试题集锦

模拟电路知识1、基尔霍夫定理的内容是什么?基尔霍夫定律包含电流定律和电压定律电流定律:在集总电路中,任何时辰,对任一节点,所有流出节点的支路电流的代数和恒等于零。

电压定律:在集总电路中,任何时辰,沿任一回路,所有支路电压的代数和恒等于零。

2、描绘反应电路的观点,列举他们的应用。

反应,就是在电子系统中,把输出回路中的电量输入到输入回路中去。

反应的种类有:电压串连负反应、电流串连负反应、电压并联负反应、电流并联负反应。

负反应的长处:降低放大器的增益敏捷度,改变输入电阻和输出电阻,改良放大器的线性和非线性失真,有效地扩展放大器的通频带,自动调理作用。

电压负反应的特色:电路的输出电压趋势于保持恒定。

电流负反应的特色:电路的输出电流趋势于保持恒定。

3、有源滤波器和无源滤波器的差别无源滤波器:这种电路主要有无源元件R、L 和 C构成有源滤波器:集成运放和R、C构成,拥有不用电感、体积小、重量轻等长处。

集成运放的开环电压增益和输入阻抗均很高,输出电阻小,构成有源滤波电路后还拥有一定的电压放大缓和冲作用。

但集成运放带宽有限,因此当前的有源滤波电路的工作频次难以做得很高。

6、FPGA和 ASIC 的观点,他们的差别。

(未知)答案: FPGA是可编程 ASIC。

??ASIC: 专用集成电路,它是面向特意用途的电路,特意为一个用户设计和制造的。

依据一个用户的特定要求,能以低研制成本,短、交货周期供货的全定制,半定制集成电路。

与门阵列等其余ASIC(Application Specific IC)对比,它们又拥有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳固以及可及时在线查验等长处。

7、什么叫做 OTP片、掩膜片,二者的差别安在?OTP means one time program ,一次性编程MTP means multi time program,多次性编程OTP( One Time Program)是 MCU的一种储存器种类MCU按其储存器种类可分为MASK(掩模 )ROM、OTP(一次性可编程 )ROM、FLASHROM等种类。

FPGA设计流程111

FPGA设计流程111

基于多种 EDA工具的FPGA设计流程FPGA的完整设计流程,其中包括电路设计与输入、功能仿真、综合优化、综合后仿真、实现与布局布线、时序仿真、板级仿真与脸证、调试与加载配置等主要步珠。

并通过一个8-bit RISC CPU的设计来例系统地介绍了利用多种EDA工具进行 FPGA协同设计的实现原理及方法近年来,随着微电子学的迅速发展以及SoC(System on Chip,片上系统)技术在设计领域引起的深刻变革,EDA(Electornic Design Automatic,电子设计自动化)工具在系统设计中的地位愈发重要。

特别是20世纪90年代后,电子系统已经由电路板级发展为ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Porgrammable Gate Array,现场可编程门阵列)以及嵌人式系统等多种模式,其中FPGA设计正是当前数字系统设计领域中的重要方式之一。

本文以Altera公司的FPGA为目标器件,通过一个8-bit RISC CPU的设计实例,系统地介绍了FPGA的完整设计流程以及开发过程中用到的多种EDA工具,包括Modelsim,Synplify,QuatrusII,并重点说明如何使用这些EDA工具进行协同设计。

1.FPGA的设计流程一般来说,完整的FPGA设计流程包括电路设计与输人、功能仿真、综合优化、综合后仿真、实现与布局布线、时序仿真、板级仿真与验证、调试与加载配置等主要步骤,如图1所示。

电路设计与输人是指通过某些规范的描述方式,将工程师的电路构思输人给EDA工具,常用的设计方法有HDL(Hardwaer Description Language,硬件描述语言)设计输人法与原理图设计输人法。

目前进行大型工程设计时,最常用的设计方法是HDL设计输人法,它利于自顶向下设计以及模块的划分与复用,可移植性和通用性好,设计不因芯片的工艺与结构的不同而变化,更利于向ASIC移植。

用quartusII再带的modelsim进行后仿真(时序仿真)的操作步骤

用quartusII再带的modelsim进行后仿真(时序仿真)的操作步骤

⽤quartusII再带的modelsim进⾏后仿真(时序仿真)的操作步

在实际的项⽬⼯程中,基本上都是在Modelsim进⾏功能仿真后,直接进⾏板级调试(⽤signaltap调试),但是中规中矩的后仿真也不能不会。

操作步骤如下:
1.将quartus II与其⾃带的Modelsim-Altera进⾏关联,quartus II软件中【Tools】--->【Options】,按图1进⾏操作
图1
2.在quartus II软件中进⾏全编译,这时会在⼯程⽂件夹产⽣“simulation”⽂件夹,打开并接着打开“modelsim⽂件夹”,这时⾥⾯会出现10个⽂件,其中“.vo”和“.sdo”是时序仿真需要的⽂件,将他们粘贴到modelsim的⼯程⽂件夹中。

图2
图3
3.接下来还需要Altera的器件库
其中Altera的器件库⽂件在:D:\altera\13.0sp1\modelsim_ase\altera\verilog\altera
D:\altera\13.0sp1\modelsim_ase\altera\verilog\cycloneive
图4
4.将testbench⽂件和“.vo”⽂件加到⼯程上,然后编译,然后右键选择【Add to project】-->【Simulation Configuration】,选择【Work】中的"xxx_tb"⽂件,然后选择【Libraries】中加载刚在粘贴的2个Altera器件库,然后在【SDF】中加载刚才粘贴的“xx.sdo”⽂件,然后点【Save】,最后点击“Simulation”即可进⾏时序仿真。

如图5 、6、7所⽰:
图5
图6
图7 。

quartus编译modelsim

quartus编译modelsim

Quartus是由Altera公司(后来被Intel收购)开发的一款集成电路设计软件。

它被广泛应用于FPGA(现场可编程门阵列)的设计和编译,可以帮助工程师和设计师在设计过程中完成逻辑综合、布线和仿真等工作。

而ModelSim则是一款由Mentor Graphics公司开发的仿真工具,可用于对数字电路进行仿真和验证。

在使用Quartus进行FPGA设计时,通常需要进行逻辑设计、综合和布线等步骤,最终生成一个.bit文件或者.jic文件,用于下载到目标FPGA芯片中。

而在设计完成后,为了验证设计的正确性和功能性,我们可以使用ModelSim进行仿真,检查设计的电路在不同输入条件下的行为和输出情况。

下面将介绍在使用Quartus编译后如何在ModelSim中进行仿真:1. 导出仿真文件在Quartus中进行设计和编译完成后,需要导出相关的仿真文件。

这些文件通常包括原始的.verilog文件、综合后的.v文件、以及测试文件等。

在Quartus中可以通过设置来指定导出哪些文件,通常是选择“Generate Testbench Template”。

2. 创建仿真项目打开ModelSim软件,在界面中选择“File” -> “New” -> “Project”来创建一个新的仿真项目。

在弹出的对话框中选择项目的名称和存储路径,并设置好仿真项目的工作目录和文件夹结构。

3. 添加设计文件在ModelSim中,需要将Quartus导出的设计文件添加到仿真项目中。

可以通过选择“Project” -> “Add To Project”来添加.verilog文件、.v文件等到项目中。

4. 编写测试文件在ModelSim中需要编写测试文件来对设计的电路进行仿真。

测试文件通常是根据设计的输入和输出端口来编写,通过在时钟信号和输入值上进行控制,来验证设计的正确性和功能性。

5. 编译和运行仿真在ModelSim中,可以通过选择“Compile” -> “Compile All”来对设计文件和测试文件进行编译。

FPGA的三种EDA工具解析

FPGA的三种EDA工具解析

FPGA的三种EDA工具解析-----------------------作者:-----------------------日期:多种EDA工具的FPGA协同设计前言FPGA在电子市场上占有举足轻重的地位。

现在的问题是:现在市场在FPGA开发方面的EDA工具令人眼花缭乱,各自侧重点不同,性能也不一样,我们应该如何选择?为了加速FPGA的开发,选择并协调好各种EDA工具显得非常重要,本文将探讨上述问题并给出一种解决方案。

本文以Altera公司的FPGA为目标器件,通过开发实例介绍FPGA开发的完整的流程及开发过程中使用到的开发工具,包括QuartusII、FPGA CompilerII、Modelsim,并重点解说如何使用这三个工具进行协同设计。

二、FPGA的开发流程及实例FPGA的开发分为设计输入、功能仿真、设计综合、前仿真、布局布线、时序仿真、时序分析和编程下载几个步骤。

设计流程如图1所示。

我们的开发实例是“带顺序选择和奇偶检验的串并数据转换接口”。

接口电路可以实现数据的串并转换,并根据控制信号确定输出的并行数据的顺序,以及输出奇偶检验位。

开发实例是用来说明FPGA的开发流程和各种EDA工具的协同设计,因此这里的描述重点并在设计本身。

开发实例使用的目标器件是Altera公司FLEX10KE系列的EPF10K30ETC114-1;开发软件有QuartusII2.0、FPGA CompilerII 3.6和Modelsim5.6SE。

Quartus II是Altera公司的第四代可编程逻辑器件集成开发环境,提供从设计输入到器件编程的全部功能。

Quartus II可以产生并识别EDIF网表文件、VHDL网表文件和Verilog HDL网表文件,为其它EDA工具提供了方便的接口;可以在Quartus II集成环境中自动运行其它EDA工具。

Mentor Graphics公司的Modelsim是业界较好的仿真工具,其仿真功能强大,且图形化界面友好,而且具有结构、信号、波形、进程、数据流等窗口。

Quartus 中设置modelsim 仿真

Quartus 中设置modelsim 仿真

目录Quartus中设置modelsim仿真 (1)一、运行环境 (1)2.1、在Quartus中设置仿真环境 (1)2.2在Quartus中设置仿真参数 (3)2.3仿真 (5)Quartus中设置modelsim仿真一、运行环境1.1软件环境:Quartus V11.1Modelsim10.0.Cwindows7.01.2硬件环境芯片:MAXII EPM1270T144二、设置过程2.1、在Quartus中设置仿真环境点上图中的【Launch Simulation Library Compiler】,处在上图中我们按数字顺序设置:①仿真工具路径及我们安装的modelsim的路径,记住是modelsim.exe所在文件位置。

②选择我们要使用的仿真库,我们现在用的是maxII系列的,所以选择它,如你还要其它的,可以自己选择③选择仿真语言,你用verilog编写的测选择verilog④设置编译后的输处路径⑤选择是否将设置加到工程中设置好后点【StartCompilation】开始编译编译完成后会出现以下窗口点OK后,我们会看到一些信息如上的信息则表示没有问题2.2在Quartus中设置仿真参数回到主窗口,按下图中步骤打开设置窗口设置窗口如下,在category中点【EDA Tool Settings】中的【Simulation】按上图中的,先选择Tool Name再一步一步设置设置完1,2,3步后开始设置第4步,设置quartus与modelsim的链接按下图操作先选择Compile test bench,再点击【Test benches】按钮,打开设置窗口按上图1、2、3、4设置好后,开始添加仿真驱动文件(此驱动文件就是modelsim仿真文件了,要自己编写,但不需要加到工程中。

我写的是一个sim.v文件,sim.v中的模块名也为sim.2.3仿真做完以上操作就可以进行仿真了仿真前先编译一下工程文件,如没有任何问题则可以进行以下操作点击仿真按钮后,Quartus就会自动调用modelsim了。

荐)ModelSim SE仿真Altera库的一些问题 常见仿真错误 问题 合集

荐)ModelSim SE仿真Altera库的一些问题 常见仿真错误 问题 合集

荐)ModelSim SE仿真Altera库的一些问题常见仿真错误问题合集1. modelsim怎么调用altera的库仿真啊?(megafunctions)以前有个帖子说把quartus安装目录下的sim文件夹里面的文件编译进modelsim里面就可以了,可是sim文件夹里面我要的那个函数不是.v文件啊,还有他里面的一些.vhd文件怎么编译错误啊?是eda/sim_lib里,编译错误,我想是你编译的顺序不对用EDA/SIM_LIB中文件直接放到PROJECT中,你需要看看它的告错信息。

一般是缺库。

你可以按提示缺的库,在FILE/NEW/LIBRARY菜单里创建一个映射到WORK的库。

这样一般就好了。

如何在modelsim里如altera的库中做后仿真啊,急死了我用synplify综合后,用modelsim做后仿真,我在modelsim里面加入了C:quartusedasim_libmodelsimvhdl里面的两个库,但是编译的时候还是提示我找不到library apex20k。

还要加什么库啊???郁闷死了vlib apex20kvmap apex20k apex20kvcom -work apex20k c:/quartus/eda/sim_lib/apex20k_atoms.vhdvcom -work apex20k c:/quartus/eda/sim_lib/apex20k_components.vhd谢谢i8086,我现在知道怎么加入altera的库了,但是错误依然在,不知道是什么原因,modelsim里面的提示如下:vcom -reportprogress 300 -work work {D:/caiyang/rev_1/caiyang_1.vhd}# Model Technology ModelSim SE vcom 5.7e Compiler 2003.07 Jul 8 2003# -- Loading package standard# ** Error: (vcom-19) Failed to access library 'acex2k' at "acex2k".# No such file or directory. (errno = ENOENT)# ** Error: D:/caiyang/rev_1/caiyang_1.vhd(7): Library acex2k not found.# -- Loading package std_logic_1164# -- Loading package numeric_std# -- Loading package components# ** Error: D:/caiyang/rev_1/caiyang_1.vhd(12): Unknown identifier: acex2k# ** Error: D:/caiyang/rev_1/caiyang_1.vhd(14): VHDL Compiler exitinglibrary ieee, acex2k;use ieee.std_logic_1164.all;use ieee.numeric_std.all;library synplify;use ponents.all;use acex2k.acex2k_components.all;~~~~~~~~~~~~~~~就是提示找不到这个东西,这是用synplify综合后的文件的前面几行代码。

ModelsimSE和QuartusII编译器(综合器)的区别

ModelsimSE和QuartusII编译器(综合器)的区别

ModelsimSE和QuartusII编译器(综合器)的区别当对⽬标模块进⾏RTL描述后,习惯先会⽤Modelsim做⼀下功能仿真。

当我们写好Tensbench⽂件,直接在Modelsim SE中对源⽂件
(design和Testbench)进⾏编译时,如果源⽂件中存在相应的语法错误或者逻辑错误,⼀般都会提⽰错误⼤概存在于哪⼀⾏,我们找到对应的⾏修改代码就⾏了。

但是对于有些错误,⽐如语句中误输⼊了中⽂字符(像中⽂空格),Modelsim编译器只是提⽰出错,但是不提⽰错误所在的⾏数,这样就不利于我们查错。

后来我重新在Quartus II中对源⽂件进⾏编译,此时不仅可以提⽰出错,还可以显⽰错误所在的⾏数,然后删除修改错误⾏所在的代码,再把代码拿到Modelsim SE中编译就通过了。

所以通过这个实例,可以看出在编译源⽂件(Verilog/VHDL)时,Quartus II的功能还是更加强⼤⼀下。

所以我建议,以后在做前仿真之前,让源⽂件在Quartus II中编译通过之后,再拿到Modelsim中做编译,再仿真。

quartus第三方工具的使用

quartus第三方工具的使用

QuartusII7.1(SP1)中第三方软件的使用从QuartusII7.1开始支持Node-Locked License的第三方综合器直接从Quartus中调用,因此,使用第三方软件更加方便了。

下面举例说明如何直接从Quartus中直接调用第三方的综合器和仿真器进行综合与仿真。

综合器以Synplify为例,仿真器以Modelsim为例。

例中Quartus采用7.1SP1,安装在d:\altera;Synplify版本是Synplify 8.6.2,安装在d:\Synplicity; Modelsim版本是ModelSim SE 6.2e安装在d:\Modeltech_6.2e1、第三方软件路径的设置:a、在Tools->Options->General->EDA Tools Options中设置Synplify和Modelsim的安装路经。

b、同时要选中Enable NativeLink for Synplify/ Synplify Pro with a node-locked license。

这一点非常重要,如果不选的话,就无法直接从Quartus中直接调用Synplify进行综合。

2、对于新建工程,要让它用第三方软件进行综合和仿真可采用如下步骤:a、File->New Project Wizard点Next进行下一步。

b、设置工程路径,完成后点Next进行下一步。

c、如果己有源程序,可以在此加入到工程中,如果没有选Next进行下一步。

d、选择器件e、设置第三方工具,EDA design entry/synthesis tool选Synplify,选中Run this toolautomatically to synthesize the current design;EDA simulation tool选Modelsim;如果让Quartus在综合、适配后自动调用Modelsim进行门级时序仿真可以选中Run Gate Level Simulation automatically after compilation,点Next进行下一步。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ModelSim+Synplify+Quartus的Altera FPGA的
作者:chenhongyi
软件要求:ModelSimSE、Synplify Pro、Quartus II
适用人群:初学者
源 代 码:mux4_to_1.v
工作内容:
1、设计一个多路选择器,利用ModelSimSE做功能仿真;
2、利用Synplify Pro进行综合,生成xxx.vqm文件;
3、利用Quartus II导入xxx.vqm进行自动布局布线,并生成xxx.vo(Verilog
4、利用ModelSimSE做后仿真,看是否满足要求。

注:
1. 仿真器(Simulator)是用来仿真电路的波形。

2. 综合工具(Synthesizer)的功能是将HDL转换成由电路所组成的Netlist。

3. 一般而言,在电路设计的仿真上可分为Pre‐Sim 和Post‐Sim。

Pre‐Sim 是针而Post‐Sim则是针对综合过且做完成了Auto Place and Route(APR)的电路进行仿真,以确保所设计的电路实现在FPGA上时,与Pre‐Sim 的功能一样。

1、前仿真(Pre‐Sim)
步骤一:打开ModelSimSE,然后建立一个Project;
※建立Project的方式为点选File → New → Project…;
※设定Project Name 与Project location,按OK 即可建立Project。

步骤二:新增设计文档或加入文档。

※新增文档的方式为点选File → New → Source → Verilog,然后对文档进行编辑并储存为xxx.v;
※ 加入文档的方式为点选File → Add to Project → File...,然后点选xxx.v;
步骤三:编译(Compile)。

※编译文档的方式为点选Compile → Compile All,即可编译所有的文档。

※如果编译时发生错误,在显示错误的地方(红字)点两下,即可跳到错误。

步骤四:新增或加入测试平台(Testbench)。

※当设计完电路后,为了确定所设计的电路是否符合要求,我们会写一个测 试平台(Testbench);
※ 新增或加入测试平台,然后编译它。

步骤五:仿真(Simulate)。

※仿真的方式为点选Simulate → Simulate…;
※打开Design里面的work,然后点选mux_4_to_1_tb 并Add 它,最后按Load 即可跳到仿
真窗口。

步骤六:加入信号线。

※ 在窗口上按右键,然后点选Add → Add to Wave;
步骤七:看波形。

※在工具列上按Run,然后就会显示波形;
※慢慢看波形吧,没有波形就没有真相!
以上就是使用ModelSim做Pre‐Sim的基本流程,在此要特别强调的是,ModelSim所有的功能并不仅仅于此,如果你想要了解更多的话,一切都要靠自己花时间去问去试,只有努力的人才能有丰富的收获,加油!
2、综合(Synthesis)
步骤一:打开Synplify Pro,然后建立一个Project。

※先点选File,再点选New;
※选择Project File,并设定File Name与File Location;
步骤二:加入设计文件。

※ 点选欲加入的xxx.v,然后按Add,再按OK后就可以将档案加入。

步骤三:选择FPGA的Device 与其它相关设定。

※先点选Project,再点选Implementation Options。

※在Device 的设定如下:Technology为Altera Stratix,Part为EP1S10,Speed 为‐6,Package 为FC780。

※在Options 的设定是将FSM Compiler与Resource Sharing打勾。

※在Constraints的设定是将Frequency设定至100Mhz。

※在Implementation Results的设定是将Result File Name填入与电路模块相同的名称,而xxx.vgm这个文件会在QuartusII做APR时被使用。

然后将下列两个选项打勾(Write Vendor Constraint File与Write Mapped Verilog Netlist)。

※在Timing Report的设定是将Number of Critical Paths与Number of Start/End Points都设为11。

※在Verilog里是将TOP Level Module填入与电路模块相同的名称,然后将 Use Verilog 2001打勾。

步骤四:综合(Synthesis)。

※点选RUN → Synthesize,最后出现Done!就是已经综合完毕。

步骤五:检查综合后的电路。

※先点选HDL Analyst,再点选RTL,最后点选Hierarchal View,画面会出现综合后的电路Netlist。

以上就是使用Synplify将HDL程序合成为电路Netlist的基本流程,值得注意的是,当你针对不同要求而设定的Constraints不同时,你就会得到不同的电路Netlist,所要付出的硬件代价也不同,这就需要大家多花点心思来了解其中的奥妙之处。

3、自动布局布线(APR)
步骤一:开启Quartus II,然后建立一个Project。

※先点选File,再点选New Project Wizard…。

※设定Work Directory,Project Name与Top-Level Entity Name,再按Next。

步骤二:加入设计文件。

※点选Add…,将Synplify合成出来的xxx.vqm加入,再按Next。

步骤三:设定相关的EDA Tools。

※在Tool Type点选Simulation,Tool Name点选ModelSim。

※点选Settings,将Time Scale设定为1 ns。

步骤四:设定Family。

※设定Family为Stratix,再按Next。

步骤五:设定Device。

※设定Device 为EP1S10F780C6,再按Finish,即可完成Project的设定。

步骤六:编译。

※点选Processing → Start Compilation,即可开始编译。

步骤七:完成编译。

※弹出下面窗口即代表编译完毕。

以上就是使用Quartus II对电路Netlist做APR的基本流程,并且利用设定仿真工具所产生的xxx.vo(Verilog Output File)与xxx.sdo(Standard Delay Output File)做后仿真。

4、后仿真(Post-Sim)
步骤一:启动ModelSim,然后建立一个Project。

※建立Project的方式为点选File → New → Project…。

※设定Project Name与Project location,按OK即可建立Project。

步骤二:加入设计文档。

※将xxx.vo更改为xxx.v,然后加入。

步骤三:加入组件库文件。

※由于我们是采用Altera的Cell Library来合成电路,所以合成后的电Netlist里所包括的那些Logic Gates与Flip-Flop 都是出自于Cell Library,所以模拟时要将此Cell Library加入。

※我们所选用的Family是Stratix,所以到QuartusIIedasim_lib 里将Stratix的Cell Library(stratix_atoms.v)加入。

步骤四:加入测试平台。

※加入Pre-Sim的测试平台,并在测试平台里加上`timescale 1ns/100ps。

步骤五:编译。

※编译档案的方式为点选Compile → Compile All,即可编译所有的档案。

※如果编译时发生错误,在显示错误的地方(红字)点两下,即可跳到错误。

步骤六:仿真。

※仿真文件的方式为点选Simulate → Simulate…。

步骤七:加入要观察的信号。

※在窗口上按右键,然后点选Add →Add to Wave。

步骤八:观察波形。

※慢慢看波形吧,没有波形就没有真相!。

相关文档
最新文档