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

基于FPGA的单稳态脉冲展宽电路的设计问题!

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
请各位高手看看本人的程序,编译通过了,仿真却没有结果。我想实现的功能是单稳态脉冲展宽(通过外端口控制展宽宽度)。程序如下:7 v( g& P. v! A: z
计数器(控制展宽电路的宽度)部分:
# _! f/ Z8 Y! R4 \4 h( e# P# xlibrary IEEE;2 U% Z+ W5 q, b4 H
use IEEE.STD_LOGIC_1164.ALL;
# o7 |% i; N, n4 U, N, \use IEEE.STD_LOGIC_ARITH.ALL;! W" u( {5 l/ w/ z
use IEEE.STD_LOGIC_UNSIGNED.ALL;
1 q& Z; P& u7 Tentity counter is
* `" b" X, p) m0 n  port(reset,en,clk: in std_logic;& V- D/ f& `5 A! P2 f
       N1,N2,N3,N4: in std_logic;: X" A, O- V# k# @$ V  h" [9 G- K
       feed_out: out std_logic);
3 ]9 o+ }/ V2 D; q; o  end counter;
3 S/ W: }6 d! d& Z! Parchitecture Behavioral of counter is
- q3 K- K1 j. ?3 A$ k) z% Q& Jsignal temp: integer range 0 to 15:=0;  P& ~& _: u+ q" p: I- h  s1 y( I
signal k:integer:=0;4 H" }, l; o2 v0 L5 d1 F+ B
begin
& g* A( j2 o  U+ m" \$ uprocess(N1,N2,N3,N4,k,clk) is
( P; |1 \% |- _- V: C2 h8 ibegin+ n/ h" b& H, ?" n7 s
   if(N1='1') then temp<=temp+1;
0 P4 B8 \; i8 Y; j$ L  elsif(N2='1') then temp<=temp+2;
. \3 y' S$ n2 s4 o2 f  elsif(N3='1') then temp<=temp+4;8 q4 i: q1 p& R0 F2 \; ~7 C
  elsif(N4='1') then temp<=temp+8;
% w1 S4 n5 e5 w  f% r) O, P  else null;/ D9 D* {) ?, d6 j+ a! b$ o
  end if;
5 t# v* b( }4 M  if (clk'event and clk='1') then
1 y- Z1 I# _/ f! ?' j    if (reset='1') then0 L3 Q! W! l' R
       k<=0;
7 _; i- U0 [9 P  i1 e     feed_out<='0';" H$ H. q9 p& i' S
     elsif (en='1') then   
( {* H$ i( o' N5 Q1 w, u7 |5 h    if (k=temp-1) then
; _) J( x6 k4 h9 t- j; N         feed_out<='1';
6 Z2 d' K  P- P6 E( `         k<=temp-1;
+ s6 e( O1 L+ C4 R     else k<=k+1;* F* i% b9 z( P' J8 A
    end if;$ q0 D5 x) @) S
    end if;
) Q  P) F4 u$ U5 U0 f) u: tend if;
+ k8 }: g1 h) qend process;
5 s1 `. H; u& {0 dend Behavioral;: d# M2 |0 V; p. v2 `
D触发器(脉冲前沿产生电路,又是展宽脉冲宽度形成电路):
* r- ^7 X/ }/ A9 H# zlibrary IEEE;
: q: O# S) j3 Z! Q+ ]use IEEE.STD_LOGIC_1164.ALL;1 V5 Q) ~, _' U5 M5 `; o
use IEEE.STD_LOGIC_ARITH.ALL;; C( f. S% R. C7 y3 v# f6 y
use IEEE.STD_LOGIC_UNSIGNED.ALL;
6 z. @4 G$ t, u& H1 O) Ientity D_trigger is
8 L* B+ A6 y' r! c2 Z  J  port(D,clear: in std_logic;
; i+ K' T  p' r, T; l( V5 n       clk: in std_logic;
3 j3 T, r- K# y   Q: out std_logic);4 @, E  O0 g2 r1 Z* i$ J3 L
end D_trigger;
3 X$ D0 k( [- c( E; P& H8 _; Earchitecture Behavioral of D_trigger is. _- \, S( I" M' O! x
begin
6 ?: T$ K) n7 _7 l: l) ~$ i, ^( L" `+ bprocess(D,clear,clk) is/ \( p* C& `; u. o
begin
1 \9 a  d, ^* Z- `  if (clear='1') then4 A- P1 |9 r( m, w
    Q<='0';     
( V$ W! Q# {# Q  \8 i  elsif (clk'event and clk='1') then! O# H2 c" q3 Y1 e' _4 `- A) b
    Q<=D;& V; k1 X& e4 i5 X7 Z% \
  end if;+ O& h6 O8 N/ a$ l
end process;  5 C) ^% s3 c- v  J) h  V( w
end Behavioral;5 h% U4 F5 R+ X% o0 A
外部综合部分:
) c) b; G) x3 m+ Z) d8 Z8 F+ Xlibrary IEEE;# d( k8 `' c( h* U4 R
use IEEE.STD_LOGIC_1164.ALL;& ]* o4 D$ v1 }" r
use IEEE.STD_LOGIC_ARITH.ALL;
! Y! A9 @/ |# y7 O, I) ^use IEEE.STD_LOGIC_UNSIGNED.ALL;
* d5 S/ s4 T2 W; Ventity pulse_expand is) `( x  \. _3 U+ v/ B- d
  port(pulse_in,D_in: in std_logic;4 j5 `3 r) h* B: p0 @
       clk_in: in std_logic;
