|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我想要在A_IN的下降沿开始,( e) G n2 y+ A3 \1 d3 }, i# h
给A_REG清零,然后每次来一个CLK的上升沿(不管A_IN的状态,只要CLLK上升),就给A_REG + 1。* e# O4 k% m9 f
请问怎么做?
! B5 j1 b) N8 R @! z9 z$ N8 h% ^以下做法可以吗?3 ?4 U2 O2 ? _
always @( negedge A_in )
, [# l; |5 t2 y0 dbegin
5 c# {* ], P E+ Q7 ^( SA_reg <= 16'h0;
, W* L$ g4 q& ?6 F9 gif (A_reg[15:0] == 16'hffff) B_reg <=1'h1;
- C# S |; Q4 `# P+ nelse) ~' d0 O9 `: y" |' o
begin
5 t: M; i; k. d- X% hA_reg <= A_reg + 1;' U9 V2 n5 r% B" r, e
B_reg <=1'h0;. r. \8 v% T* j1 r2 N7 o3 C
end/ g# \. ]. ]9 g5 N* Q
end0 C/ O( Z! x$ x5 A7 [
% p; a6 n$ f% }, F w但里面没有clk....
& J; m! k8 @% d7 ]: i$ c! z若always里面加入clk,又会每次clk都给清零了;1 \+ x& Z& k# L- D
if里面又不能放“沿”做条件...
+ F0 L* U7 D+ \8 ?+ I& `+ L是指当两个值不等,就判断为“沿”吗?
7 g- O9 h9 Y# i1 x. I那么你的意思就是把always里面换为clk吧?- v9 L& g7 C% r/ @5 y1 j8 J3 Z3 f: F1 D$ I0 P
这样理论上应该可以做到两个沿放一起,可是cpld内部从输入到赋值就很快,判断时所需要的时间应该是和赋值的时间一样的,我想,这样就永远判断不到这个“沿”的产生吧?# @) L) X. I: L7 c& x3 P& c
: E7 O3 e0 V# u& L
目的是以下两种情况都形成一个结果(不受干扰)
9 K# _8 F) M) \* Q_ _ _ _ _ _ _ _ _ _- T: e9 B0 J- y% q2 \% S/ h
clk _/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_
1 N; |) O. S$ s8 R w2 R& p: p, C% T/ p6 x3 j; ?
__________ ____________4 g) h; r/ d% \* D
AIN1 \________________/ A_reg= A_reg+1+ B/ z# k4 A- R
6 L- R6 g2 L0 o+ F+ t2 u$ @# t) I
_______ __ _ ____2 ~/ w& P( w! G& D; u
AIN2 \___/ \______________/ \___/ A_reg= A_reg+1/ O# g, _* d& T9 y! b* P
|
|