|  | 
 
| 
我想要在A_IN的下降沿开始,
x
EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册  5 |  X& k) y( {2 w给A_REG清零,然后每次来一个CLK的上升沿(不管A_IN的状态,只要CLLK上升),就给A_REG + 1。
 9 e5 F  G* v" f# `  w" ]2 c# U0 Z. `请问怎么做?7 w/ R2 t5 m5 }) G8 G
 以下做法可以吗?
 ) r1 Z7 s" d0 C$ y. aalways @( negedge A_in ): }( D; d- J( X* h3 S
 begin6 t, T: N  L& U$ X3 }
 A_reg <= 16'h0;
 * |4 z+ t2 T* D5 qif (A_reg[15:0] == 16'hffff) B_reg <=1'h1;4 `9 F- R  t+ U, X' ^' j2 p
 else  C+ y3 l) Y# t5 `
 begin  u7 E) p8 [* X* C. J# a
 A_reg <= A_reg + 1;
 3 a  f( j) U' Z, z6 f: s0 z, d4 ]B_reg <=1'h0;: f% `$ M* g+ H2 J+ M2 u
 end% q3 X5 I, P9 B8 X
 end  R( H& b  g+ z3 ]
 5 m) V2 o. R( a# P6 r# ?: o4 ?
 但里面没有clk....: Y: D( [5 p3 q& G% y
 若always里面加入clk,又会每次clk都给清零了;: \9 M7 Z& @: b8 I1 p! e* C
 if里面又不能放“沿”做条件...
 : F/ L- U. U# m3 M1 }是指当两个值不等,就判断为“沿”吗?
 0 ]! W1 y1 E9 c+ O那么你的意思就是把always里面换为clk吧?
 " s2 P' @. }7 y' {* s这样理论上应该可以做到两个沿放一起,可是cpld内部从输入到赋值就很快,判断时所需要的时间应该是和赋值的时间一样的,我想,这样就永远判断不到这个“沿”的产生吧?) p9 u7 E# d/ e3 N0 ]
 
 3 U' N) o; W8 m- g; E7 I! D目的是以下两种情况都形成一个结果(不受干扰)
 : J% \7 B! A2 L6 ^2 d_ _ _ _ _ _ _ _ _ _
 9 P$ x5 L8 h5 s* Qclk _/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_5 v* {$ O) }0 M* d2 Q1 A- H+ }) w/ A
 2 [# @/ K6 e1 y$ p1 d, {
 __________ ____________
 ' v# v0 S! R  c2 X0 HAIN1 \________________/ A_reg= A_reg+13 \3 [' _+ p" F
 
 . {/ g+ C  c) G9 U8 T% f_______ __ _ ____" ^8 Q! _3 T2 c
 AIN2 \___/ \______________/ \___/ A_reg= A_reg+1- t- V- K/ E5 w9 T8 Q/ a
 
 | 
 |