Quartus II建立工程及其仿真

转自:http://blog.sina.com.cn/s/blog_a36a3af00101ybpm.html

本文以飞思卡尔的Cyclone系列的EP1C6Q240C8为目标芯片,以加法计数器的硬件描述语言(VHDL)为例。

 

一、建立工作库文件和编辑设计文文件

      任何一项设计都是一项Project(工程),而把一个工程下的所有文件放在一个文件夹内是一个非常好的习惯,以便于我们整理,利用和提取不同工程下的文件,而此文件夹将被EDA软件默认为Work Library(工作库),所以第一步先根据自己的习惯,建立个新的文件夹。

      下来进入正题:

      (1)新建文件夹:我的习惯在D盘建立并保存工程,我将文件夹取名addition counter路径为D:\addition counter

         (2)输入源程序:打开Quartus II,选择菜单File-->New-->Design Files-->VHDL File-->OK(如图1所示)

Quartus II建立工程及其仿真_第1张图片

图 1

        在VHDL文件编译器窗口键入程序,如图2所示,源程序附在文章的最后,可以直接复制粘贴

Quartus II建立工程及其仿真_第2张图片

图2


        (3)保存文件:完成一步就保存一步是一个好习惯,这样即使出现意外情况,也不至于以前的努力付诸东流。选择File-->Save as,选择保存路径,即刚才新建的文件夹D:\addition counter,文件名应与实体名保持一致,即CNT10.vhd,点击保存后会跳出“Do you want to create a new project with this file?”选择“是”,则进入如下界面

Quartus II建立工程及其仿真_第3张图片

              点击Next,进入“工程设置”对话框,如图所示

Quartus II建立工程及其仿真_第4张图片

 

             第一行 表示工程所在的文件夹即D:\addition counter,第二行为工程名,可以与顶层文件的实体名保持一致,也可以另取别的名字,第三行为当前工程顶层文件的实体名。

          点击next,进入ADD FILE对话框,如图所示,单击Add All 按钮,将工程相关的所有VHDL文件加进工程,也可以单击“Add  ...”选择性加入,按此步骤建立工程,工程已经自动将所有文件加进去了,可以直接点击next,当先直接建立工程时,需要自己添加

Quartus II建立工程及其仿真_第5张图片

 

       (4)选择目标芯片:我们选用的是飞思卡尔的Cyclone系列的EP1C6Q240C8,在Family栏选择芯片系列——Cyclone,然后软件会在Avalable devices栏中该系列的所有芯片,寻找EP1C6Q240C8并选中,点击Next,如图所示

Quartus II建立工程及其仿真_第6张图片

 

      (5)工具设置:进入EDA工具设置窗口,有三个选项,分别是选择输入的HDL类型和综合工具、选择仿真工具、选择时序分析工具,这是除Quartus II自含的所有设计工具以外的外加的工具,如果不作选择的,表示仅选择Quartus II自含的所有设计工具,本次不需要其他的设计工具,可以直接点击Next
      (6)结束设置:进入“工程设置统计”窗口,列出了与此工程相关的设置情况,设置完成,点击Finish


 

二、编译前设置

    1、选择目标芯片并选择配置器件的工作方式

       在菜单栏选择Assignments-->Device,弹出对话框,因为刚才在建立工程的时候已经选择了目标芯片,所以直接进入选择配置器件的工作方式,点击Device & Pin Options,如图所示

Quartus II建立工程及其仿真_第7张图片

         弹出Device & Pin Options窗口,分别对General、Configuration(配置器件)、Programming File、Unused Pins(不用的引脚)项进行设置,如图所示

Quartus II建立工程及其仿真_第8张图片

 

           General项中,在Options栏中选择Auto-restart configuration after error,使对FPGA的配置失败后能自动重新配置,每当选中Options栏中的任一项时,下方的Description栏中有对该选项的描述供参考。

           Configuration项中将Generate compressed bitstreams处打钩,产生压缩配置文件

           Programming File选项保持默认即可

           Unusual Pins项把不用的引脚全部置高,即As Input tri-stated
           点击确定

三、编译

    配置好后就可以进行编译了,点击Quartus II建立工程及其仿真_第9张图片
   启动全程编译

   编译成功后的界面如图所示

Quartus II建立工程及其仿真_第10张图片

     

四、时序仿真

      (1)打开波形编辑器:File-->New-->Verification/Debugging Files-->Vector Waveform-->OK,即出现空白的波形编辑器,如图所示

Quartus II建立工程及其仿真_第11张图片

       (2)设置仿真时间区域:Edit-->End Time在Time栏中输入50,单位选择“us”,点击确定并保存波形文件

      (3)将工程CNT10的端口信号名选入波形编辑器中:View-->Utility windows-->Node Finder,在Filter框中选Pins:all(通常是默认选项),然后点击List,则显示出了所有引脚,如图所示

Quartus II建立工程及其仿真_第12张图片

          将重要的端口名拖进波形编辑器后关闭窗口

          (5)编辑输入波形:

          单击窗口的时钟信号名CLK使之变蓝,再单击左列的时钟设置键,如图所示

Quartus II建立工程及其仿真_第13张图片

            Duty Cycle(占空比)默认50,时钟周期Period为2us,点击OK,如图所示

Quartus II建立工程及其仿真_第14张图片

       
            
        在最初设计的时候可能默认的时间间隔比较小,没有显示出方波,而是一条直线,这时需要调整时间轴,单击左列放大镜的图标Quartus II建立工程及其仿真_第15张图片,将鼠标放在波形上,左键放大,右键缩小,点击几下右键即可看见明显的方波了。其他的输入端口的波形界面上圈出需要置高的地方,点击左列的“1”Quartus II建立工程及其仿真_第16张图片,按照此方法编辑输入波形,如图所示

Quartus II建立工程及其仿真_第17张图片

        (6)启动仿真器:Processing-->Start Simulation ,直至出现Simulation was successful,仿真结束,然后会自动弹出“Simulation Report”,点击输出信号“CQ”旁边的“+”,展开总线中的所有信号,可以更利于我们观察和分析波形,如图所示

Quartus II建立工程及其仿真_第18张图片

五、应用RTL电路图观察器
      Tools-->Netlist Viewers-->RTL Viewer,结果如图所示

Quartus II建立工程及其仿真_第19张图片


附件1:源代码

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNT10 IS
   PORT (CLK,RST,EN:IN STD_LOGIC;
                 CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
                COUT:OUT STD_LOGIC);
END CNT10;
ARCHITECTURE behav OF CNT10 IS
BEGIN
    PROCESS(CLK,RST,EN)
      VARIABLE CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);
    BEGIN
      IF RST='1' THEN CQI:=(OTHERS=>'0');
        ELSIF CLK'EVENT AND CLK='1' THEN
          IF EN='1' THEN
            IF CQI < 9 THEN CQI:=CQI+1;
              ELSE CQI:=(OTHERS=>'0');
              END IF;
            END IF ;
          END IF;
          IF CQI = 9 THEN COUT <='1';
            ELSE COUT <='0';
          END IF;
            CQ <= CQI;
      END PROCESS;
END behav;

你可能感兴趣的:(硬件-协议)