我写的VHDL分频程序的波形仿真显示,时钟占空比接近33%,而不是50%。为什么会这样呢

我觉得你的程序可以写得更好,但是给这个程序加一个这样的条件是不够的。

图书馆?ieee?

使用?IEEE . STD _ logic _ 1164 . all;?

使用?IEEE . STD _ logic _ unsigned . all;?

使用?IEEE . STD _ logic _ arith . all;?

实体?div?是吗?

泛型(n:整数?:=10);?

端口(clk:in?std _ logic?

clk_out:out?STD _ logic);?

结束?;?

建筑?bh?的?div?是吗?

信号?clk _ temp:STD _ logic;?

信号?计数器:整数?范围?0?去哪?n-1;?

开始?

clk _ out & lt=clk_temp?

进程(clk)?

开始?

if(clk'event?然后呢。那么clk='1 '?

if(counter=n-1)那么?

clk _ temp & lt='1';?

计数器& lt=计数器+1;?

elsif(counter & lt;n/2)那么?

clk _ temp & lt='0';?

计数器& lt=计数器+1;?

elsif(counter & lt;n-1)然后呢?

clk _ temp & lt='1';?

计数器& lt=计数器+1;?

不然呢?计数器& lt=0;

结束?如果;?

结束?如果;?

结束?过程;?

结束?BH;