2 f3 u" F  v) F5 E, }; \   n1,n2,n3,n4: in std_logic;
; d' D) j7 `3 `2 P. v' ]( n8 _" M! P   pulsewidth_out: out std_logic);0 X# M  u, Y9 @: T
end pulse_expand;
3 C- I" l" a& j( sarchitecture Behavioral of pulse_expand is
& K. c+ @# j0 R- osignal a1,a2,a3: std_logic;5 S, F9 g9 }( F
component counter is $ I  P% O5 l6 B/ f
   port(reset,en,clk: in std_logic;
' n* [/ w) Z2 D# y! k* R0 \5 j      N1,N2,N3,N4: in std_logic;* E; K0 E5 y! c4 e* u3 R
        feed_out: out std_logic);+ D, k: p& t/ Z- V$ D
  end component counter;
  m+ G, d3 X. S' r  component  D_trigger is; T% @( B8 n! N' l1 e& k5 L" |
     port(D,clear: in std_logic;
2 r. |8 Q' I" }) S2 L          clk: in std_logic;
' N" H  }5 \  C7 C+ |( C% D      Q: out std_logic);
8 X) ~  I4 I" ^( K  o  end component D_trigger;
& w% ^( e6 ~/ x. i/ ^begin0 o0 ?1 }& U9 ^9 a0 r8 r
P1: D_trigger port map (D=>D_in,clear=>a1,clk=>pulse_in,Q=>a2);+ |3 W! a' ?8 ]: l# p
a3<= not a2;# M) [% A" @" x5 Z
P2: counter port map ( reset=>a3,en=>a2,clk=>clk_in,feed_out=>a1,* p, _$ s* @4 T$ b0 I
    N1=>n1,N2=>n2,N3=>n3,N4=>n4);" {7 `+ a8 G' B, e. \
pulsewidth_out<=a2;9 s/ {. x' v1 e/ K8 B
end Behavioral;9 E) m9 a2 i9 N' a
" k: `& o( J: \' p0 H9 O
[ 本帖最后由 marshal403006 于 2008-6-2 09:38 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-30 21:34 , Processed in 0.078125 second(s), 24 queries , Gzip On.

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

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

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