m*******a 发帖数: 63 | 1 VERILOG里面可以有(always @ posedge'clk or negedge'rst_n),综合的时候一点问题
都没有,可是如果在VHDL中同时用(rising_edge(clk) 和(falling_edge(reset)就会
出错,把clk和rst都当成了时钟,说不支持MIXED EDGES. 为什么呢?还有就是为什么
要用negedge'rst_n,而不是rst_n, reset 没见过需要edge-triggered的呀。 |
|
DK 发帖数: 194 | 2 always @ posedge'clk or negedge'rst_n
是一个register with asynchronous reset,也就是说当rst_n由1-》0的那一下就把
output reset了
楼主你说的不用negedge rst_n的是synchronous reset,就是说reset变0以后,要等到
下一个clk edge, output 才被reset
你可以写:
always@(posedge clk)
begin
if(rst_n=0)
out<=0;
else
out<=in;
end
不需要把reset放到sensitivity list 里面. |
|
a*****8 发帖数: 261 | 3 请问下面两个always process的不同:
第一个process,有 #1 delay:
always @(posedge clk or negedge rst_n) begin
if (~rst_n)
dout <= #1 12'h0;
else
dout <= #1 din;
end
第二个process, 没有 #1 delay:
always @(posedge clk or negedge rst_n) begin
if (~rst_n)
dout <= #1 12'h0;
else
dout <= #1 din;
end
谢谢。 |
|
w**********6 发帖数: 800 | 4 请教,RTL design中,divided by 3 和 50% duty cycle怎么实现?
Hint:use two always using posedge and negedge |
|
m*******a 发帖数: 63 | 5 问题是为什么Verilog就没把他们当时钟呢?为什么要用negedge'rst_n,而不是直接
rst_n呢? |
|
m*******a 发帖数: 63 | 6 多谢!
what I still do not understand is the following:
In VHDL, if we use both rising_edge and falling_edge, an error would be
reported during compilation in Quartus or ISE. However, no error if we use
both negedge and posegde in Verilog. |
|
t********t 发帖数: 5415 | 7 第二题clko不是50%的吧?要是50%的话奇数分频就得考虑negedge上做动作,或者有没
有别的办法? |
|
t*******c 发帖数: 306 | 8 程序是实现一个特殊的FIFO, 要求clock 上升沿写入,下降沿读出,在一个clock周期
内可以完成一次读写,我写了以下code, 不过不知道这样实现会不会有问题?如果没问
题的话synthesis之后的话会不会又问题?请教各位,感激不尽 (比较担心的方面是
write pointer 和 read pointer 产生于clock 两个不同的沿,在一起比较,担心会出
问题)
module FIFO(clk, reset, data_in, put, get, data_out, empty,full);
output [15:0] data_out;
output empty;
output full;
input [15:0] data_in;
input put, get;
input reset,clk;
reg [15:0] mem[7:0];
reg [3:0] wr_ptr;
reg [3:0] re_ptr;
assign empty ... 阅读全帖 |
|
T******T 发帖数: 3066 | 9 As general note in synchronous digital design, unless clock rate is slow and
absolutely necessary, refrain from using double edged sequential logic. I
would only use it for fast <-> real slow time domain synchronization related
stuff.
DDR sounds cool, and it might seem efficient as hell to be able to
accomplish twice as much operation in only 1 single clock cycle, but when it
comes time to backend STA timing closure, you'll regret not having that
extra slack to deal with worst path circuit delay... 阅读全帖 |
|
t*******c 发帖数: 306 | 10 谢谢楼上几位的指点,还有点小疑惑的地方是:?
1. coding style 不好,只是因为用了blocking?那把这code always里面的"=",全改成
"<=" 就可以解决这个问题了吗?
2. 为什么最好不要posedge 和 negedge 最好不要同时用呢?只是因为像caineniac 说
的,两个沿都用的话,syn的时候会导致要提高组合逻辑速度或者延长clock周期?
3. 那这个程序如果不用clock两个沿方法实现的话,还有什么其他的的简单易行方法,
使得只用clock一个沿,就可以实现上升沿写,下降沿读呢?
谢谢 |
|