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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
请各位高手看看本人的程序,编译通过了,仿真却没有结果。我想实现的功能是单稳态脉冲展宽(通过外端口控制展宽宽度)。程序如下:, A  S; A5 z5 q" \. M
计数器(控制展宽电路的宽度)部分:
0 h/ x7 }  u( `9 ~$ Flibrary IEEE;5 W- ~7 _* P2 f/ f# `
use IEEE.STD_LOGIC_1164.ALL;2 P' q" e) U  W- Y; L
use IEEE.STD_LOGIC_ARITH.ALL;
. e0 f, q0 P( Juse IEEE.STD_LOGIC_UNSIGNED.ALL;
; a: u* f4 J3 }8 B7 k) R. bentity counter is
0 m2 c$ ^4 Y4 E8 Q7 ]( b& g2 u* h  port(reset,en,clk: in std_logic;
+ z3 d; p8 T6 G& j       N1,N2,N3,N4: in std_logic;
+ p3 _/ x  z; t& f$ E8 k       feed_out: out std_logic);6 s" W1 K% Z9 [9 V+ v- o6 s% c: ^
  end counter;
2 G( M) h( x7 T4 t  harchitecture Behavioral of counter is
' r( A3 _$ L4 m; X( V* y$ Esignal temp: integer range 0 to 15:=0;; }4 l6 T; Y9 |
signal k:integer:=0;# a  d& z* Z7 y/ h
begin$ X/ ^* A1 M& C$ j4 x* ]7 U9 E8 P% }
process(N1,N2,N3,N4,k,clk) is
- \+ q% ^) ~( t# e' D: kbegin
1 U& q( ?. ]$ {/ y+ ?   if(N1='1') then temp<=temp+1;" L3 C% k+ Z* f$ b3 I- S7 \3 N
  elsif(N2='1') then temp<=temp+2;% \* g/ h% ?  E% C7 x' z
  elsif(N3='1') then temp<=temp+4;
0 B# b' R, ?. I) O  elsif(N4='1') then temp<=temp+8;
4 f4 L3 r* v  s5 B, t) P0 x  else null;
: s0 b+ u' w2 U; y  end if;
: y( H) E' p8 E& ?% L: L' u  if (clk'event and clk='1') then
% B0 e% C! M7 \. E/ ?) f/ A( R0 ?    if (reset='1') then9 v% H! _9 t9 Z( n! m) \
       k<=0;" j. Y' \, H  T) u8 k6 F  g" w& p
     feed_out<='0';
1 t) v% e. e* i! D     elsif (en='1') then   
1 j$ U, ?5 [# R, p  ?( ?4 |, `    if (k=temp-1) then# {2 e0 l2 A) O( M* D0 Q" L/ S8 i
         feed_out<='1';/ i! j, X, ~: q5 w) c  m
         k<=temp-1;
: B% f# K( q# t# W/ ]2 X     else k<=k+1;
3 d: X: k' F% P/ L( Y3 ]    end if;2 k! w' Z. M3 b6 {$ e9 _! x9 `
    end if;
# b8 e- q+ N* l7 o2 q5 Wend if;
# ?- S- T- k* p( ?- L" Kend process;$ W, a5 P' c' Q7 e" P6 K
end Behavioral;
" W; }8 z3 I, R! zD触发器(脉冲前沿产生电路,又是展宽脉冲宽度形成电路):- M& ~9 Z2 D. R6 |2 U) t1 E
library IEEE;8 T9 u* s3 B2 K4 v
use IEEE.STD_LOGIC_1164.ALL;
+ l2 a* B9 s* n1 D0 M6 L1 [use IEEE.STD_LOGIC_ARITH.ALL;
& N7 X* Z7 T* L" N; G. y! F' Tuse IEEE.STD_LOGIC_UNSIGNED.ALL;4 @6 ~& ]0 Y, u
entity D_trigger is
  M* T3 g' P' q  port(D,clear: in std_logic;  w% Y) U5 Y4 _+ b4 J0 ~/ `8 `
       clk: in std_logic;
' A$ ]( V: A* v% o$ r& }   Q: out std_logic);
  z, R$ e! ]) M, C! ~end D_trigger;- l7 I' a9 ]0 H, F; h! f' i
architecture Behavioral of D_trigger is
8 D$ h" m, p. Q* m7 h% ^begin1 @9 x& J# `3 V& p8 K' [! w4 Z
process(D,clear,clk) is$ k% f7 z+ J& [" D
begin: J' @- |/ c! Z7 d
  if (clear='1') then) o2 q# n3 g/ k5 G9 H/ l6 B
    Q<='0';     7 m1 C9 x9 f3 h: H0 l! E
  elsif (clk'event and clk='1') then* c! l/ P$ c2 s9 f0 e( F6 g
    Q<=D;
  }9 R. e" L' k8 p4 @9 k  end if;' {) M0 @2 Y! `2 G3 b4 C# B
end process;  
9 [2 T. @" X$ p6 b, M( c( C* {5 Aend Behavioral;
; S9 w6 ~" ^5 Z" f: o. @! F& F外部综合部分:8 {; ^- ?: U! d: P9 A7 c5 I
library IEEE;
* W% }/ o. i% Huse IEEE.STD_LOGIC_1164.ALL;
' Z6 F5 k6 Z2 h- vuse IEEE.STD_LOGIC_ARITH.ALL;
1 ?4 V: u) B2 y& W8 Uuse IEEE.STD_LOGIC_UNSIGNED.ALL;; o) d! F* g3 `% i; x# k
entity pulse_expand is; A; C5 l2 ]) \1 S0 g. i
  port(pulse_in,D_in: in std_logic;
" J4 l; K& Z5 `" b       clk_in: in std_logic;
& M" p- c( w0 E+ y   n1,n2,n3,n4: in std_logic;1 X+ L, t  g  r- C4 A1 l
   pulsewidth_out: out std_logic);! w" |5 A+ K! K' U& d
