版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> FPGA課程設(shè)計(jì)報告</p><p> 題 目:采用RAM實(shí)現(xiàn)計(jì)數(shù)器及FPGA功能驗(yàn)證</p><p> 院 系: 電子工程學(xué)院 </p><p><b> 專業(yè)班級: </b></p><p> 學(xué)生姓名: </p><p><b>
2、 導(dǎo)師姓名: </b></p><p> 起止時間:2012-06-18至2012-06-29</p><p> 2012年 07 月 01 日</p><p> FPGA課程設(shè)計(jì)報告提綱</p><p><b> 任務(wù)</b></p><p> 用一個10
3、5;8的雙口RAM完成10個8位計(jì)數(shù)器,計(jì)數(shù)器的初值分別為1~10,時鐘頻率為1MHz,計(jì)數(shù)器計(jì)數(shù)頻率為1Hz。</p><p> 用FPGA開發(fā)板上的按鍵作為計(jì)數(shù)器計(jì)數(shù)值的輸出選擇控制,數(shù)碼管 (或led)作為選擇計(jì)數(shù)器的計(jì)數(shù)值輸出。</p><p><b> 目的</b></p><p> 采用RAM實(shí)現(xiàn)計(jì)數(shù)器及FPGA功
4、能驗(yàn)證</p><p> 使用環(huán)境 (軟件/硬件環(huán)境,設(shè)備等)</p><p> 前仿 modelsim </p><p> 后仿 modelsim </p><p> FPGA課程設(shè)計(jì)詳細(xì)內(nèi)容</p><p><b> 4.1 技術(shù)規(guī)范</b></p><p>
5、 1、先由RAM的數(shù)據(jù)讀控制端在10個RAM地址中預(yù)置的8位初值。 </p><p> 2、將RAM存儲的數(shù)據(jù)作為計(jì)數(shù)器的初始值,由計(jì)數(shù)器的控制端和分頻器分頻的時鐘信號1Hz控制開始計(jì)數(shù),暫停鍵暫停計(jì)數(shù)并同時存入RAM中賦計(jì)數(shù)器初始值的存儲單元。</p><p> 3、雙端口RAM為10×8RAM由一個地址切換鍵按順序切換1~10個地址端口。</p><
6、p> 4.系統(tǒng)工作流程:切換端口 →→ RAM預(yù)置初始值 →→ 讀出數(shù)據(jù) →→</p><p> 開始計(jì)數(shù) →→ 七段顯示譯碼器譯碼 →→ 輸出到數(shù)碼管顯示。</p><p> 分頻:將時鐘頻率為1MHz分頻為計(jì)數(shù)器計(jì)數(shù)頻率1Hz,用來進(jìn)行秒計(jì)時。</p><p> 4.2 設(shè)計(jì)方案,功能驗(yàn)證方案,以及電路設(shè)計(jì)源代碼,功能仿真激勵源代碼及功能仿真
7、結(jié)果報告:</p><p> 1、 RAM的功能模塊:</p><p><b> wr</b></p><p><b> rd</b></p><p> addr_in[3:0]</p><p> din [7:0] d
8、out[7:0]</p><p> RAM:reg [7:0] ram[10:1] 10×8的RAM存儲陣列10個字每個子8位</p><p> 輸入端 輸入地址 addr_in[3:0];</p><p> 輸入數(shù)據(jù) din[7:0];</p><p> 上升沿有效寫入信號 wr;</p><p>
9、; 輸出數(shù)據(jù) dout[7:0];</p><p> 上升沿有效讀信號 rd;</p><p> RAM的地址切換:雙端口RAM為10×8RAM由地址切換鍵按順序切換1~10個地址端口</p><p><b> 程序:</b></p><p> input wr,rd;</p><
10、p> input reset,clk_1mhz;</p><p> input addr_in;</p><p> wire[3:0] addr_in;</p><p> input[7:0] din;</p><p> wire[7:0] din;</p><p> output[7:0] dout
11、;</p><p> reg[7:0] dout;</p><p> reg[7:0]mem[10 :1];</p><p> always@(posedge clk_1mhz ,negedge reset )</p><p><b> begin</b></p><p> if(!r
12、eset)</p><p><b> begin</b></p><p> mem[1]<=8'd1;mem[2]<=8'd2;</p><p> mem[3]<=8'd3;mem[4]<=8'd4;</p><p> mem[5]<=8'd5
13、;mem[6]<=8'd6;</p><p> mem[7]<=8'd7;mem[8]<=8'd8;</p><p> mem[9]<=8'd9;mem[10]<=8'd10;</p><p><b> end</b></p><p> els
14、e if(wr == 1 && rd == 0)</p><p> mem[addr_in] <= din;</p><p> else if(rd == 1 && wr == 0)</p><p> dout <= mem[addr_in] ;</p><p><b> end&
15、lt;/b></p><p><b> Endmodule</b></p><p> 激勵模塊:module test;</p><p> reg clk_1mhz,wr,rd,reset;</p><p> reg [7:0] din;</p><p> reg [3:0] a
16、ddr_in;</p><p> wire[7:0] dout;</p><p> ram ram(wr,rd,reset,dout,clk_1mhz,din,addr_in); </p><p><b> initial</b></p><p><b> begin</b></p
17、><p> reset=1'd1;clk_1mhz=1'd0;</p><p> wr=1'd0;rd=1'd0;</p><p> addr_in=4'd0;</p><p> #2 reset=1'd0;</p><p> #2 rd=1'd1;<
18、/p><p> #2 addr_in=4'd0;#2 addr_in=4'd1;</p><p> #2 addr_in=4'd2;#2 addr_in=4'd3;#2 addr_in=4'd4;</p><p> #2 addr_in=4'd5;#2 addr_in=4'd6;#2 addr_in=4
19、9;d7;</p><p> #2 addr_in=4'd8;#2 addr_in=4'd9;#2 addr_in=4'd10;</p><p> #3 rd=1'd0;wr=1'd1;</p><p> din=8'd60;</p><p> #3 din=8'd20;#3 d
20、in=8'd25;#3 din=8'd10;#3 din=8'd6;</p><p><b> end </b></p><p><b> always </b></p><p> forever begin</p><p> #1 clk_1mhz = ~clk
21、_1mhz;</p><p><b> end</b></p><p><b> Endmodule</b></p><p> 2、計(jì)數(shù)器的功能模塊:</p><p><b> rd</b></p><p><b> clk_1hz&
22、lt;/b></p><p> dout [7:0]din[7:0]</p><p><b> start</b></p><p> stopcount_reset</p><p> 計(jì)數(shù):開始計(jì)數(shù) start</p><p> 計(jì)數(shù)器復(fù)位 count_reset;<
23、/p><p> 計(jì)數(shù)輸出 din[7:0];</p><p> 計(jì)數(shù)暫停 stop;</p><p> 程序: module JSQ( dout, start,stop,din, clk_1hz,count_reset);</p><p> output [7:0] din;</p><p> input [7:
24、0] dout;</p><p> input start,stop, clk_1hz,count_reset;</p><p> reg [7:0] din;</p><p> always @(posedge clk_1hz)</p><p><b> begin </b></p><p&
25、gt; if(!count_reset)din=dout;</p><p><b> else</b></p><p> if(din==8'd255) din = 8'd0;</p><p> else if((start == 1) && (stop == 0)) din = din+1
26、;</p><p> else din=din;</p><p><b> end </b></p><p><b> endmodule</b></p><p> 激勵模塊: module test;</p><p> wire [7:0] din;</p
27、><p> reg [7:0] dout;</p><p> reg start,stop, clk_1hz,count_reset;</p><p> JSQ ff( dout, start,stop,din, clk_1hz,count_reset);</p><p><b> initial</b></p
28、><p><b> begin</b></p><p> stop=1'd0;</p><p> start=1'd0;</p><p> clk_1hz=1'd0;</p><p> count_reset=1'd0;</p><p>
29、; #2 dout=8'd1;</p><p> #3 count_reset=~count_reset;</p><p> #2 start=1'd1;</p><p> #30 start=~start;</p><p> #1 dout=8'd9;</p><p> #3 co
30、unt_reset=~count_reset;</p><p> #2 start=1'd1;</p><p><b> end </b></p><p><b> always </b></p><p> forever begin</p><p> #
31、1 clk_1hz = ~clk_1hz;</p><p><b> end</b></p><p> endmodule </p><p> 3、’數(shù)碼管的顯示功能模塊:</p><p> din[7:0] dout[7:0] </p>&
32、lt;p> Reset 復(fù)位時三位數(shù)碼管顯示為000.</p><p> 程序:module SMG(dout,hex_b,hex_s, hex_g);</p><p> input[7:0] dout;</p><p> output [7:0] hex_b;</p><p> output [7:0] hex_s;&l
33、t;/p><p> output [7:0] hex_g; </p><p> reg [7:0] hex_b;</p><p> reg [7:0] hex_s;</p><p> reg [7:0] hex_g;</p><p> reg [3:0] dout_b; </p>&l
34、t;p> reg [3:0] dout_s;</p><p> reg [3:0] dout_g;</p><p> always @(dout ) </p><p><b> begin</b></p><p> begin </p><p> dout_b = d
35、out/100; </p><p> dout_s = dout/10; </p><p> dout_g = dout%10;</p><p> case(dout_b)</p><p> 4'd0:hex_b = 8'hC0;</p><p> 4'd1:hex_b = 8
36、39;hF9;</p><p> 4'd2:hex_b = 8'hA4;</p><p> 4'd3:hex_b = 8'hB0;</p><p> 4'd4:hex_b = 8'h99;</p><p> 4'd5:hex_b = 8'h92;</p>&
37、lt;p> 4'd6:hex_b = 8'h82;</p><p> 4'd7:hex_b = 8'hf8;</p><p> 4'd8:hex_b = 8'h80;</p><p> 4'd9:hex_b = 8'h90; </p><p> default:
38、hex_b = 8'hC0;</p><p><b> endcase</b></p><p> case(dout_s)</p><p> 4'd0:hex_s = 8'hC0;</p><p> 4'd1:hex_s = 8'hF9;</p><p
39、> 4'd2:hex_s = 8'hA4;</p><p> 4'd3:hex_s = 8'hB0;</p><p> 4'd4:hex_s = 8'h99;</p><p> 4'd5:hex_s = 8'h92;</p><p> 4'd6:hex_s
40、 = 8'h82;</p><p> 4'd7:hex_s = 8'hf8;</p><p> 4'd8:hex_s = 8'h80;</p><p> 4'd9:hex_s = 8'h90; </p><p> default: hex_s = 8'hC0;</p
41、><p><b> endcase</b></p><p> case(dout_g)</p><p> 4'd0:hex_g = 8'hC0;</p><p> 4'd1:hex_g = 8'hF9;</p><p> 4'd2:hex_g = 8&
42、#39;hA4;</p><p> 4'd3:hex_g = 8'hB0;</p><p> 4'd4:hex_g = 8'h99;</p><p> 4'd5:hex_g = 8'h92;</p><p> 4'd6:hex_g = 8'h82;</p>
43、<p> 4'd7:hex_g = 8'hf8;</p><p> 4'd8:hex_g = 8'h80;</p><p> 4'd9:hex_g = 8'h90;</p><p> default: hex_g = 8'hC0;</p><p><b>
44、endcase</b></p><p><b> end</b></p><p><b> end</b></p><p><b> Endmodule</b></p><p><b> 激勵模塊:</b></p><
45、;p> module test;</p><p> reg[7:0] dout;</p><p> wire [7:0] hex_b;</p><p> wire [7:0] hex_s;</p><p> wire [7:0] hex_g; </p><p> SMG smg(dout ,
46、 hex_b,hex_s, hex_g);</p><p><b> initial</b></p><p><b> begin</b></p><p> dout=8'd0;</p><p> #2 dout= 8'd9;</p><p>
47、 #2 dout= 8'd99;</p><p> #2 dout= 8'd199;</p><p><b> end</b></p><p> endmodule</p><p> 4、分頻器功能模塊:</p><p><b> clk</b>
48、</p><p> clk_1hz//clk_1mhz</p><p> 分頻:將時鐘頻率為50MHz分頻為計(jì)數(shù)器計(jì)數(shù)頻率1Hz,用來進(jìn)行秒計(jì)時。</p><p> 分頻:將時鐘頻率為50MHz分頻為計(jì)數(shù)器計(jì)數(shù)頻率1MHz,用來進(jìn)行ram控制輸入、輸出。</p><p> 分頻:時鐘信號clk;</p><p>
49、; 分頻信號 clk_1hz、clk_1mhz;</p><p><b> 程序:</b></p><p> module FPQ(clk,clk_1hz,clk_1mhz,reset);</p><p> input clk;</p><p> input reset;</p><p>
50、; output clk_1hz,clk_1mhz;</p><p> reg clk_1hz,clk_1mhz;</p><p> reg [29:0] cnt;</p><p> reg [4:0] cnt1;</p><p><b> //???</b></p><p> alw
51、ays @(posedge clk, negedge reset) </p><p><b> begin</b></p><p> if(!reset)</p><p><b> begin</b></p><p> clk_1mhz = 0; cnt1 <= 5'd0;
52、</p><p><b> end</b></p><p><b> else </b></p><p> if(cnt1 == 5'd25)</p><p><b> begin</b></p><p> cnt1 <= 5
53、39;b0;</p><p> clk_1mhz <= ~clk_1mhz;</p><p><b> end</b></p><p><b> else </b></p><p> cnt1 <= cnt1 +1'b1;</p><p><
54、b> end</b></p><p> always @(posedge clk,negedge reset) </p><p><b> begin</b></p><p> if(!reset)</p><p><b> begin</b></p>
55、<p> clk_1hz = 0; cnt <= 30'd0;</p><p><b> end</b></p><p><b> else </b></p><p> if(cnt == 30'd2500_0000)</p><p><b> b
56、egin</b></p><p> cnt <= 30'b0;</p><p> clk_1hz <= ~clk_1hz;</p><p><b> end</b></p><p><b> else </b></p><p> cn
57、t <= cnt +1'b1;</p><p><b> end</b></p><p><b> endmodule</b></p><p> 激勵模塊:module test;</p><p> reg clk,reset;</p><p> wi
58、re clk_1hz,clk_1mhz;</p><p> FPQ FRQ1(clk,clk_1hz,clk_1mhz,reset);</p><p><b> initial</b></p><p><b> begin</b></p><p><b> clk=1'd0
59、;</b></p><p> reset =1'd0;</p><p> #9 reset=1'd1;</p><p><b> end</b></p><p><b> always</b></p><p><b> begi
60、n</b></p><p> #1 clk=~clk;</p><p><b> end </b></p><p> endmodule </p><p><b> 5、總體模塊:</b></p><p> 總程序:module ram(wr,rd,
61、clk,start,stop,reset,dout,clk_1hz,clk_1mhz,count_reset,din,addr_in, hex_b,hex_s, hex_g);</p><p> input wr,rd;</p><p> input clk;</p><p> input start,stop,reset,count_reset;</p
62、><p> input addr_in;</p><p> wire[3:0] addr_in;</p><p> output[wordlength - 1:0] din;</p><p> reg[wordlength - 1:0] din;</p><p> output[wordlength - 1:0]
63、 dout;</p><p> reg[wordlength - 1:0] dout;</p><p> output clk_1hz,clk_1mhz;</p><p> reg clk_1hz,clk_1mhz;</p><p> reg[wordlength - 1:0]mem[addrlength :1];</p>
64、;<p> reg [29:0] cnt;</p><p> reg [4:0] cnt1;</p><p> parameter wordlength = 8;</p><p> parameter addrlength = 10;</p><p> output [7:0] hex_b;</p>&
65、lt;p> output [7:0] hex_s;</p><p> output [7:0] hex_g; </p><p> reg [7:0] hex_b;</p><p> reg [7:0] hex_s;</p><p> reg [7:0] hex_g;</p><p>
66、reg [3:0] dout_b; </p><p> reg [3:0] dout_s;</p><p> reg [3:0] dout_g;</p><p><b> //分頻器</b></p><p> always @(posedge clk, negedge reset) </p>&
67、lt;p><b> begin</b></p><p> if(!reset)</p><p><b> begin</b></p><p> clk_1mhz = 0; cnt1 <= 5'd0;</p><p><b> end</b><
68、/p><p><b> else </b></p><p> if(cnt1 == 5'd25)</p><p><b> begin</b></p><p> cnt1 <= 5'b0;</p><p> clk_1mhz <= ~clk_
69、1mhz;</p><p><b> end</b></p><p><b> else </b></p><p> cnt1 <= cnt1 +1'b1;</p><p><b> end</b></p><p> always
70、 @(posedge clk,negedge reset) </p><p><b> begin</b></p><p> if(!reset)</p><p><b> begin</b></p><p> clk_1hz = 0; cnt <= 30'd0;</
71、p><p><b> end</b></p><p><b> else </b></p><p> if(cnt == 30'd2500_0000)</p><p><b> begin</b></p><p> cnt <= 30
72、'b0;</p><p> clk_1hz <= ~clk_1hz;</p><p><b> end</b></p><p><b> else </b></p><p> cnt <= cnt +1'b1;</p><p><b&
73、gt; end</b></p><p><b> //RAM</b></p><p> always@(posedge clk_1mhz ,negedge reset )</p><p><b> begin</b></p><p> if(!reset)</p>
74、<p><b> begin</b></p><p> mem[1]<=8'd1;mem[2]<=8'd2;</p><p> mem[3]<=8'd3;mem[4]<=8'd4;</p><p> mem[5]<=8'd5;mem[6]<=8
75、9;d6;</p><p> mem[7]<=8'd7;mem[8]<=8'd8;</p><p> mem[9]<=8'd9;mem[10]<=8'd10;</p><p><b> end</b></p><p> else if(wr == 1 &am
76、p;& rd == 0)</p><p> mem[addr_in] <= din;</p><p> else if(rd == 1 && wr == 0)</p><p> dout <= mem[addr_in] ;</p><p><b> end</b></p&
77、gt;<p><b> //計(jì)數(shù)器 </b></p><p> always@(posedge clk_1hz ,negedge count_reset)</p><p><b> begin </b></p><p> if(!count_reset) din = 8'd0;<
78、/p><p> else if( rd ) din = dout;</p><p> else if(din==8'd255) din = 8'd0;</p><p> else if((start == 1) && (stop == 0)) din = din+1;</p><p>
79、; else din=din;</p><p><b> end </b></p><p><b> // 數(shù)碼管顯示</b></p><p> always @(dout or reset) </p><p><b> begin</b></p>
80、<p> if(!reset)</p><p><b> begin </b></p><p> hex_b = 8'hC0;</p><p> hex_s = 8'hC0;</p><p> hex_g = 8'hC0;</p><p><b&g
81、t; end</b></p><p><b> else </b></p><p> begin </p><p> dout_b = din/100; </p><p> dout_s = din/10; </p><p> dout_g = din%
82、10;</p><p> case(dout_b)</p><p> 4'd0:hex_b = 8'hC0;</p><p> 4'd1:hex_b = 8'hF9;</p><p> 4'd2:hex_b = 8'hA4;</p><p> 4'd3:
83、hex_b = 8'hB0;</p><p> 4'd4:hex_b = 8'h99;</p><p> 4'd5:hex_b = 8'h92;</p><p> 4'd6:hex_b = 8'h82;</p><p> 4'd7:hex_b = 8'hf8;&l
84、t;/p><p> 4'd8:hex_b = 8'h80;</p><p> 4'd9:hex_b = 8'h90; </p><p> default: hex_b = 8'hC0;</p><p><b> endcase</b></p><p>
85、 case(dout_s)</p><p> 4'd0:hex_s = 8'hC0;</p><p> 4'd1:hex_s = 8'hF9;</p><p> 4'd2:hex_s = 8'hA4;</p><p> 4'd3:hex_s = 8'hB0;</p
86、><p> 4'd4:hex_s = 8'h99;</p><p> 4'd5:hex_s = 8'h92;</p><p> 4'd6:hex_s = 8'h82;</p><p> 4'd7:hex_s = 8'hf8;</p><p> 4
87、39;d8:hex_s = 8'h80;</p><p> 4'd9:hex_s = 8'h90; </p><p> default: hex_s = 8'hC0;</p><p><b> endcase</b></p><p> case(dout_g)</p>
88、<p> 4'd0:hex_g = 8'hC0;</p><p> 4'd1:hex_g = 8'hF9;</p><p> 4'd2:hex_g = 8'hA4;</p><p> 4'd3:hex_g = 8'hB0;</p><p> 4'd4
89、:hex_g = 8'h99;</p><p> 4'd5:hex_g = 8'h92;</p><p> 4'd6:hex_g = 8'h82;</p><p> 4'd7:hex_g = 8'hf8;</p><p> 4'd8:hex_g = 8'h80;&
90、lt;/p><p> 4'd9:hex_g = 8'h90;</p><p> default: hex_g = 8'hC0;</p><p><b> endcase</b></p><p><b> end</b></p><p><b&
91、gt; end</b></p><p><b> endmodule</b></p><p> 4.3 綜合及布局布線報告和引腳分布報告</p><p><b> 管腳圖:</b></p><p> To assignment name value
92、 enable</p><p> clkLocation PIN_N2Yes</p><p> addr_in[0]Location PIN_U3Yes</p><p> addr_in[1]Location PIN_U4Yes</p><p> addr_in[
93、2]Location PIN_V1Yes</p><p> addr_in[3]Location PIN_V2Yes</p><p> count_resetLocation PIN_N23Yes</p><p> hex_b[0]Location PIN_AB23Yes&
94、lt;/p><p> hex_b[1]Location PIN_V22 Yes</p><p> hex_b[2]Location PIN_AC25Yes</p><p> hex_b[3]Location PIN_AC26Yes</p><p> hex_b[4]
95、Location PIN_AB26Yes</p><p> hex_b[5]Location PIN_AB25Yes</p><p> hex_b[6]Location PIN_Y24 Yes</p><p> hex_g[0]Location PIN_AF10Yes&
96、lt;/p><p> hex_g[1]Location PIN_AB12Yes</p><p> hex_g[2]Location PIN_AC12Yes</p><p> hex_g[3]Location PIN_AD11Yes</p><p> hex_g[4]Loc
97、ation PIN_AE11Yes</p><p> hex_g[5]Location PIN_V14Yes</p><p> hex_g[6]Location PIN_V13Yes</p><p> hex_s[0]Location PIN_V20Yes</p>
98、<p> hex_s[1]Location PIN_V21Yes</p><p> hex_s[2]Location PIN_W21Yes</p><p> hex_s[3]Location PIN_Y22Yes</p><p> hex_s[4]Location
99、 PIN_AA24Yes</p><p> hex_s[5]Location PIN_AA23Yes</p><p> hex_s[6]Location PIN_AB24Yes</p><p> rdLocation PIN_N25Yes</p><p> res
100、etLocation PIN_G26Yes</p><p> startLocation PIN_N26Yes</p><p> stopLocation PIN_P25Yes</p><p> wrLocation PIN_AE14Yes</p><p
101、> 4.6 后仿真結(jié)果報告</p><p><b> 前仿真圖:</b></p><p><b> 后仿真結(jié)果報告</b></p><p> 4.7 硬件測試結(jié)果報告</p><p> 下載到實(shí)驗(yàn)板上可實(shí)現(xiàn)四位地址切換對應(yīng)1~10個地址</p><p> w
102、r鍵用來讀取RAM中的數(shù)據(jù)到計(jì)數(shù)器</p><p> start鍵開始計(jì)數(shù)</p><p><b> Stop鍵停止計(jì)數(shù)</b></p><p> Rd將數(shù)讀入到RAM對應(yīng)的存儲單元中</p><p><b> Reset清零</b></p><p> Count_
103、reset計(jì)數(shù)器清零</p><p> 切換地址并用RD讀出RAM中各地址中數(shù)據(jù)顯示到數(shù)碼管上。</p><p> 4.8 對結(jié)果和結(jié)論的問題討論</p><p> 最后的實(shí)驗(yàn)結(jié)果很好的實(shí)現(xiàn)了該試驗(yàn)的要求。</p><p><b> 課程設(shè)計(jì)的心得體會</b></p><p> 在本次的
104、課程設(shè)計(jì)報告中我學(xué)會了如何使用modesim和quartus軟件進(jìn)行電路的驗(yàn)證和仿真。在電路的設(shè)計(jì)初始時刻,我沒有理解清楚題意,盲目的進(jìn)行對電路的模塊進(jìn)行設(shè)計(jì)。結(jié)果在最后的設(shè)計(jì)綜合的時候,雖然程序已經(jīng)很好的工作,但是讓老師檢查的時候卻不符合老師的要求,著實(shí)郁悶了一把。正好有個小組里一個同學(xué)已經(jīng)驗(yàn)收了,我就將她的程序拷貝過來,仔細(xì)分析了一下,換了另個思路,發(fā)現(xiàn)原來是自己沒有很好的利用RAM的存儲,經(jīng)過一天的程序調(diào)整以及整體思路的調(diào)整,最后
105、終于很好的將程序完成。還有剛開始的時候嘗試用一個按鍵觸發(fā)地址的選擇,出現(xiàn)了問題,和大家討論最終確定了有四位地址選擇地址,很好的解決了問題,從設(shè)計(jì)中不斷的發(fā)現(xiàn)問題,最后一一將問題解決也是一件樂趣。</p><p> 在時鐘的設(shè)計(jì)方面,盡量避免時鐘延遲,因?yàn)橐患壯舆t可能導(dǎo)致后面模塊</p><p> 現(xiàn)以外而不可避免的錯誤,所以在設(shè)計(jì)時,要細(xì)致認(rèn)真的設(shè)計(jì)時鐘信號。且,</p>
106、<p> 在每個使用的if語句過程中,要盡量與else進(jìn)行匹配,以免產(chǎn)生鎖存。</p><p> 在使用verilog HDL進(jìn)行電路代碼的書寫時,應(yīng)該首先總體的設(shè)計(jì)電路的總體輸入和輸出引腳。并且定義它們的作用。這樣我們就可以在宏觀上對自己設(shè)計(jì)的電路有了一個整體的理解,不至于在自己設(shè)計(jì)的時候出現(xiàn)對電路的盲目理解。</p><p> 在定義了引腳后,我們應(yīng)該對電路進(jìn)行模塊化
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- fpga課程設(shè)計(jì)---基于ram的十口8位計(jì)數(shù)器
- fpga課程設(shè)計(jì)---基于ram的十口8位計(jì)數(shù)器
- 單口ram計(jì)數(shù)器的課程設(shè)計(jì)
- fpga課程設(shè)計(jì)--簡易電子琴設(shè)計(jì)及fpga功能驗(yàn)證
- fpga課程設(shè)計(jì)--簡易電子琴設(shè)計(jì)及fpga功能驗(yàn)證
- 光電計(jì)數(shù)器課程設(shè)計(jì)報告
- 電子計(jì)數(shù)器課程設(shè)計(jì)報告
- 課程設(shè)計(jì)---電子表微控器設(shè)計(jì)及fpga功能驗(yàn)證
- 課程設(shè)計(jì)--8位計(jì)數(shù)器eda課程設(shè)計(jì)報告
- 課程設(shè)計(jì)報告--循環(huán)碼計(jì)數(shù)器
- 基于fpga的計(jì)數(shù)器的程序設(shè)計(jì)
- 自動計(jì)數(shù)器課程設(shè)計(jì)課設(shè)報告
- 單片機(jī)計(jì)數(shù)器課程設(shè)計(jì)報告
- 數(shù)電課程設(shè)計(jì)報告---光電計(jì)數(shù)器設(shè)計(jì)
- 光控計(jì)數(shù)器課程設(shè)計(jì)
- 6進(jìn)制計(jì)數(shù)器課程設(shè)計(jì)
- 里程計(jì)數(shù)器課程設(shè)計(jì)
- 微機(jī)課程設(shè)計(jì)之計(jì)數(shù)器
- 里程計(jì)數(shù)器課程設(shè)計(jì)
- 24進(jìn)制計(jì)數(shù)器課程設(shè)計(jì)
評論
0/150
提交評論