基于BASYS2的VHDL程序与仿真——50%占空比8分频器
转帖请注明转自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分频器的更多相关文章
- 基于BASYS2的VHDL程序——交通灯
请尊重作者版权,转载请注明原地址: http://www.cnblogs.com/connorzx/p/3676746.html 数电实验交通灯VHDL版,程序写的扩展性很差,待以后有时间进行优化. ...
- 基于BASYS2的VHDL程序——分频和数码管静态显示程序
转载请注明出处:http://www.cnblogs.com/connorzx/p/3633860.html 分频是基于计数器程序.由于FPGA的并行处理能力,根本不需要单片机式的中断指令,用起来很方 ...
- 基于BASYS2的VHDL程序与烧写——按键消抖程序
请尊重作者版权,转载请注明源地址http://www.cnblogs.com/connorzx/p/3548364.html 按键在按下的过程中通常会产生一段时间的抖动,为了消除这种抖动,一般采取两种 ...
- 基于BASYS2的VHDL程序——交通灯(状态机版)
请尊重作者版权,转载注明源地址:http://www.cnblogs.com/connorzx/p/3694618.html 使用了状态机,增加了可读性和用户体验. library IEEE; use ...
- 基于BASYS2的VHDL程序——数字钟(最终版)
转载请注明原地址:http://www.cnblogs.com/connorzx/p/3674178.html 调时电路正常工作.一切正常.发现做FPGA还是得从数电的思路思考,设置一个预置使能端,预 ...
- 基于BASYS2的VHDL程序——数字钟(改进版)
扩展到时分秒.加了入调时电路,但不知道为什么有两个按键不好使.而且不知道以何种方式假如按键消抖电路,因为加入后会多个时钟控制一个信号,物理不可实现.调试电路待解决.还有,四个数目管中间的那两个圆点怎么 ...
- 基于BASYS2的VHDL程序——数字钟
在编电子表时发现FPGA求余,取模只能针对2的次方.毕竟是数字的嘛! 时钟用到了动态刷新数码管.以一个大于50Hz的速度刷新每一个数码管. 因为数码管只有四个,只写了分针和秒针. 代码如下: libr ...
- 改善C#程序,提高程序运行效率的50种方法
改善C#程序,提高程序运行效率的50种方法 转自:http://blog.sina.com.cn/s/blog_6f7a7fb501017p8a.html 一.用属性代替可访问的字段 1..NET ...
- 基于HTML5的燃气3D培训仿真系统
最近上线了的基于HTML5的燃气3D培训仿真系统,以前的老系统是采用基于C++和OpenGL的OpenSceneGraph引擎设计的,OSG引擎性能和渲染效果各方面还是不错的,但因为这次新产品需求要求 ...
随机推荐
- ARC072/ABC059
AtCoder Regular Contest 072 / Beginner Contest 059 Announcement <br > 猛然发现今天有一场AC.....然后..显示手残 ...
- InnoDB: Warning: a long semaphore wait 解决办法
http://blog.csdn.net/wulantian/article/details/37560849
- Android开源工具项目集合
最近因为要去外派了,工欲善其事,必先利其器!所以又回顾了一下自己github上所收藏的项目,也算是温故而知新吧. 最流行的Android组件大全 http://www.open-open.com/li ...
- win10拷贝文件卡顿的问题-竟然是winrar搞的
win10拷贝文件卡顿的问题-竟然是winrar搞的 学习了: http://www.w10zj.com/Win10xy/Win10xf_3378.html 没想到你竟然是这样的WinRAR 去除了s ...
- from: 关于RabbitMQ
from: http://lynnkong.iteye.com/blog/1699684 1 什么是RabbitMQ? RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种, ...
- 【matlab】:matlab中不断的出现计算过程怎么办
这个问题是会常常性出的.就是matlab中不断的出现计算. 关于这个问题,我们须要考虑的是自己是不是写错了,通常会出现以下两种可能的错误 1,关于计算的函数没有写分号 :这样的是致命问题,假设函数不写 ...
- jquery+css实现网页颜色主题变换(只改变已设置好的几种颜色主题)
又遇到颜色主题变化,这次使用了jquery+css,使用了函数传值,而不是之前网站换肤改变link的方法. 首先是设置好颜色主题后,点击改变页面颜色主题.(需要自行导入jquery.js后查看效果) ...
- 找top 10信息
本文章内容来源于<程序猿面试宝典>. 题目: 有1千万条短信,以文本文件的形式保存.一行一条,有反复.请用5分钟时间,找出反复出现最多的前10条. 解析: 某些面试者想用数据库的办法来实现 ...
- 【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
两个月之前准备软考时,简单的从理论上总结了最经常使用的数据结构和算法,比方:线性表,链表,图.在进行java开发时,jdk为我们提供了一系列对应的类来实现主要的数据结构.jdk所提供的容器API位于j ...
- 手把手教你将本地项目文件上传至github
相信大家都听过Git(分布式版本号控制系统)和github吧.没听过也没关系(Google一下),反正以后要去公司肯定会听过. 我是在今年年初才接触Git.之后就一发不可收拾.仅仅要有比較好的项目就G ...