找回密码
 注册
关于网站域名变更的通知
查看: 2141|回复: 8
打印 上一主题 下一主题

重温VHDL语言-分频器

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-11-3 17:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
library ieee;
/ ~( _! G/ x4 O; H" Duse ieee.std_logic_1164.all;
6 X" t# ]. D7 E# j0 _" D3 g& b--------------------------------------------------------------实体
7 s& M+ G- o3 ]+ S0 y7 _, centity IRDA_DIV is5 Z: F! z/ J, M$ u6 A
port(
4 e. @; o; R. m4 I% f& @8 x  CLK:in std_logic;
+ @2 [1 r# Q9 E5 c# |' d  FO:out std_logic
5 \1 L1 D( H% ~* \* O" n0 F7 c  );, ^: G5 w2 b* Y& U
end IRDA_DIV;
1 r8 H: w- k6 N( X) z--------------------------------------------------------------结构体
: m5 S& h4 t$ |) s, X. narchitecture behav of IRDA_DIV is5 o) Y5 ^+ b# p" V6 P% X3 z8 v
signal count : integer range 0 to 48;% V( t. C) I/ h
signal fotemp :std_logic;( K& Z) X/ a3 [$ z) j5 ~
begin
7 j0 ]! E' Y8 ]! g3 R+ @2 ~
0 `) J5 u# J! r: gprocess(CLK); Z+ X8 `7 X' V  D
begin4 _. J) v4 G) W; y" S! t9 l" W9 D
if (CLK'event and CLK='1') then         -----上升沿触发% ~6 Q5 ], G/ y0 U' Y6 ^1 Y
if count=47 then
) Q9 {- E+ u8 _8 i  count<=0;; T" @/ U6 \. \- w1 B5 u, H3 f
  fotemp<=not fotemp;- g. d' Y/ ^9 ~/ W1 _+ g% J
  else
6 C7 {+ E( Y& S: u! ?count<=count+1;
- y6 s: ?& p) B& Iend if;5 @$ k3 N" s) D+ K: k6 e/ ^* M
FO<=fotemp;
4 D3 }3 a  I+ ?% _1 ]& |2 ~7 @$ Mend if;
% X) Z  r& T8 W: [9 I; l' d+ F6 _& @& ]* p
end process;
+ m  a; y+ F5 ]' d* d* Eend behav;
6 g/ E" r; y, K. O! |6 M4 N2 Y
" X5 c/ f5 ]3 _/ ^8 C( e* Q3 b+ s9 c- o. a2 d

" d- @5 }: v7 j7 A在学校学了VHDL,用的也少,现在工作,正好要用VHDL弄个分频器;6 L8 k) q  h! I$ M; i8 ~
VHDL在学校也学的不好,现在重温一下;% A) o2 `/ o( S" V/ r* @
对CLK进行48分频

该用户从未签到

2#
发表于 2008-11-4 22:18 | 只看该作者

不错!

呵呵,偶也正在学这个……

该用户从未签到

3#
发表于 2008-11-7 17:19 | 只看该作者
放点不好整的分频嘛,老是偶分频,比如小数分频这些塞! 方便别人借鉴

该用户从未签到

4#
发表于 2008-11-9 18:35 | 只看该作者
!!,一般实现分频都是用计数器分频的,小数好像不好弄,难道用到除法器,这个还真没考虑过

该用户从未签到

5#
 楼主| 发表于 2008-11-11 07:52 | 只看该作者
我书上有小数和非50%占空比的分频,有时间就发上来;5 R9 [+ k2 b& G9 e5 X% l

该用户从未签到

6#
 楼主| 发表于 2008-11-11 07:54 | 只看该作者

回复 3# 的帖子

不是把!!!
  c% P8 r+ h' @0 z7 X6 K
! u9 ]9 S7 L. O% t4 S[ 本帖最后由 zgq800712 于 2008-11-15 08:14 编辑 ]

该用户从未签到

7#
发表于 2008-11-12 19:12 | 只看该作者

回复

好像只可以偶数可以,基数还请楼主

该用户从未签到

8#
 楼主| 发表于 2008-11-15 08:19 | 只看该作者
晕,好像真是偶数分频啊;
" L# }- ^( n& q, R' ]( Y; ?) w: s' ?9 U
0 w# x$ b+ F0 S- y0 @; `* n  w
比如16个CLK就输出取反;那就是32个CLK一个周期 对应输出 一个周期;输出周期=32个CLK;
( @+ w$ X" p) ~$ [; s. y" {如果15个CLK就输出取反;那就是30个CLK一个周期 对应输出 一个周期;输出周期=30个CLK;
: _. i+ s' Q* r3 s, a$ G30个和32个CLK还不多是偶数。
  p& ?! D/ q0 R9 o! ?8 j楼上的朋友真细心啊。。。" e8 A7 _" J1 Z& P& N2 m2 f. x1 j
在啃书中。。。。。
) O, I3 w8 J  H; {; }5 q  Y/ G4 s
3 _: E. U" [- ]' m& y) k下面的是7分频的奇数分频器,占空比嘛1/7;9 _1 W7 k6 h% M8 H  `
还有50%的占空比,一直不明白,所以也没有发上来;
' r$ D2 [# l; ]) \( s- b' W2 rlibrary ieee;8 _3 @% @8 E/ v+ o7 s
use ieee.std_logic_1164.all;, ^3 u% R2 M0 i6 w: o
use ieee.std_logic_unsigned.all;
# K5 z4 }- {/ Z5 x& l# pentity jishu is/ t0 x: v& z3 O  w; E% \
      port( clk:in std_logic;
+ [6 G! p: u! {               div7: out std_logic);
5 i* S3 q1 J, C2 u1 k0 c. f! ~end;- f( T, V/ v( U  T& t: X
architecture one of jishu is. @% F: c% v: N9 y0 S4 O5 x
   signal cnt:std_logic_vector(2 downto 0);
: @: w& C# H8 ^' l2 ]7 H0 S4 ?   signal clk_temp:std_logic;2 q$ Z( M* O. R! H
   constant m:integer:=6;
! D8 H4 r0 ?$ ]& P9 x( Nbegin7 d+ f, q) F' Z% j) X
process(clk)
% M6 D0 v1 r. Q8 xbegin
8 r) g. a+ b) V8 Xif clk'event and clk='1' then+ a' q' ~* L4 f9 g
if cnt=m then
% a% [9 `. |3 k! ]9 jclk_temp<='1';$ y- ^8 S$ g+ Y& L" }
cnt<="000";
. \! w. o. p/ p/ Lelse6 p, _( G/ J" ^" r. Q7 B  z, L: d
cnt<=cnt+1;
5 N& X8 `5 K7 m, k* p5 nclk_temp<='0';/ ?/ q6 `1 ?/ p, R8 O
end if;
3 N! H; |; ~. A0 _! A% Vend if;  F" @! f5 V, \
end process;
1 e7 {, r, {2 e* A2 V. Pdiv7<=clk_temp;" ~5 G+ Q7 p, ?. @6 i( e; O$ J6 S
end;
9 G4 c9 Z* u& h/ M2 h0 ?& t( n
  P$ {' l! B' M[ 本帖最后由 zgq800712 于 2008-11-17 10:38 编辑 ]

该用户从未签到

9#
发表于 2009-2-19 09:42 | 只看该作者
顶一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-5 03:15 , Processed in 0.140625 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表