设计分频器的VHDL实现 时钟输入频率为50Mhz,带低电平复位reset,时钟输出频率为1Mhz,代码怎么写?

请问代码怎么写,谢谢!... 请问代码怎么写,谢谢! 展开
 我来答
nereus78e904
2013-12-15 · TA获得超过1.5万个赞
知道大有可为答主
回答量:5463
采纳率:90%
帮助的人:1913万
展开全部
library ieee;
use ieee.std_logic_1164.all;
entity div is

generic(n:integer :=50);
port (clk,reset_n:in std_logic;
q:out std_logic);
end div;
architecture behave of div is
signal count :integer range n-1 downto 0:=n-1;
begin
process(clk,reset_n)
begin
if reset_n='0' then

count <= n-1;

elsif rising_edge(clk) then

count<=count-1;
if count>=n/2 then
q<='0';
else
q<='1';
end if;
if count<=0 then
count<=n-1;
end if;
end if;
end process;
end behave;
更多追问追答
追问
首先我很感谢你的帮忙,但是我有一下几个语句我不懂是什么意思,可以告知一下吗?
generic(n:integer :=50);
signal count :integer range n-1 downto 0:=n-1;
elsif rising_edge(clk)
另外是否可以详细的告诉我一下这个程序是按照什么顺序执行的,可以吗?谢谢。
如果需要产生仿真激励波形的,我应该怎么做呢?急!!!
追答
generic(n:integer :=50);是类属声明语句,定义一个整型常量n=50。

signal count :integer range n-1 downto 0:=n-1;是信号声明语句,定义一个整型的子类型信号,其值的变化范围是从n-1到0。

rising_edge(clk)是一个布尔类型的函数,当信号clk的上升沿到达时返回一个“true”。

如果你读不懂上面的源代码,说明你没有学过VHDL。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式