1. 打开quarts2,生成和配置文件

打开quarts2,点击file---点击---new project wizard 生成一个文件

点击next

这里第一个配置文件工作目录,建议新建一个地方专门放置 

后两个是文件的名字,这里我用计数器为例子,就写counter

点击next 

这里是写这个文件里的一些子文件,我们计数器简单,不需要那么多东西,直接next 

 这里选择我们最后要仿真的板子,我是用cydone的EP1C3T144C8芯片,这里大家建议根据自己的板子填写,如果只是仿真的话,不填写也没有问题

这边我们选择modelsim-altera仿真和vhdl语言,这个也是根据大家实际情况选择 

完成后会进入下面这个页面

2. 编写代码

编写一下代码,计数器原理不过多叙述了

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity counter is
port(
    clk : in std_logic;
    q : out std_logic_vector(2 downto 0)
);
end counter;
architecture rtl of counter is
signal tmp : std_logic_vector(2 downto 0);
begin
    process(clk)
    begin
        if clk'event and clk='1' then
            tmp <= std_logic_vector(unsigned(tmp) + 1);
        end if;
    end process;
    q <= tmp;
end rtl;

保存一下文件,进行不完全编译 (在这个help下面这一行,暂停打勾的这个符号),这个就是进行简单的语法错误的检查

不完全编译成功后再进行完全编译(刚才那个的左边那个,暂停的符号),这个就是会进行逻辑上的检查,也会有一个成功的提示

3. 仿真

新建一个VWF文件,用来进行modelsim仿真

选择university program vwf,点击ok

 

会生成一个这样的页面框,在Name下双击添加我们的输入和输出信号

点击node finder...

点击list

添加clk,q

先点击clk左边的按键,再点击时钟信号,将clk配置为时钟

为了让效果明显一点,我们设置周期为100ns

开始功能仿真

这里会提示我们保存文件,我们点击yes去保存,修改一下文件名字为counter和vhdl文件一样,这样不回搞混仿真波形和代码

 这里会生成一个网表,等一下

完成后,会显示这样的波形,代表功能仿真成功 

同样的,我们进行时序仿真。

这里我们可以看到这里q波形发生切换的适合会产生毛刺现象,且滞后于我们的上升沿,这是q波形在过渡的状态

到此,我们基本操作就结束了。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