作者kyuudonut (CC)
看板Electronics
标题Re: [问题] 一些verilog的问题...
时间Thu Feb 11 23:33:47 2016
※ 引述《zxvc (执着)》之铭言:
: ※ 引述《karyuuissen ()》之铭言:
: : 我想先问关於blocking和nonblocking assignment的问题
: : 1. 像以下这种2个if的是同时做吗?
: : always@(posedge clk) begin
: : if(condition1)
: : A <= B;
: : if(condition2)
: : C <= D;
: : end
: 如果你问的是simulator会先做谁。
: 答案是第一个if先做。因为begin...end是sequential block。
: 但真实的电路是同时运作的。
: : 2. 两个一样的always分开写是谁先谁後?举例如下:
: : always@(posedge clk) begin
: : A <= B;
: : end
: : always@(posedge clk) begin
: : C <= D;
: : end
: 如果是在同一个module,那IEEE 1364无定义。谁先谁後都有可能,
: 跟你用的simulatior有关。
: : 3. 同上一个问题,若分别在不同的.v档下,但clk是连起来的,如:
: : //test1.v
: : always@(posedge clk1) begin
: : A <= B;
: : end
: : ---------------------------
: : //test2.v
: : always@(posedge clk2) begin
: : C <= D;
: : end
: : 这样的话又是谁快?
: 如果是在不同的module...,我不清楚。
: : 如果always里面同时有blocking又有nonblocking的情况我就更搞不清楚了...
: : 4. wire的assign和always@(*)分别是等号右边和判断式变了就变的
: : 那谁会比较先做?
: : 像是:
: : assign A= (B==C)? D:E;
: : 和
: : always@(*)begin
: : B = F;
: : end
: 同2.。
: : 最後想问有关FPGA合成电路critical path warning的问题...
: : 要怎样才能减少这些warning?
: : 明明一个posedge触发间if..else和case的层数以及运算都很少了
: : 它还是会产生critical path或setup和hold time不够的情形
: 我不清楚FPGA的这些问题,
: 但像SoC Encounter、IC Compiler这些physical IC design的tools
: 可以作timing optimization降低setup/hold time slack。
: 但如果setup time slack optimize一直都不过,
: 可能你的电路就是跑不到这麽快,就只好改架构。
: 有时候timing violations也可能是testbench写得不合理。
: : 难道只能一直去改code的写法直到没有warning为止吗?
: : 抱歉问了这麽多问题XD
: : 因为project的架构太大,时序搞混会让bug很难找出来....
: : Thx
文有点久,不过书刚好看到,想提出这个问题来补充一下XD
想请问版上各位先进
如果当情况变成如下:
module test {
........
};
always @ (posedge clk) begin
if(...)
ce <= 1'b0;
else
ce <= 1'b1;
end
always @ (posedge clk) begin
if(ce == 1'b0)
...
else
...
end
endmodule
当两个always存在於一个module,且第二个always会用到第一个always的变数ce
这样的情况是合理的吗?毕竟电路是同时进行?
ce这个变数在执行上会不会有什麽问题?
请各位先进给予指教,谢谢m(_ _)m
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.142.95.199
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1455204831.A.9E8.html
1F:→ hsnuyi: 合成软体会处理 你跑跑看合成不就知道了? 02/11 23:44
2F:→ hsnuyi: 嗯 其实不只合成软体 place&route时也会处理 这和routing 02/11 23:50
3F:→ hsnuyi: 以及clock tree也有关 02/11 23:51
4F:推 bakerly: 很合理啊,这种电路四处可见,就第二个always会比第一个 02/12 11:12
5F:→ bakerly: 慢1T。 02/12 11:12
6F:推 kyo547896321: 很合理吧,fsm就类似这样啊 02/12 17:04