end pulse_expand;* `8 _- U# B" M3 A! X& `  y6 a
architecture Behavioral of pulse_expand is" |5 B+ {9 E; N) s
signal a1,a2,a3: std_logic;! U& B9 |' {4 o7 Q+ \" t& ^
component counter is
5 j4 p$ t4 e+ W3 u. q+ j   port(reset,en,clk: in std_logic;* g3 `, w1 H1 q- P9 o- q) _. a, u
      N1,N2,N3,N4: in std_logic;
8 d4 I: k6 p2 [4 W7 s7 d        feed_out: out std_logic);$ l( H) j( i: v/ u
  end component counter;! a8 _/ s" T+ \) I3 _/ `2 ^( s
  component  D_trigger is: [- O" f! Q2 m- |5 d
     port(D,clear: in std_logic;4 \* z+ v5 O1 t2 v; b
          clk: in std_logic;3 n, d( o$ T5 ]" W/ y3 o3 P  F9 Y6 ~
      Q: out std_logic);
' [- n# m  ~! L4 j0 k/ D  end component D_trigger;1 k5 z" |. ?% j) t" \/ D- X
begin
( L5 v4 o% B# Y1 i+ tP1: D_trigger port map (D=>D_in,clear=>a1,clk=>pulse_in,Q=>a2);  p1 v, `% }* ]' G
a3<= not a2;
/ m) C2 _  ~7 {( n4 R4 XP2: counter port map ( reset=>a3,en=>a2,clk=>clk_in,feed_out=>a1,
0 K% B, Q7 W% w. k* o    N1=>n1,N2=>n2,N3=>n3,N4=>n4);
  S: Q) R- N1 K+ S& G' Y; X" Cpulsewidth_out<=a2;1 V6 D1 ^" v) x$ u
end Behavioral;/ S  K" D( l! e* v' D

6 _/ R' ]  W) U! @8 X! d2 f[ 本帖最后由 marshal403006 于 2008-6-2 09:38 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-20 02:06 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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