寫在前面:本文提供以下三個(gè)任務(wù)的思路講解和代碼實(shí)現(xiàn), 如需參考引腳配置說明,可以點(diǎn)擊下方鏈接跳轉(zhuǎn)查看完整實(shí)驗(yàn)報(bào)告;本實(shí)驗(yàn)使用的是Altera公司的cycloneⅢ類型的芯片。
Verilog HDL實(shí)現(xiàn):7人表決器 信號(hào)發(fā)生器 多功能數(shù)字時(shí)鐘
7人表決器
- 實(shí)驗(yàn)?zāi)繕?biāo):實(shí)現(xiàn)7人投票表決電路,支持人數(shù)≥4則表決通過,否則表決不通過。
- 電路思路:①輸入7路并行信號(hào)
[6:0] vote
表示7個(gè)人,用開關(guān)控件控制。開關(guān)開啟表示支持,輸入一個(gè)電平信號(hào),否則為零電平。②用條件判斷語句對7路信號(hào)依次進(jìn)行判斷,給定一個(gè)中間信號(hào)[2:0] sum
,如果判斷為1(高電平)則sum加1,最終sum如果大于等于4,輸出高電平。輸出pass
信號(hào)連接led燈。 - 實(shí)驗(yàn)代碼:
module vote_7(pass,vote,sum);
output pass;
output sum;
input [6:0] vote;
reg [2:0] sum;
reg i;
reg pass;
always @(vote)
begin
sum = 0;
for(i = 0; i<=6; i=i+1)
begin
if(vote[i])sum=sum+1;
if(sum[2])pass=1;
else pass=0;
end
end
endmodule
- 測試文件:
`timescale 1ns/100ps
module vote_7_tb;
output pass;
reg [6:0] vote;
wire [2:0] sum;
reg i;
wire pass;
vote_7 t(pass,vote,sum);
initial
begin
vote = 7'b0000000;
#10 vote = 7'b0000010;
#10 vote = 7'b0001100;
#10 vote = 7'b0011100;
#10 vote = 7'b0010111;
#10 vote = 7'b0100000;
#10 vote = 7'b0110000;
#10 vote = 7'b0111100;
#10 vote = 7'b0010100;
#10 vote = 7'b0110101;
#10 $stop;
end
endmodule
- 實(shí)驗(yàn)注意點(diǎn):本實(shí)驗(yàn)思路相對簡單,但是也要注意一個(gè)地方,就是中間信號(hào)
[2:0] sum
是以二進(jìn)制的形式存儲(chǔ),所以不是用[2:0] sum≥4
判斷的,而是用最高位是否為高電平作為依據(jù),最高位sum[2]=1表示已有4人支持,輸出1通過。這一點(diǎn)要注意,我們在設(shè)計(jì)代碼時(shí)要時(shí)刻保持用二進(jìn)制的視角思考問題。
巴克碼信號(hào)發(fā)生器
- 實(shí)驗(yàn)?zāi)繕?biāo):用Verilog HDL設(shè)計(jì)一個(gè)序列信號(hào)發(fā)生器,要求能自動(dòng)產(chǎn)生周期性的1110010序列。
- 電路思路:時(shí)鐘信號(hào)
clk
作為輸入,當(dāng)時(shí)鐘處于上升沿時(shí),信號(hào)顯示端依次變化并產(chǎn)生巴克碼的各個(gè)位數(shù),最終產(chǎn)生1110010的序列。 - 實(shí)驗(yàn)代碼:
module bkm(clk,rst,dout);
input clk,rst;
output dout;
reg dout;
reg [2:0] state;
parameter s6 = 3'b110, s5 = 3'b101, s4 = 3'b100, s3 = 3'b011, s2 = 3'b010, s1 = 3'b001, s0 = 3'b000;
always @(posedge clk or negedge rst)
begin
if(!rst)
begin state <= s6; dout<= 1; end
else
begin
case
文章來源地址http://www.zghlxwxcb.cn/news/detail-755255.html
文章來源:http://www.zghlxwxcb.cn/news/detail-755255.html
到了這里,關(guān)于FPGA實(shí)驗(yàn)報(bào)告 Verilog HDL:7人表決器 巴克碼信號(hào)發(fā)生器 FPGA數(shù)字時(shí)鐘的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!