看板 Electronics 關於我們 聯絡資訊
※ 引述《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://www.ptt.cc/bbs/Electronics/M.1455204831.A.9E8.html
hsnuyi: 合成軟體會處理 你跑跑看合成不就知道了? 02/11 23:44
hsnuyi: 嗯 其實不只合成軟體 place&route時也會處理 這和routing 02/11 23:50
hsnuyi: 以及clock tree也有關 02/11 23:51
bakerly: 很合理啊,這種電路四處可見,就第二個always會比第一個 02/12 11:12
bakerly: 慢1T。 02/12 11:12
kyo547896321: 很合理吧,fsm就類似這樣啊 02/12 17:04