找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 893|回复: 0
打印 上一主题 下一主题

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

[复制链接]

1

主题

1

帖子

7

积分

初级新手(9)

Rank: 1

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

EDA365欢迎您!

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

x
请各位高手看看本人的程序,编译通过了,仿真却没有结果。我想实现的功能是单稳态脉冲展宽(通过外端口控制展宽宽度)。程序如下:8 C, _& P3 ^/ s  I1 O- T* D; |- A* F
计数器(控制展宽电路的宽度)部分:
, D" e( I3 s( p7 ^4 p3 o- U" ~9 Rlibrary IEEE;9 y1 m' o2 j& U! h5 D3 }& N
use IEEE.STD_LOGIC_1164.ALL;
$ s; f( r3 H5 c% V$ ~, Muse IEEE.STD_LOGIC_ARITH.ALL;
5 U5 Y- V7 l8 |$ n; {use IEEE.STD_LOGIC_UNSIGNED.ALL;
  B* W) R4 _( i5 B$ }) gentity counter is2 D; E5 d& @5 t! a. U: m
  port(reset,en,clk: in std_logic;
5 m% S; M% G0 m* X$ A       N1,N2,N3,N4: in std_logic;/ g7 k+ z! a0 A) f5 \+ d" g
       feed_out: out std_logic);4 b8 u( k' R; H1 t: z. J& f2 I% e+ w
  end counter;, h- f; B+ C, j) m5 l1 E+ j5 M
architecture Behavioral of counter is
* T) S# d; p9 F+ x# y, o9 q- |signal temp: integer range 0 to 15:=0;
5 I) F' p& T: P3 f* G9 zsignal k:integer:=0;
3 i; O) P& Z" V" |8 C% G: [7 @begin# i. D4 W: x1 |$ r
process(N1,N2,N3,N4,k,clk) is
5 v3 N* V" U  E8 `4 ebegin
% w% `0 ~1 _/ z6 V" L. _" |, f   if(N1='1') then temp<=temp+1;
2 {3 h- y! S% {8 q+ l1 O& F7 n* S5 a  elsif(N2='1') then temp<=temp+2;, B4 s# w& s8 A1 n( E
  elsif(N3='1') then temp<=temp+4;
, R7 q; s( L  @. g  elsif(N4='1') then temp<=temp+8;
; p# E$ X8 g+ U6 |; q  else null;" S2 G- M+ V/ K+ \5 `# V) s7 O" ~
  end if;4 y* E6 s8 s- }$ A+ T3 W5 J
  if (clk'event and clk='1') then, V; w0 V  @' ]6 L0 d* d
    if (reset='1') then) ?7 k& J5 ]# i( S, e  E. J5 K
       k<=0;
