1【題目】:
根據(jù)下面的時(shí)序圖實(shí)現(xiàn)這個(gè)組合邏輯電路。

【個(gè)人思路】:
從上面的q輸出為1處,可以看到a、b均為1,所以邏輯是 a &b.
module top_module (
input a,
input b,
output q );//
assign q = a & b; // Fix me
endmodule
2【題目】:
根據(jù)下面的時(shí)序圖實(shí)現(xiàn)這個(gè)組合邏輯電路。

【個(gè)人思路】:
這個(gè)時(shí)序圖稍微復(fù)雜點(diǎn),最好是列出卡諾圖,如下:

紅色部分的四個(gè)數(shù)據(jù),可以看出來(lái)是 ( a同或b ) 與上 ( c同或d );
藍(lán)色部分的四個(gè)數(shù)據(jù),可以看出來(lái)是 ( a異或b ) 與上 ( c異或d );
紅色+藍(lán)色 =( a異或b ) 同或( c異或d ) =~a^b^c^d;
module top_module (
input a,
input b,
input c,
input d,
output q );//
//assign q = 1-a^b^c^d;
assign q = ~a^b^c^d;
endmodule
3【題目】:
根據(jù)下面的時(shí)序圖實(shí)現(xiàn)這個(gè)組合邏輯電路。

【個(gè)人思路】:
這個(gè)時(shí)序圖稍微復(fù)雜點(diǎn),最好是列出卡諾圖,如下:

像我這樣框起來(lái):紅色:b | d;黃色:b | c;黑色:a | d;綠色:a | c;
module top_module (
input a,
input b,
input c,
input d,
output q );//
assign q = b & d | b & c | a & d | a & c;
endmodule
4【題目】:
根據(jù)下面的時(shí)序圖實(shí)現(xiàn)這個(gè)組合邏輯電路。

【個(gè)人思路】:
這個(gè)時(shí)序圖稍微復(fù)雜點(diǎn),最好是列出卡諾圖,如下:

紅色:c;綠色:b;所以化簡(jiǎn)為 b | c。
module top_module (
input a,
input b,
input c,
input d,
output q );//
assign q = b | c; // Fix me
endmodule
5【題目】:
根據(jù)下面的時(shí)序圖實(shí)現(xiàn)這個(gè)組合邏輯電路。


【個(gè)人思路】 :
可以看出這是一個(gè)4輸入、1輸出的組合電路,且輸出是根據(jù)c的取值來(lái)的,所以這個(gè)是個(gè)4選1電路(MUX4),所以可以用case語(yǔ)句來(lái)根據(jù)c的取值來(lái)進(jìn)行輸出。
module top_module (
input [3:0] a,
input [3:0] b,
input [3:0] c,
input [3:0] d,
input [3:0] e,
output [3:0] q );
always@(*)begin
case(c)
4'd0:q = b;
4'd1:q = e;
4'd2:q = a;
4'd3:q = d;
default: q = 4'hf;
endcase
end
endmodule
6【題目】:
根據(jù)下面的時(shí)序圖實(shí)現(xiàn)這個(gè)組合邏輯電路。

【個(gè)人思路】 :
可以看出這是一個(gè)根據(jù)輸入a的取值來(lái)進(jìn)行輸出的組合電路,可以用case語(yǔ)句來(lái)根據(jù)a的取值來(lái)進(jìn)行輸出。
module top_module (
input [2:0] a,
output [15:0] q );
always@(*)begin
case(a)
3'd0:q = 16'h1232;
3'd1:q = 16'haee0;
3'd2:q = 16'h27d4;
3'd3:q = 16'h5a0e;
3'd4:q = 16'h2066;
3'd5:q = 16'h64ce;
3'd6:q = 16'hc526;
3'd7:q = 16'h2f19;
default:;
endcase
end
endmodule
7【題目】:
根據(jù)下面的時(shí)序圖實(shí)現(xiàn)這個(gè)時(shí)序邏輯電路。

【個(gè)人思路】 :
可以看出輸出q是輸入a的取反,因?yàn)槭菚r(shí)序邏輯,所以輸出落后輸入一個(gè)時(shí)鐘周期。
module top_module (
input clk,
input a,
output q );
always@(posedge clk)begin
if(a)
q <= 1'b0;
else
q <= 1'b1;
end
endmodule
8【題目】:
根據(jù)下面的時(shí)序圖實(shí)現(xiàn)這個(gè)時(shí)序邏輯電路。

【個(gè)人思路】 :
由圖可見(jiàn),p為a在clock為高電平時(shí)的選通信號(hào),q為clock下降沿觸發(fā)的信號(hào),存放p的值。
module top_module (
input clock,
input a,
output p,
output q );
always@(*)begin
if(clock)
p <= a;
else
p <= p;
end
always@(negedge clock)begin
q <= p;
end
endmodule
9【題目】:
根據(jù)下面的時(shí)序圖實(shí)現(xiàn)這個(gè)時(shí)序邏輯電路。

【個(gè)人思路】 :
可以看出這是一個(gè)~a使能的0~6計(jì)數(shù)器,a高電平時(shí)計(jì)數(shù)器復(fù)位到4.
module top_module (
input clk,
input a,
output [3:0] q );
always@(posedge clk)begin
if(~a)begin
if(q == 4'd6)
q <= 4'd0;
else
q <= q + 1'b1;
end
else
q <= 4'd4;
end
endmodule
10【題目】:
根據(jù)下面的時(shí)序圖實(shí)現(xiàn)這個(gè)電路,該電路包含組合邏輯和D觸發(fā)器。

【個(gè)人思路】 :
可以看到當(dāng)輸出q為高電平時(shí),a、b、state三個(gè)中總是有奇數(shù)個(gè)高電平,所以q是a、b、state三個(gè)的偶校驗(yàn)位:q = a ^ b ^ state;
再來(lái)觀察state的變化,state的變化都發(fā)生在(a == b)時(shí),且變化的值為a(或者說(shuō)b),當(dāng)a不等于b時(shí),state保持不變。
module top_module (
input clk,
input a,
input b,
output q,
output state );
assign q = a ^ b ^ state;
always @(posedge clk)begin
if(a == b)
state <= a;
else
state <= state;
end
endmodule
轉(zhuǎn)載:https://gitcode.csdn.net/662b4d5f9ab37021bfb1a3f8.html
-
Verilog
+關(guān)注
關(guān)注
28文章
1364瀏覽量
111570 -
波形圖
+關(guān)注
關(guān)注
1文章
35瀏覽量
15123 -
組合邏輯電路
+關(guān)注
關(guān)注
6文章
71瀏覽量
14843
原文標(biāo)題:FPGA基本功-根據(jù)波形圖編寫Verilog代碼
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
LabVIEW中導(dǎo)出波形圖或圖表至文件
ISE環(huán)境下基于Verilog代碼的仿真測(cè)試pdf下載
基于multisim調(diào)頻仿真電路圖及波形圖詳解
LabVIEW初級(jí)教程之波形圖和波形圖表的詳細(xì)資料說(shuō)明
LabVIEW初級(jí)教程之波形圖和波形圖表的相關(guān)例程合集免費(fèi)下載

根據(jù)波形圖編寫Verilog代碼
評(píng)論