转帖请注明转自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. 【spring mvc】后台的API,测试中,总提示接口实体的某一个字段不能为null,但是明明给值了还提示不能为空

    实体是这三个字段 接口的实现类Controller 前台测试给值 依旧报错 解决方法: 需要添加@RequestBody注解

  2. Android应用开发之所有动画使用详解

    题外话:有段时间没有更新博客了,这篇文章也是之前写了一半一直放在草稿箱,今天抽空把剩余的补上的.消失的这段时间真的好忙,节奏一下子有些适应不过来,早晨七点四十就得醒来,晚上九点四十才准备下班,好像最近 ...

  3. 控制CUP占用率曲线

    在<编程之美>上看过一道面试题就是要求:输出cup占用率的曲线图 今天看到了一篇文章就试试看看: #include <iostream> #include <cmath& ...

  4. 机器学习(十三)——机器学习中的矩阵方法(3)病态矩阵、协同过滤的ALS算法(1)

    http://antkillerfarm.github.io/ 向量的范数(续) 范数可用符号∥x∥λ表示. 经常使用的有: ∥x∥1=|x1|+⋯+|xn| ∥x∥2=x21+⋯+x2n−−−−−− ...

  5. 网页Tab控件

    网页Tab控件 找到:http://www.open-open.com/ajax/2_Tabs.htm 页面,查看了若干Tab控件, 找到了:http://www.open-open.com/ajax ...

  6. Odoo10对套件的处理

    Odoo10对套件的处理更强, 除了老版本支持的 销售套件, 按组件出货: 现在还增加了 采购套件, 按组件进货     建立 组件产品 KIT     设置 虚件BOM         测试,   ...

  7. Content Provider 详解

    几个概念:Cursor. Content provider . Uri  .contentresolver 1. Cursor : 个人理解为数据库中的一行数据,它是每行数据的集合.它是一个类.通过它 ...

  8. nginx-location rewrite

    location 语法 location 有”定位”的意思, 根据Uri来进行不同的定位. 在虚拟主机的配置中,是必不可少的,location可以把网站的不同部分,定位到不同的处理方式上. 比如, 碰 ...

  9. vs升级c++项目遇到的一些问题

    1.error C1189: #error :  This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x ...

  10. ffmpeg 跟我学 视频教程

    最近一段时间找时间录制了一些Ffmpeg视频教程,还有录制完毕,会持续更新,内容会包含Ffmeg保存文件,网络流转发, 编码,解码,播放器制作,以及服务端搭建等等,适合初学者,有需要的朋友的可以关注: ...