roppies
驱动牛犊
驱动牛犊
  • 注册日期2001-04-24
  • 最后登录2005-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1371回复:5

maxplus求救

楼主#
更多 发布于:2002-08-16 15:56
verilog 异步操作:
always @(posedge LCLK or negedge RESET_)
....
为什么使用MAXPLUS2仿真时我的RESET_被LCLK给同步了
互相鼓励/互助前进
roppies
驱动牛犊
驱动牛犊
  • 注册日期2001-04-24
  • 最后登录2005-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-16 16:51
对不起,好像是以下的结构中
always @(posedge LCLK or negedge RESET or negedge ADS)
if(!RESET)
...
else if(!ADS)
...
else
....

RESET可以按异步方式正常工作,但ADS被同步化了
请问有什么补救措施

互相鼓励/互助前进
asic_liu
驱动中牛
驱动中牛
  • 注册日期2002-04-26
  • 最后登录2004-11-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-16 18:05
使用真值表吧!可能可以!
家住虚无飘渺中, 本与世间无相争。 忽如一日刀兵起, 笑傲江湖一狂生。
mengzi
驱动牛犊
驱动牛犊
  • 注册日期2001-08-02
  • 最后登录2004-05-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-18 13:26
muxplus不支持您的这种语法,因为一个寄存器只允许一个钟,实现异步可以是如下结构
input lclk, reset, ads, d;
reg q;
always @(LCLK or RESET or ADS)
  q = !RESET?0:
      (!lclk&&!ads)?d:q;
上为lclk的上升沿锁存,如果想下降沿锁存将!clk的!去掉即可
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-19 09:01
可以先做一个外部逻辑.
wire AUX = RESET & ADS;
always @ (posedge LCLK or negedge AUX)
begin
  if(!AUX)
  else
end
兄弟们,给点分吧
mengzi
驱动牛犊
驱动牛犊
  • 注册日期2001-08-02
  • 最后登录2004-05-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-21 13:01
也可以这样做:
module day1(clk, reset, ads, d, q);
input clk, reset, ads, d;
output q;
reg q;

dffe mydffe(.d(d),.clk(clk),.clrn(reset), .ena(!ads),.q(q));

endmodule
位宽自定
游客

返回顶部