[問題] 請問數位邏輯的問題

看板Electronics作者 (d)時間11年前 (2014/11/23 00:39), 11年前編輯推噓1(104)
留言5則, 2人參與, 最新討論串1/3 (看更多)
大家好,前幾天熬夜debug、研究數位邏輯、quartus、verilog、fpga(都熬出病了@@) 終於把code寫出來了,但魯蛇我問題很多 請原諒 我用verilog寫了一個邏輯 truth table如下 clk | c | F ____|____|__ | | ↑ | 1 | A | | ↑ | 0 | B 頻率都是用altpll產生的 其中我給clk的頻率是 4M Hz ~~phase位移125ns(90度) c 是 2M Hz A和B 都是 1M Hz 我預期 F(output)接示波器出來的頻率應該要是2M 但實際上卻是1M(但是把 F<=A 改為 F<=1'b1 之後卻變成2M) 我想請問這個邏輯有問題嗎? 還是code有問題? code如下~~ module block ( A, B, clk, c, F ); input clk, c, A, B; output F; reg F; always @ (posedge c0 ) begin if (c) F <= A; //F <=1'b1; 就是這邊 else F <= B; //F <=1'b0; 就是這邊 end endmodule -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.118.240.42 ※ 文章網址: http://www.ptt.cc/bbs/Electronics/M.1416674363.A.3B9.html ※ 編輯: di7101483 (140.118.240.42), 11/23/2014 00:40:21 ※ 編輯: di7101483 (140.118.240.42), 11/23/2014 00:41:33

11/23 01:33, , 1F
你自己都說了A, B是1M?? @@
11/23 01:33, 1F

11/23 01:35, , 2F
這你自己用手畫個waveform, 只花一分鐘
11/23 01:35, 2F
我有把waveform畫出來了 但是F頻率不應該是跟著CLK的上緣處發嗎? 我用下面的方法這樣寫輸出還是1M耶....好奇怪喔 if (c) begin if(A) F <= 1'b1; else if(!A) F <= 1'b0; end else begin if(B) F <= 1'b1; else if(!B) F <= 1'b0; end truth table 如下 clk | c | A | B | F ____|____|___|___|___ | | 1 | x | 1 ↑ | 1 | 0 | x | 0 | | | | | | x | 1 | 1 ↑ | 0 | x | 0 | 0 ※ 編輯: di7101483 (140.118.240.42), 11/23/2014 01:50:37 ※ 編輯: di7101483 (140.118.240.42), 11/23/2014 01:58:37

11/23 02:35, , 3F
你拍一張你畫的waveform來看吧
11/23 02:35, 3F

11/23 02:38, , 4F
觸發了但qualifier沒變也不會改變狀態啊
11/23 02:38, 4F

11/23 08:48, , 5F
AB 1MHz clk 4MHz, 都跨clock domain了..
11/23 08:48, 5F
下面是我畫的waveform https://www.dropbox.com/s/ezkkkxyp1hy61y8/IMAG0001.jpg?dl=0 A、B這兩個CLOCK因為頻率和相位都一樣,然後A = ~B 所以我只畫A來代表 我的目的只是想抓取A和B這兩個1M的CLOCK 然後輸出變成2M 所以程式方面就是只有clk上緣處發的時候動作 --> always@(posedge clk) ※ 編輯: di7101483 (140.118.181.41), 11/23/2014 13:04:33 ※ 編輯: di7101483 (140.118.181.41), 11/23/2014 13:04:58
文章代碼(AID): #1KSBmxEv (Electronics)
文章代碼(AID): #1KSBmxEv (Electronics)