您的位置:首页 > 其它

Quartus II建立工程及其仿真

2016-06-11 10:23 656 查看
转自: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所示)






1

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





图2

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







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





 

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

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





 

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





 

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

 

二、编译前设置

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

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





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





 

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

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

           Programming File选项保持默认即可

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

           点击确定

三、编译

    配置好后就可以进行编译了,点击


   启动全程编译

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





     

四、时序仿真

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





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

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





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

          (5)编辑输入波形:

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





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





       

            

        在最初设计的时候可能默认的时间间隔比较小,没有显示出方波,而是一条直线,这时需要调整时间轴,单击左列放大镜的图标

,将鼠标放在波形上,左键放大,右键缩小,点击几下右键即可看见明显的方波了。其他的输入端口的波形界面上圈出需要置高的地方,点击左列的“1”

,按照此方法编辑输入波形,如图所示





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





五、应用RTL电路图观察器

      Tools-->Netlist Viewers-->RTL Viewer,结果如图所示





附件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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: