Re: [問題] 請問數位邏輯的問題
※ 引述《di7101483 (d)》之銘言:
: 大家好,前幾天熬夜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
F輸出跟AB走,你寫的東西就是多工器,c是選擇線。
所以F是1MHz
: 但實際上卻是1M(但是把 F<=A 改為 F<=1'b1 之後卻變成2M)
: 我想請問這個邏輯有問題嗎?
2M?我的waveform還是1M,只是dutycycle不一樣。
我覺得你要不要把多工器那節的東西要K一下?
c是選擇線、選擇線、選擇線(很重要所以講三次)
: 還是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
啊你的testbench哩?我的code放上來你自己實驗一下...
//exam01.v
module exam01(clk,C,A,B,F);
input clk,C,A,B;
output F;
reg Q;
always @(posedge clk)
begin
if(C)
Q <= A;
else
Q <= B;
end
assign F = Q;
endmodule
//exam01_tb.v testbench for exam01.v
`timescale 10ns/1ps
`include "exam01.v"
module exam01_tb();
reg clk, c, b, a;
wire f;
initial begin
clk = 0;
c = 0;
b = 0;
a = 0;
end
always #12.5 clk = ~clk;
always #25 c = ~c;
always #50 b = ~b;
always #50 a = ~a;
exam01 tsm(clk, c, b, a, f);
initial
begin
$dumpfile("exam01.vcd");
$dumpvars;
#1000 $finish;
end
endmodule
--
不要問我從哪來,我只是一個浪跡天涯的工程師....
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.158.199
※ 文章網址: http://www.ptt.cc/bbs/Electronics/M.1416718523.A.1E2.html
※ 編輯: MasterChang (123.193.158.199), 11/23/2014 12:57:25
※ 編輯: MasterChang (123.193.158.199), 11/23/2014 12:57:49
推
11/23 13:31, , 1F
11/23 13:31, 1F
→
11/23 13:33, , 2F
11/23 13:33, 2F
→
11/23 13:34, , 3F
11/23 13:34, 3F
推
11/23 13:53, , 4F
11/23 13:53, 4F
直接燒到FPGA測試又怎樣?
clk只是同步信號而已,輸出還是看A或B(C是選擇線)。
以前學校老師講過"觀念對了,做的東西才有正確的機會。"
※ 編輯: MasterChang (123.193.158.199), 11/23/2014 17:04:54
推
11/23 20:17, , 5F
11/23 20:17, 5F
→
11/23 20:18, , 6F
11/23 20:18, 6F
→
11/23 20:18, , 7F
11/23 20:18, 7F
→
11/23 20:19, , 8F
11/23 20:19, 8F
推
11/24 02:00, , 9F
11/24 02:00, 9F
討論串 (同標題文章)