转帖请注明转自http://www.cnblogs.com/connorzx/p/3547673.html

一、新建工程

1.点击File->New Project,

2.点击Next

注:此处的simulator已经和modelsim关联,未关联可以先选默认。

3.点击Next,点击Finish。

二、新建源文件

右击程序文件,点击New Source。选择VHDL Module。

输入端口设置,如下图所示

三、编写程序代码

 library IEEE;                                --库引用
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL; entity freq_div_pro is --实体,端口定义
Port ( clk : in STD_LOGIC;
rst : in STD_LOGIC;
clk_8d : out STD_LOGIC);
end freq_div_pro; architecture Behavioral of freq_div_pro is --结构体定义
signal cnt:STD_LOGIC_VECTOR( downto );
signal tmp:STD_LOGIC; --定义两个信号
begin
process(rst,clk) --主进程
begin
if(rst = '')then --异步清零
cnt( downto ) <= "";
tmp <= '';
elsif(clk'event and clk ='')then --上升沿有效
cnt( downto ) <= cnt( downto ) + ; --计数
if(cnt( downto )="")then
tmp <= not tmp; --输出翻转,可以用T'触发器实现
cnt( downto ) <= ""; --计数器复位
end if;
end if;
end process;
clk_8d <= tmp; --输出 end Behavioral;

进行语法检查

然后点击Synthesize –XST 和Implement Design。

四、编写测试基准

选择simulation窗口,新建一个VHDL testbench,

编写代码如下:

 library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY freq_div_test IS
END freq_div_test; ARCHITECTURE behavior OF freq_div_test IS -- Component Declaration for the Unit Under Test (UUT) COMPONENT freq_div_pro
PORT(
clk : IN std_logic;
rst : IN std_logic;
clk_8d : OUT std_logic
);
END COMPONENT; --Inputs
signal clk : std_logic := '';
signal rst : std_logic := ''; --Outputs
signal clk_8d : std_logic;
-- Clock period definitions
constant clk_period : time := ns; BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: freq_div_pro PORT MAP (
clk => clk,
rst => rst,
clk_8d => clk_8d
);
-- Clock process definitions
clk_process :process
begin
clk <= '';
wait for clk_period/;
clk <= '';
wait for clk_period/;
end process; -- Stimulus process
stim_proc: process
begin
-- hold reset state for ns.
rst<='' after ns;
wait;
end process;
END;

选择仿真程序文件,点击Simulate Behavioral Model,弹出Modelsim程序,可以看到如下结果

波形如下,

注:本实验采用Modelsim进行仿真分析,Modelsim软件以及Xilinx和Modesim关联方法请参照以下链接操作。

链接: http://pan.baidu.com/s/1eQj5rrW 密码: c1ca

基于BASYS2的VHDL程序与仿真——50%占空比8分频器的更多相关文章

  1. 基于BASYS2的VHDL程序——交通灯

    请尊重作者版权,转载请注明原地址: http://www.cnblogs.com/connorzx/p/3676746.html 数电实验交通灯VHDL版,程序写的扩展性很差,待以后有时间进行优化. ...

  2. 基于BASYS2的VHDL程序——分频和数码管静态显示程序

    转载请注明出处:http://www.cnblogs.com/connorzx/p/3633860.html 分频是基于计数器程序.由于FPGA的并行处理能力,根本不需要单片机式的中断指令,用起来很方 ...

  3. 基于BASYS2的VHDL程序与烧写——按键消抖程序

    请尊重作者版权,转载请注明源地址http://www.cnblogs.com/connorzx/p/3548364.html 按键在按下的过程中通常会产生一段时间的抖动,为了消除这种抖动,一般采取两种 ...

  4. 基于BASYS2的VHDL程序——交通灯(状态机版)

    请尊重作者版权,转载注明源地址:http://www.cnblogs.com/connorzx/p/3694618.html 使用了状态机,增加了可读性和用户体验. library IEEE; use ...

  5. 基于BASYS2的VHDL程序——数字钟(最终版)

    转载请注明原地址:http://www.cnblogs.com/connorzx/p/3674178.html 调时电路正常工作.一切正常.发现做FPGA还是得从数电的思路思考,设置一个预置使能端,预 ...

  6. 基于BASYS2的VHDL程序——数字钟(改进版)

    扩展到时分秒.加了入调时电路,但不知道为什么有两个按键不好使.而且不知道以何种方式假如按键消抖电路,因为加入后会多个时钟控制一个信号,物理不可实现.调试电路待解决.还有,四个数目管中间的那两个圆点怎么 ...

  7. 基于BASYS2的VHDL程序——数字钟

    在编电子表时发现FPGA求余,取模只能针对2的次方.毕竟是数字的嘛! 时钟用到了动态刷新数码管.以一个大于50Hz的速度刷新每一个数码管. 因为数码管只有四个,只写了分针和秒针. 代码如下: libr ...

  8. 改善C#程序,提高程序运行效率的50种方法

    改善C#程序,提高程序运行效率的50种方法   转自:http://blog.sina.com.cn/s/blog_6f7a7fb501017p8a.html 一.用属性代替可访问的字段 1..NET ...

  9. 基于HTML5的燃气3D培训仿真系统

    最近上线了的基于HTML5的燃气3D培训仿真系统,以前的老系统是采用基于C++和OpenGL的OpenSceneGraph引擎设计的,OSG引擎性能和渲染效果各方面还是不错的,但因为这次新产品需求要求 ...

随机推荐

  1. [JSOI 2015] 子集选取

    4475: [Jsoi2015]子集选取 Time Limit: 1 Sec  Memory Limit: 512 MBSubmit: 363  Solved: 255[Submit][Status] ...

  2. 谈谈 ServletConfig 和 ServletContext

    目录 一.ServletConfig 和 ServletContext 的概念 二.ServletConfig 和 SerlvetContext 代码表示 一.ServletConfig 和 Serv ...

  3. sed命令2

    测试文件sedtest.txt,内容为: [root@localhost sed]# cat sedtest.txt my cat's name is betty it's a cat; this i ...

  4. Android图片加载神器之Fresco,基于各种使用场景的讲解

    Fresco是Facebook开源Android平台上一个强大的图片加载库,也是迄今为止Android平台上最强大的图片加载库. 优点:相对于其他开源的第三方图片加载库,Fresco拥有更好的内存管理 ...

  5. 手把手教你如何利用Meterpreter渗透Windows系统

    在这篇文章中,我们将跟大家介绍如何使用Meterpreter来收集目标Windows系统中的信息,获取用户凭证,创建我们自己的账号,启用远程桌面,进行屏幕截图,以及获取用户键盘记录等等. 相关Payl ...

  6. 在win7上安装visual c++ 2008 redistributable 发生错误error 1935

     方案一.原来服务"Windows Modules Installer"被禁用了, 启用该服务后, 问题就解决了.  方案二. 1.点开始——在运行框里输入regedit,按回车键 ...

  7. mysql delete auto_increment列时的注意问题

    1. 说明 在对带有AUTO_INCREMENT列的表delete掉所有数据时: (1)对于MyISAM表,在delete表中所有数据时没有任何风险,随意折腾: (2)对于InnoDB表,在delet ...

  8. 百科知识 isz文件如何打开

    使用UltraISO可以打开

  9. Solaris shell脚本学习

    看懂脚本文件即可 知识点: Shell概述 Shell变量 Shell中的特殊字符 参数置换变量 控制结构 何为shell Shell就是unix提供给用户的使用界面,处于内核和应用程序之间,他是一个 ...

  10. hadoop集群搭建datenode为0问题的解决

       搭建了一个小的实验集群,一共4台机器,一台namenode,三台datenode.运行start-all,发如今namenode上没有报不论什么错误,可是启动后直接显示datenode数量为0. ...