lihui_mc 发表于 2013-10-12 11:17:43

各位大大,用verilog 怎么描述一个边沿触发的RS触发器

有没有这样的触发器:

输入信号a,b,输出信号c,

a上升沿到来时,c输出低电平;
b上升沿到来时,c输出高电平。

a和b的下降沿对c无影响。

我查了下,像RS触发器一样。但我希望对上升沿敏感而对电平不敏感的。

zchong 发表于 2013-10-12 11:34:53

弄一个带异步清零的D触发器应该就可以了

lihui_mc 发表于 2013-10-12 13:47:21

我也想过的,异步清零端是高优先的,它起作用的时候就无法触发了。

这个能否换种描述,就是一个1位的计数器,a上升沿触发一下加1,b上升沿触发一下减1,怎么实现?

eduhf_123 发表于 2013-10-12 14:03:19

需求定义不明确:

c的上电复位值是多少?
a和b的上升沿同时来要如何响应?

lihui_mc 发表于 2013-10-12 14:20:55

c上电是高电平,若a,b同时到来,c保持不变。

lihui_mc 发表于 2013-10-12 15:53:18

自己解决了,有没有人有更简便的方法

eduhf_123 发表于 2013-10-12 16:35:15

lihui_mc 发表于 2013-10-12 15:53 static/image/common/back.gif
自己解决了,有没有人有更简便的方法

你这个没对啊,上电默认输出是低。

eduhf_123 发表于 2013-10-12 16:46:55

lihui_mc 发表于 2013-10-12 15:53 static/image/common/back.gif
自己解决了,有没有人有更简便的方法

你的电路,只要最后输出前取个反,就能实现上电后默认输出为高、也能实现R信号上升沿将输出拉高以及S信号上升沿将输出拉低的功能,但是不能实现R和S同时来的时候输出保持不变。

eduhf_123 发表于 2013-10-12 17:31:08

always @ (posedge clk or negedge rst_n)
begin
    if(!rst_n)
    begin
      r_sync <= 1'd1;
      s_sync <= 1'd1;
      c <= 1'd1;
    end
    else
    begin
      c <= ((r~^r_sync)&(s^s_sync)) | (c&(r~^r_sync)) | (c&(s^s_sync));
      r_sync <= r;
      s_sync <= s;
    end
    else;
end

lihui_mc 发表于 2013-10-12 20:07:33

eduhf_123 发表于 2013-10-12 17:31 static/image/common/back.gif


看了你的代码,用一个比较高的clk采样R和S确实是个方法,可惜不适合我的用途,我的R和S脉冲只有10ns。

我要求S之后2ns的时候R,仍然能够正确,目前正在仿真,似乎也通不过,有可能逻辑延迟大了或者EPM240内部寄存器的建立时间不满足。

有人能分析下我的电路能否达到这样的速度。

eduhf_123 发表于 2013-10-12 23:55:35

lihui_mc 发表于 2013-10-12 20:07 static/image/common/back.gif
看了你的代码,用一个比较高的clk采样R和S确实是个方法,可惜不适合我的用途,我的R和S脉冲只有10ns。

我要求S之后2ns的时候R,仍然能够正确,目前正在仿真,似乎也通不过,有可能逻辑延迟大了或者EPM240内部寄存器的建立时间不满足。

有人能分析下我的电路能否达到这样的速度。

这么苛刻的时间要求,确实不能用纯粹的同步逻辑来实现了。

一个问题:如果R的上升沿和S的交替出现,那么相邻两个R或S的时间间隔最小会有长时间?

lihui_mc 发表于 2013-10-13 07:30:57

eduhf_123 发表于 2013-10-12 23:55 static/image/common/back.gif
这么苛刻的时间要求,确实不能用纯粹的同步逻辑来实现了。

一个问题:如果R的上升沿和S的交替出现,那么 ...

100M晶振,相邻就是10ns的。

我估计我的电路性能也不够,目前已转变思路了,换成门延时来做,其实我的目的是产生一个8ns的低电平,用于写Sram。想达到100M的写入速度,sram是IS61LV6416-10。

eduhf_123 发表于 2013-10-13 10:06:27

lihui_mc 发表于 2013-10-13 07:30 static/image/common/back.gif
100M晶振,相邻就是10ns的。

我估计我的电路性能也不够,目前已转变思路了,换成门延时来做,其实我的目 ...

是啊,参数到达器件性能的极限时,就应该考虑换个思路。
页: [1]
查看完整版本: 各位大大,用verilog 怎么描述一个边沿触发的RS触发器