如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
任意整数分频,占空比为50%(VHDL)--希望能对大家有帮助--**************************************----程序名:任意整数分频,占空比为50%--**************************************--libraryieee;useieee.std_logic_1164.all;entityclk_divisgeneric(n:integer:=2);--n的值是要分频的系数,n>=2port(clock:instd_logic:='0';clk_out:outstd_logic);endclk_div;architectureseaofclk_divissignaltemp:std_logic:='0';beginprocess(clock,temp)variablea,a1,a2:integerrange0ton;variabletemp1,temp2:std_logic:='0';beginif(nrem2)=1thenifrising_edge(clock)thenifa1=n-1thena1:=0;temp1:='0';elsifa1<((n+1)/2-1)thentemp1:='1';a1:=a1+1;elsifa1>=((n+1)/2-1)thentemp1:='0';a1:=a1+1;endif;endif;iffalling_edge(clock)thenifa2=n-1thena2:=0;temp2:='0';elsifa2<((n+1)/2-1)thentemp2:='1';a2:=a1+1;elsifa2>=((n+1)/2-1)thentemp2:='0';a2:=a2+1;endif;endif;temp<=temp1ortemp2;elsifrising_edge(clock)thenifa=(n/2-1)thena:=0;temp<=nottemp;elsea:=a+1;endif;endif;endprocess;clk_out<=temp;endsea;--程序结束请教:分频比的获取刚刚开始学习VHDL,刚开始阅读这段代码,遇到的问题是这个硬件是如何获得分频系数的,在entity段的三个语句中:entityclk_divisgeneric(n:integer:=2);--n的值是要分频的系数,n>=2port(clock:instd_logic:='0';clk_out:outstd_logic);endclk_div;在n的声明中已将n确定为整型数,且赋值为2(n:=2),此后代码中对n是怎样继续处理的。如果n是分频比,也不再处理,那这个电路如何实现变n分频工作的。第二个问题是,在port的指定中,只有时钟输入和输出,而没有与分频比对应的引脚输入,那么在实现的硬件如何输入分频比信息。所提问题肯定特别初级,希望得到帮助。读了这段代码和4楼的指点,收获很大,谢谢各位。做个初学者总有点点细抠,唯恐遗漏的心态,可能还会提出些很低级的问题。拜托大家耐心指教。回复后,又仔细地品味这段代码,这里不得不重新编辑这段回复来修正自己的意见(例如占空系数的处理)。下面报告一下学习心得,请指教:1、代码中分成了两个大部分:偶数分频和奇数分频的处理;而在奇数分频中,为了获得50%的分频比,特意加入了对时钟下降沿的响应,这是这段代码精华的所在;2、对应以上三块分频处理中,分别设置了三个指针(a\a1\a2)和中间信号(temp\temp2\temp2)3、每个模块,都用中间参数a”盯住“半点n/2(代码中使用(n+1)/2-1这个具体数值)和满点n(代码中使用了n-1)这两个点来监视计数过程,从而(间接地)控制输出时钟的状态;具体说,就是n=奇数时;满n复位,半n置位;n=偶数时,在半n(自然包括了满n)时取反。4、为获得50%的占空比,充分利用了时钟的两个沿,巧妙的配合了一个简单的或运算,就解决了奇数分频比条件下的50%精确占空系数问题(这样,从原理上说这个精度只受输入时钟占空比的影响)。现在还有两个问题请教各位:1、可否在port上设置若干bit位,作为n的实际控制,这样就可以实现74系列或CMOS系列的通用变N分频器设计;2、请教:有没有这个代码设计的综合的测试评价结果。再次表示对楼主和楼上各位的感谢!回复板凳xiaoxif的帖子我来回答xiaoxif的两个问题:"现在还有两个问题请教各位:1、可否在port上设置若干bit位,作为n的实际控制,这样就可以实现74系列或CMOS系列的通用变N分频器设计;2、请教:有没有这个代码设计的综合的测试评价结果。"回答1:可以用bit位来实现对n的控制,在结构体中将bit位的值