$ t) S9 j: E6 h' j; X! A& s     feed_out<='0';4 U8 J3 T. K4 V* G7 U. o' D, Y
     elsif (en='1') then   , {9 u  U1 _0 v! Q/ o" a
    if (k=temp-1) then% s- ?0 t0 f$ B0 M5 I
         feed_out<='1';; a7 n  H" H) l4 Q$ p* N. X
         k<=temp-1;: j( g4 i* Y  e
     else k<=k+1;) V5 L/ P1 X, U5 h9 G' ]* m
    end if;/ s8 Z2 D5 t" a8 A6 g1 p, o' d4 c
    end if;( n2 g" w1 i- I
end if;
/ [# U) y% r# a, T* Pend process;
9 M  @, N3 U" Jend Behavioral;# Z! r6 j/ @7 b" Q/ b% c3 a2 y% `6 d
D触发器(脉冲前沿产生电路,又是展宽脉冲宽度形成电路):
- _4 N8 F, _  S" n- ~0 T* E- _, Olibrary IEEE;# r7 Z) E% G5 z# I* ~6 _
use IEEE.STD_LOGIC_1164.ALL;% T6 }9 n( H2 E8 N  o8 p5 ]$ F
use IEEE.STD_LOGIC_ARITH.ALL;$ K) v) I; |/ D. P# _5 W8 |
use IEEE.STD_LOGIC_UNSIGNED.ALL;
# z& x* W5 V* _2 kentity D_trigger is3 n) H9 m, Q# E. L% b$ J; l( |
  port(D,clear: in std_logic;
  ?5 X2 b: {. r" \; w) f8 X2 {; _       clk: in std_logic;. ^0 R4 {9 p$ A* m
   Q: out std_logic);
, U5 e) q9 u; h% G( wend D_trigger;
- r8 I. c" D8 O8 a# D1 C" a  xarchitecture Behavioral of D_trigger is
4 d) [4 L, o4 h, V: I# ?3 r# |begin
( d" B! q9 T$ v) Eprocess(D,clear,clk) is7 V( K& k2 e* C* u% [0 h
begin5 A$ ~0 K' y2 K( J0 s2 q, x* _6 w- y
  if (clear='1') then9 q, \+ z# A- k+ E8 e
    Q<='0';     % u4 x% y2 f$ @; t! V6 w" C, C+ a
  elsif (clk'event and clk='1') then
1 y. B' p8 b- T7 E1 ^. k    Q<=D;( h2 \& k  z& h
  end if;
( w# q3 Z& T8 F! V+ H' {end process;  1 v, @, v% B" J* `3 f8 b
end Behavioral;
. b* k6 Q8 d! Z& Q2 Q外部综合部分:3 b3 f$ C  R* s: i9 z: `) M! X
library IEEE;+ E: a  D3 Z0 m+ n! U
use IEEE.STD_LOGIC_1164.ALL;
( m5 l7 Q. l- E$ ^, g& s& Ruse IEEE.STD_LOGIC_ARITH.ALL;8 S0 b0 x# t) d, a; H4 U% x. Q  g
use IEEE.STD_LOGIC_UNSIGNED.ALL;
+ W8 L" v( ^5 R- ]6 h, V9 a3 S" dentity pulse_expand is- i$ g9 D- q% r) q! E: V9 y
  port(pulse_in,D_in: in std_logic;0 ^4 r9 y" [. N! t$ K/ C
       clk_in: in std_logic;
; X' O5 x! p) v1 U- x   n1,n2,n3,n4: in std_logic;
( c0 x) z% [/ @$ u   pulsewidth_out: out std_logic);7 |0 B, A: G  D) C) Q
end pulse_expand;
3 ~& H' h  D" O( X: ^% Tarchitecture Behavioral of pulse_expand is
$ ^& C" b$ z) ^. A0 f; Lsignal a1,a2,a3: std_logic;" x  R- f- Q) {; e3 s- W, [; Z% N  R
component counter is
' z, m: e: H; h# Y% j3 S/ e   port(reset,en,clk: in std_logic;- a" n* n+ C7 H1 f
      N1,N2,N3,N4: in std_logic;8 X* b/ O5 ]! o7 c# R
        feed_out: out std_logic);
, p5 V  Z$ A" s) z# F. e  end component counter;! c1 X; x  B; H2 n- `3 `6 ^
  component  D_trigger is' u- U( A1 ^6 {4 [; b3 z& o
     port(D,clear: in std_logic;, x9 a& @, N2 g0 `
          clk: in std_logic;
% V  Y4 v) @; e! q- Y: ~3 G4 N/ H, `# X      Q: out std_logic);
& K- J  B' x5 j& j6 ~  end component D_trigger;
6 N" s1 o3 v8 q1 R! lbegin. l1 d2 a- G" V% \6 ~
P1: D_trigger port map (D=>D_in,clear=>a1,clk=>pulse_in,Q=>a2);
( A( t* p/ M: Y& N; Y' ?' |; ]a3<= not a2;
: O/ u) D5 _; S* I7 K  [P2: counter port map ( reset=>a3,en=>a2,clk=>clk_in,feed_out=>a1,/ W& M) j' E) v; y
    N1=>n1,N2=>n2,N3=>n3,N4=>n4);
4 K- s* v9 t: p+ k7 ~1 Apulsewidth_out<=a2;% q: I7 f# q+ l4 @( i  e8 e: c/ g
end Behavioral;
* ~- ?4 Z' }* j: [3 T% |+ k
7 d1 L- ~+ U8 v% O7 m. d4 b[ 本帖最后由 marshal403006 于 2008-6-2 09:38 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-9-20 00:40 , Processed in 0.055521 second(s), 39 queries , Gzip On.

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

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

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