vhdl testbench 时钟仿真的时钟工具栏被关了怎么找

后使用快捷导航没有帐号?
查看: 1533|回复: 3
ISE VHDL 仿真时需要在console显示用了多少时钟周期
在线时间30 小时
威望120 分
芯币180 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 120, 距离下一级还需 80 积分
一粒金砂(中级), 积分 120, 距离下一级还需 80 积分
我觉得可以用report,但是report怎么表示变量呀
在线时间30 小时
威望120 分
芯币180 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 120, 距离下一级还需 80 积分
一粒金砂(中级), 积分 120, 距离下一级还需 80 积分
在线时间490 小时
威望9087 分
芯币12352 枚
TA的帖子TA的资源
五彩晶圆(高级), 积分 9087, 距离下一级还需 913 积分
五彩晶圆(高级), 积分 9087, 距离下一级还需 913 积分
可以用计数器计算时钟周期。
用计数器没问题,但是在仿真的时候怎么显示呢?&
一个为理想不懈前进的人,一个永不言败人!
欢迎光临网上店铺!
在线时间30 小时
威望120 分
芯币180 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 120, 距离下一级还需 80 积分
一粒金砂(中级), 积分 120, 距离下一级还需 80 积分
回复 板凳 eeleader 的帖子
用计数器没问题,但是在仿真的时候怎么显示呢?
Powered by
逛了这许久,何不进去瞧瞧?共57个文档积分:1300分
共50个文档积分:2500分
共50个文档积分:2500分
共33个文档积分:1700分
35273人查阅
33081人查阅
32569人查阅
34104人查阅
32487人查阅
33082人查阅
所需积分:0分数字时钟的VHDL设计与仿真
数字时钟的VHDL设计与仿真
1. 设计背景和设计方案
选用合适的可编程逻辑器件及外围电子元器件,设计一个数字时钟,利用EDA软件(QUARTUS
II)进行编译及仿真,设计输入可采用VHDL硬件描述语言输入法和原理图输入法,并下载到EDA实验开发系统,连接外围电路,完成实际测试。
具体结构图如下:
1.2设计方案
由实验箱上的时钟信号经分频产生秒脉冲,可手动校时。数字时钟校时功能有3个按键,长按setm键,再点击in键可校正分钟显示;长按seth键,再点击in键可校正小时显示。还有一个复位键clr。计时功能由秒,分,时模块分别控制,设有进位信号作为分和时的时钟信号。
2. 方案实施
系统的输入信号包括:系统时钟信号clk,清零信号clr,分钟设置信号setm,小时设置信号seth,校时输入信号in。
系统的输出信号包括:秒个位输出信号secg,十位输出信号secs;分个位输出信号ming,十位输出信号mins;小时个位输出信号hourg,十位输出信号hours。
当setm或seth按下时,点击in可更改分或时的输出信号,达到校时的功能。
2.1& 秒的计数
个位数为十进制,十位数为6进制的计数方式即为秒的计数。因此可用IF语句来控制十位和个位数的循环方式。设计程序如下:
Use ieee.std_logic_1164.
Use ieee.std_logic_unsigned.
Entity second1 is
Port( clks,clr:in std_
Secs,Secg: out std_logic_vector(3 downto 0);
cout1:out std_logic);
End second1;
Architecture a of second1 is
Process(clks,clr)
variable ss,sg: std_logic_vector(3 downto 0);
variable co: std_
If clr='1' then ss:="0000"; sg:="0000";
Elsif clks'event and clks='1' then
if ss="0101" and sg="1001" then ss:="0000";
sg:="0000";co:='1';
elsif sg&"1001" then sg:=sg+1;co:='0';
elsif sg="1001" then sg:="0000";ss:=ss+1;co:='0';
波形仿真图为:
当clr复位信号为1时输出为0。当clr为0时,secg执行0到9循环。secs执行0到5的循环,5过后cout1进位信号为1,可见秒功能可正常使用。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
2.2& 分钟的计数
分钟的计时方式同秒一样,也为6进制和10进制,程序如下:
Use ieee.std_logic_1164.
Use ieee.std_logic_unsigned.
Entity min1 is
Port(clkm,clr:in std_
mins,ming:buffer std_logic_vector(3 downto 0);
enmin: out std_logic);
Architecture a of min1 is
Process(clkm,clr)
variable ms,mg :std_logic_vector(3 downto 0);
variable so :std_
If clr='1' then ms:="0000"; mg:="0000";
Elsif clkm'event and clkm='1' then
if ms="0101" and mg="1001" then ms:="0000";mg:="0000"; so
elsif mg&"1001" then mg:=mg+1; so :='0';
elsif mg="1001" then mg:="0000";ms:=ms+1; so :='0';
波形仿真图为:
当clr复位信号为1时输出为0。当clr为0时,ming执行0到9循环。mins执行0到5的循环,5过后enmin进位信号为1,可见分功能可正常使用。
2.3& 小时的计数
波形仿真图为:小时的计数本质上与分和秒相同,只是改为了2进制和4进制,程序如下:
Use ieee.std_logic_1164.
Use ieee.std_logic_unsigned.
Entity hour1 is
Port(clkh,clr:in std_
hours,hourg:out std_logic_vector(3 downto 0));
Architecture a of hour1 is
Process(clkh,clr)
variable hs,hg :std_logic_vector(3 downto 0);
If clr='1' then hs:="0000"; hg:="0000";
Elsif clkh'event and clkh='1' then
if hs="0010"and hg="0011" then hs:="0000";hg:="0000";
elsif hg&"1001" then hg:=hg+1;
elsif hg="1001" then hg:="0000";hs:=hs+1;
波形仿真图为:
当clr复位信号为1时输出为0。当clr为0时,hourg执行0到9到0再到9到0再到3的循环。hours执行0到2的循环,可见时功能可正常使用。
2.4& 校分模块
校分模块仍可用IF语句来实现,程序如下:
Use ieee.std_logic_1164.
Use ieee.std_logic_unsigned.
Entity madapt is
Port(en,clk,secin,m1:in std_
minset:out std_logic);
Architecture a of madapt is
Process(en,m1)
if en='1' then
if m1='1' then minset&=
else minset&=
else minset&=
波形仿真图为:
当en为1,m1为1时,输出minset应和clk输入信号相同,因为有仿真延时,导致当m1改变时,输出信号minset滞后。
2.5& 校时模块
校时模块与校分模块类似,程序如下:
Use ieee.std_logic_1164.
Use ieee.std_logic_unsigned.
Entity hadapt is
Port(en,clk,minin,h1:in std_
hourset:out std_logic);
Architecture a of hadapt is
Process(en,h1)
if en='1' then
if h1='1' then hourset&=
else hourset&=
else hourset&=
波形仿真图为:
当en和h1同时为1时输出为clk信号。当en为1,h1为0及en为0时,输出信号hourset为输入minin。
3.结果和结论
设计输入可采用VHDL硬件描述语言输入法和原理图输入法并采用模块设计,并下载到EDA实验开发系统,连接外围电路,完成实际测试。
波形仿真图为:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

参考资料

 

随机推荐