fpga課程設計報告---采用ram實現(xiàn)計數器及fpga功能驗證_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  FPGA課程設計報告</p><p>  題 目:采用RAM實現(xiàn)計數器及FPGA功能驗證</p><p>  院 系: 電子工程學院 </p><p><b>  專業(yè)班級: </b></p><p>  學生姓名: </p><p><b>

2、  導師姓名: </b></p><p>  起止時間:2012-06-18至2012-06-29</p><p>  2012年 07 月 01 日</p><p>  FPGA課程設計報告提綱</p><p><b>  任務</b></p><p>  用一個10

3、5;8的雙口RAM完成10個8位計數器,計數器的初值分別為1~10,時鐘頻率為1MHz,計數器計數頻率為1Hz。</p><p>  用FPGA開發(fā)板上的按鍵作為計數器計數值的輸出選擇控制,數碼管 (或led)作為選擇計數器的計數值輸出。</p><p><b>  目的</b></p><p>  采用RAM實現(xiàn)計數器及FPGA功

4、能驗證</p><p>  使用環(huán)境 (軟件/硬件環(huán)境,設備等)</p><p>  前仿 modelsim </p><p>  后仿 modelsim </p><p>  FPGA課程設計詳細內容</p><p><b>  4.1 技術規(guī)范</b></p><p>

5、  1、先由RAM的數據讀控制端在10個RAM地址中預置的8位初值。 </p><p>  2、將RAM存儲的數據作為計數器的初始值,由計數器的控制端和分頻器分頻的時鐘信號1Hz控制開始計數,暫停鍵暫停計數并同時存入RAM中賦計數器初始值的存儲單元。</p><p>  3、雙端口RAM為10×8RAM由一個地址切換鍵按順序切換1~10個地址端口。</p><

6、p>  4.系統(tǒng)工作流程:切換端口 →→ RAM預置初始值 →→ 讀出數據 →→</p><p>  開始計數 →→ 七段顯示譯碼器譯碼 →→ 輸出到數碼管顯示。</p><p>  分頻:將時鐘頻率為1MHz分頻為計數器計數頻率1Hz,用來進行秒計時。</p><p>  4.2 設計方案,功能驗證方案,以及電路設計源代碼,功能仿真激勵源代碼及功能仿真

7、結果報告:</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>  輸入數據 din[7:0];</p><p>  上升沿有效寫入信號 wr;</p><p>

9、;  輸出數據 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、計數器的功能模塊:</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>  計數:開始計數 start</p><p>  計數器復位 count_reset;<

23、/p><p>  計數輸出 din[7:0];</p><p>  計數暫停 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、’數碼管的顯示功能模塊:</p><p>  din[7:0] dout[7:0] </p>&

32、lt;p>  Reset 復位時三位數碼管顯示為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分頻為計數器計數頻率1Hz,用來進行秒計時。</p><p>  分頻:將時鐘頻率為50MHz分頻為計數器計數頻率1MHz,用來進行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>  //計數器 </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>  // 數碼管顯示</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 后仿真結果報告</p><p><b>  前仿真圖:</b></p><p><b>  后仿真結果報告</b></p><p>  4.7 硬件測試結果報告</p><p>  下載到實驗板上可實現(xiàn)四位地址切換對應1~10個地址</p><p>  w

102、r鍵用來讀取RAM中的數據到計數器</p><p>  start鍵開始計數</p><p><b>  Stop鍵停止計數</b></p><p>  Rd將數讀入到RAM對應的存儲單元中</p><p><b>  Reset清零</b></p><p>  Count_

103、reset計數器清零</p><p>  切換地址并用RD讀出RAM中各地址中數據顯示到數碼管上。</p><p>  4.8 對結果和結論的問題討論</p><p>  最后的實驗結果很好的實現(xiàn)了該試驗的要求。</p><p><b>  課程設計的心得體會</b></p><p>  在本次的

104、課程設計報告中我學會了如何使用modesim和quartus軟件進行電路的驗證和仿真。在電路的設計初始時刻,我沒有理解清楚題意,盲目的進行對電路的模塊進行設計。結果在最后的設計綜合的時候,雖然程序已經很好的工作,但是讓老師檢查的時候卻不符合老師的要求,著實郁悶了一把。正好有個小組里一個同學已經驗收了,我就將她的程序拷貝過來,仔細分析了一下,換了另個思路,發(fā)現(xiàn)原來是自己沒有很好的利用RAM的存儲,經過一天的程序調整以及整體思路的調整,最后

105、終于很好的將程序完成。還有剛開始的時候嘗試用一個按鍵觸發(fā)地址的選擇,出現(xiàn)了問題,和大家討論最終確定了有四位地址選擇地址,很好的解決了問題,從設計中不斷的發(fā)現(xiàn)問題,最后一一將問題解決也是一件樂趣。</p><p>  在時鐘的設計方面,盡量避免時鐘延遲,因為一級延遲可能導致后面模塊</p><p>  現(xiàn)以外而不可避免的錯誤,所以在設計時,要細致認真的設計時鐘信號。且,</p>

106、<p>  在每個使用的if語句過程中,要盡量與else進行匹配,以免產生鎖存。</p><p>  在使用verilog HDL進行電路代碼的書寫時,應該首先總體的設計電路的總體輸入和輸出引腳。并且定義它們的作用。這樣我們就可以在宏觀上對自己設計的電路有了一個整體的理解,不至于在自己設計的時候出現(xiàn)對電路的盲目理解。</p><p>  在定義了引腳后,我們應該對電路進行模塊化

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論