樂曲演奏課程設計報告---樂曲演奏電路的設計_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  《EDA技術綜合設計》</p><p><b>  課程設計報告</b></p><p>  報告題目: 樂曲演奏電路的設計 </p><p>  作者所在系部: </p><p>  作者所在專業(yè): </p><p>

2、;  作者所在班級: </p><p>  作 者 姓 名 : </p><p>  指導教師姓名: </p><p>  完 成 時 間 : </p><p><b>  內 容 摘 要</b>&l

3、t;/p><p>  在EDA開發(fā)工具Quartus II 6.0平臺上,采用VHDL語言層次化和模塊化的設計方法,通過音符編碼的設計思想,預先定制樂曲,實現(xiàn)動態(tài)顯示樂曲演奏電路的設計,并在此基礎上,基于同一原理,使此電路同時具備了簡易電子琴的功能,使基于CPLD/FPGA芯片的樂曲播放數(shù)字電路得到了更好的優(yōu)化,提高了設計的靈活性和可擴展性。</p><p>  關鍵字:EDA;Quartus

4、 II;VHDL;CPLD/FPGA;樂曲演奏電路;簡易電子琴</p><p><b>  課程設計任務書</b></p><p><b>  二、設計原理</b></p><p><b>  音調的控制</b></p><p>  頻率的高低決定了音調的高低。音樂的十二平均率

5、規(guī)定:每兩個八度音(如簡譜中的中音1和高音1)之間的頻率相差一倍。在兩個八度音之間又分為十二個半音。另外,音名A(簡譜中的低音6)的頻率為440Hz,音名B到C之間、E到F之間為半音,其余為全音。由此可以計算出簡譜中從低音1到高音1之間每個音名對應的頻率,所有不同頻率的信號都是從同一個基準頻率分頻得到的。由于音階頻率多為非整數(shù),而分頻系數(shù)又不能為小數(shù),因此必須將計算得到的分頻數(shù)四舍五入取整。若基準頻率過低,則由于分頻比太小,四舍五入取整

6、后的誤差較大;若基準頻率過高,雖然誤差較小,但分頻數(shù)將變大。實際的設計應綜合考慮這兩方面的因素,在盡量減小頻率誤差的前提下取合適的基準頻率。因此,要想FPGA發(fā)出不同音符的音調,實際上只要控制它輸出相應音符的頻率即可。綜合考慮各因素,本文中選取12MHZ作為CLK的分頻計數(shù)器的輸入分頻信號。樂曲都是由一連串的音符組成,因此按照樂曲的樂譜依次輸出這些音符所對應的頻率,就可以在揚聲器上連續(xù)地發(fā)出各個音符的音調。</p><

7、;p>  表3-1 簡譜中的音名與頻率的關系</p><p>  資料來源:EPM7128實驗板說明書</p><p><b>  音長的控制</b></p><p>  音符的持續(xù)時間須根據樂曲的速度及每個音符的節(jié)拍數(shù)來確定。因此,在想控制音符的音長,就必須知道樂曲的速度和每個音符所對應的節(jié)拍數(shù),在這個設計中所演奏的樂曲的最短的音符為四

8、分音符,如果將全音符的持續(xù)時間設為1s的話,那么一拍所應該持續(xù)的時間為0.25秒,則只需要再提供一個4HZ的時鐘頻率即可產生四分音符的時長。要想讓系統(tǒng)知道現(xiàn)在應該演奏哪個音符,而這個音符持續(xù)的時間應該是多少,就必須編寫樂曲文件,在樂曲文件中音符是按地址存放的,當系統(tǒng)工作時就按4Hz的頻率依次讀取簡譜,當系統(tǒng)讀到某個音符的簡譜時就對應發(fā)這個音符的音調,持續(xù)時間為0.25秒,而如果在曲譜文件中這個音符為三拍音長,那又該如何控制呢?其實只要將

9、該音符連續(xù)書寫三遍,這時系統(tǒng)讀樂曲文件的時候就會連續(xù)讀到三次,也就會發(fā)三個0.25秒的音長,這時我們聽上去就會持續(xù)了三拍的時間,通過這樣一個簡單的操作就可以控制音樂的音長了。</p><p><b>  三.源程序</b></p><p><b>  1、編碼器。</b></p><p>  library ieee;&l

10、t;/p><p>  use ieee.std_logic_1164.all;</p><p>  entity bianma is port(</p><p>  din:in std_logic_vector(3 downto 0);</p><p>  view:out std_logic_vector(2 downto 0);</p

11、><p>  dout:out std_logic_vector(10 downto 0));</p><p>  end bianma;</p><p>  architecture made_bianma of bianma is</p><p><b>  begin</b></p><p> 

12、 process(din)</p><p><b>  begin</b></p><p>  case din is</p><p><b>  --gao_yin</b></p><p>  --when ""=>dout<="11100000011&

13、quot;;--1795</p><p>  --when ""=>dout<="11011100100";--1764</p><p>  --when ""=>dout<="11011000001";--1729</p><p>  when "11

14、00"=>dout<="11010011010";view<="110";--1690--12</p><p>  when "1011"=>dout<="11010000101";view<="110";--1669--11</p><p> 

15、 when "1010"=>dout<="11001010110";view<="110";--1622--10</p><p>  when "1001"=>dout<="11000100010";view<="110";--1570--9</p>

16、;<p>  --zhong_yin</p><p>  --when ""=>dout<="11000000110";--1542</p><p>  --when ""=>dout<="10111001000";--1480</p><p>  

17、--when ""=>dout<="10110000010";--1410</p><p>  when "1000"=>dout<="10100110100";view<="101";--1332--8</p><p>  when "0111&qu

18、ot;=>dout<="10100001010";view<="101";--1290--7</p><p>  when "0110"=>dout<="10010101101";view<="101";--1197--6</p><p>  when &

19、quot;0101"=>dout<="10001000100";view<="101";--1092--5</p><p><b>  --di_yin</b></p><p>  --when ""=>dout<="10000001100";--1

20、036</p><p>  --when ""=>dout<="01110010000";--912</p><p>  --when ""=>dout<="01100001101";--781</p><p>  when "0100"=&g

21、t;dout<="01001101000";view<="011";--616--4</p><p>  when "0011"=>dout<="01000010000";view<="011";--528--3</p><p>  when "001

22、0"=>dout<="00101011001";view<="011";--345--2</p><p>  when "0001"=>dout<="00010001001";view<="011";--137--1</p><p>  when

23、 others => dout<="11111111111"; --2047</p><p><b>  end case;</b></p><p>  end process;</p><p>  end made_bianma;</p><p><b>  2、三選一<

24、/b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity change is port(</p><p>  din1,din2,din3,din4:in std_logic_vector(3 downto 0);</p&

25、gt;<p>  cs:in std_logic_vector(1 downto 0);</p><p>  dout:out std_logic_vector(3 downto 0));</p><p>  end change;</p><p>  architecture made_change of change is</p>&

26、lt;p><b>  begin</b></p><p>  process(cs)</p><p><b>  begin</b></p><p>  case cs is</p><p>  when "00" =>dout<=din1;</p>

27、<p>  when "01" =>dout<=din2;</p><p>  when "10" =>dout<=din3;</p><p>  when "11" =>dout<=din4;</p><p>  when others =>dout

28、<=din1;</p><p><b>  end case;</b></p><p>  end process;</p><p>  end made_change;</p><p><b>  3、分頻器</b></p><p>  library ieee;&l

29、t;/p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity fenpin is port(</p><p>  din: in std_logic_vector(10 downto 0);</p>

30、<p>  clk: in std_logic;</p><p>  dout: out std_logic);</p><p>  end fenpin;</p><p>  architecture made of fenpin is</p><p>  signal temp:std_logic_vector(10 dow

31、nto 0);</p><p><b>  begin</b></p><p>  process(din,clk)</p><p><b>  begin</b></p><p>  if(clk'event and clk='1')then</p><

32、p>  if(temp=2047)then</p><p>  temp<=din;</p><p><b>  else</b></p><p>  temp<=temp+1;</p><p><b>  end if;</b></p><p><

33、;b>  end if;</b></p><p>  end process;</p><p>  dout<='1' when temp=2046</p><p><b>  else '0';</b></p><p><b>  end made;&l

34、t;/b></p><p><b>  4、音樂模塊1</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>

35、  entity made_music is</p><p><b>  port(</b></p><p>  clk_2hz:in std_logic;</p><p>  dout:out std_logic_vector(3 downto 0));</p><p>  end made_music;</p&

36、gt;<p>  architecture make_music of made_music is</p><p>  signal temp:std_logic_vector(5 downto 0);</p><p><b>  begin</b></p><p>  process(clk_2hz)</p>&l

37、t;p><b>  begin</b></p><p>  if(clk_2hz'event and clk_2hz='1') then</p><p>  if(temp=48) then </p><p>  temp<="000000";</p><p>&l

38、t;b>  else </b></p><p>  temp<=temp+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  p

39、rocess(temp)</p><p><b>  begin</b></p><p>  case temp is</p><p>  when "000000" =>dout<="0001"; --1</p><p>  when "000001&quo

40、t; =>dout<="0001"; --1</p><p>  when "000010" =>dout<="0011"; --3</p><p>  when "000011" =>dout<="0011"; --3</p><p&

41、gt;  when "000100" =>dout<="0010"; --2</p><p>  when "000101" =>dout<="0010"; --2</p><p>  when "000110" =>dout<="0100&qu

42、ot;; --4</p><p>  when "000111" =>dout<="0100"; --4</p><p>  when "001000" =>dout<="0101"; --5</p><p>  when "001001" =

43、>dout<="0101"; --5</p><p>  when "001010" =>dout<="0111"; --7</p><p>  when "001011" =>dout<="0111"; --7</p><p> 

44、 when "001100" =>dout<="0110"; --6</p><p>  when "001101" =>dout<="0110"; --6</p><p>  when "001110" =>dout<="1000";

45、 --8</p><p>  when "001111" =>dout<="1000"; --8</p><p>  when "010000" =>dout<="1001"; --9</p><p>  when "010001" =>

46、dout<="1001"; --9</p><p>  when "010010" =>dout<="1011"; --11</p><p>  when "010011" =>dout<="1011"; --11</p><p>  w

47、hen "010100" =>dout<="1100"; --12</p><p>  when "010101" =>dout<="1100"; --12</p><p>  when "010110" =>dout<="1011";

48、 --11</p><p>  when "010111" =>dout<="1011"; --11</p><p>  when "011000" =>dout<="1010"; --10</p><p>  when "011001" =&

49、gt;dout<="1010"; --10</p><p>  when "011010" =>dout<="0101"; --5</p><p>  when "011011" =>dout<="0101"; --5</p><p> 

50、 when "011100" =>dout<="1000"; --8</p><p>  when "011101" =>dout<="1000"; --8</p><p>  when "011110" =>dout<="0110";

51、 --6</p><p>  when "011111" =>dout<="0110"; --6</p><p>  when "100000" =>dout<="0111"; --7</p><p>  when "100001" =>

52、dout<="0111"; --7</p><p>  when "100010" =>dout<="0100"; --4</p><p>  when "100011" =>dout<="0100"; --4</p><p>  whe

53、n "100100" =>dout<="0011"; --3</p><p>  when "100101" =>dout<="0011"; --3</p><p>  when "100110" =>dout<="0001"; --1

54、</p><p>  when "100111" =>dout<="0001"; --1</p><p>  when "101000" =>dout<="0010"; --2</p><p>  when "101001" =>dout

55、<="0010"; --2</p><p>  when "101010" =>dout<="0001"; --1</p><p>  when "101011" =>dout<="0001"; --1</p><p>  when ot

56、hers=>dout<="0000"; --0</p><p><b>  end case;</b></p><p>  end process;</p><p>  end make_music;</p><p><b>  音樂模塊2</b></p>

57、<p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity made_music1 is</p><p><b>  port(</b&

58、gt;</p><p>  clk_2hz:in std_logic;</p><p>  dout:out std_logic_vector(3 downto 0));</p><p>  end made_music1;</p><p>  architecture make_music of made_music1 is</p&g

59、t;<p>  signal temp:std_logic_vector(6 downto 0);</p><p><b>  begin</b></p><p>  process(clk_2hz)</p><p><b>  begin</b></p><p>  if(clk_2

60、hz'event and clk_2hz='1') then</p><p>  if(temp=72) then </p><p>  temp<="0000000";</p><p><b>  else </b></p><p>  temp<=temp+1;

61、</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  process(temp)</p><p><b>  begin</b><

62、/p><p>  case temp is</p><p>  when "0000000" =>dout<="0001"; --1</p><p>  when "0000001" =>dout<="0001"; --1</p><p>  

63、when "0000010" =>dout<="0010"; --2</p><p>  when "0000011" =>dout<="0010"; --2</p><p>  when "0000100" =>dout<="0011"

64、;; --3</p><p>  when "0000101" =>dout<="0011"; --3</p><p>  when "0000110" =>dout<="0011"; --3</p><p>  when "0000111"

65、=>dout<="0011"; --3</p><p>  when "0001000" =>dout<="0010"; --2</p><p>  when "0001001" =>dout<="0010"; --2</p><p&g

66、t;  when "0001010" =>dout<="0001"; --1</p><p>  when "0001011" =>dout<="0001"; --1</p><p>  when "0001100" =>dout<="0010&

67、quot;; --2</p><p>  when "0001101" =>dout<="0010"; --2</p><p>  when "0001110" =>dout<="0011"; --3</p><p>  when "0001111&qu

68、ot; =>dout<="0011"; --3</p><p>  when "0010000" =>dout<="0100"; --4</p><p>  when "0010001" =>dout<="0100"; --4</p><

69、;p>  when "0010010" =>dout<="0100"; --4</p><p>  when "0010011" =>dout<="0100"; --4</p><p>  when "0010100" =>dout<="0

70、011"; --3</p><p>  when "0010101" =>dout<="0011"; --3</p><p>  when "0010110" =>dout<="0010"; --2</p><p>  when "001011

71、1" =>dout<="0010"; --2</p><p>  when "0011000" =>dout<="0101"; --5</p><p>  when "0011001" =>dout<="0101"; --5</p>

72、<p>  when "0011010" =>dout<="0110"; --6</p><p>  when "0011011" =>dout<="0110"; --6</p><p>  when "0011100" =>dout<=&qu

73、ot;0111"; --7</p><p>  when "0011101" =>dout<="0111"; --7</p><p>  when "0011110" =>dout<="0111"; --7</p><p>  when "00

74、11111" =>dout<="0111"; --7</p><p>  when "0100000" =>dout<="0101"; --5</p><p>  when "0100001" =>dout<="0101"; --5</p&

75、gt;<p>  when "0100010" =>dout<="0110"; --6</p><p>  when "0100011" =>dout<="0110"; --6</p><p>  when "0100100" =>dout<

76、="0110"; --6</p><p>  when "0100101" =>dout<="0110"; --6</p><p>  when "0100110" =>dout<="0111"; --7</p><p>  when &quo

77、t;0100111" =>dout<="0111"; --7</p><p>  when "0101000" =>dout<="1000"; --8</p><p>  when "0101001" =>dout<="1000"; --8<

78、;/p><p>  when "0101010" =>dout<="1000"; --8</p><p>  when "0101011" =>dout<="1000"; --8</p><p>  when "0101100" =>dout

79、<="0111"; --7</p><p>  when "0101101" =>dout<="0111"; --7</p><p>  when "0101110" =>dout<="0110"; --6</p><p>  when

80、"0101111" =>dout<="0110"; --6</p><p>  when "0110000" =>dout<="1001"; --9</p><p>  when "0110001" =>dout<="1001"; --

81、9</p><p>  when "0110010" =>dout<="1010"; --10</p><p>  when "0110011" =>dout<="1010"; --10</p><p>  when "0110100" =&g

82、t;dout<="1011"; --11</p><p>  when "0110101" =>dout<="1011"; --11</p><p>  when "0110110" =>dout<="1011"; --11</p><p&g

83、t;  when "0110111" =>dout<="1011"; --11</p><p>  when "0111000" =>dout<="1010"; --10</p><p>  when "0111001" =>dout<="101

84、0"; --10</p><p>  when "0111010" =>dout<="1001"; --9</p><p>  when "0111011" =>dout<="1001"; --9</p><p>  when "0111

85、100" =>dout<="1010"; --10</p><p>  when "0111101" =>dout<="1010"; --10</p><p>  when "0111110" =>dout<="1011"; --11</p

86、><p>  when "0111111" =>dout<="1011"; --11</p><p>  when "1000000" =>dout<="1100"; --12</p><p>  when "1000001" =>dout&

87、lt;="1100"; --12</p><p>  when "1000010" =>dout<="1100"; --12</p><p>  when "1000011" =>dout<="1100"; --12</p><p>  whe

88、n "1000100" =>dout<="1011"; --11</p><p>  when "1000101" =>dout<="1011"; --11</p><p>  when "1000110" =>dout<="1010"

89、; --10</p><p>  when "1000111" =>dout<="1010"; --10</p><p>  when others=>dout<="0000"; --0</p><p><b>  end case;</b></p&

90、gt;<p>  end process;</p><p>  end make_music;</p><p><b>  音樂模塊3</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>

91、;  use ieee.std_logic_unsigned.all;</p><p>  entity made_music2 is</p><p><b>  port(</b></p><p>  clk_2hz:in std_logic;</p><p>  dout:out std_logic_vector(3

92、 downto 0));</p><p>  end made_music2;</p><p>  architecture make_music of made_music2 is</p><p>  signal temp:std_logic_vector(6 downto 0);</p><p><b>  begin<

93、/b></p><p>  process(clk_2hz)</p><p><b>  begin</b></p><p>  if(clk_2hz'event and clk_2hz='1') then</p><p>  if(temp=45) then </p><

94、;p>  temp<="0000000";</p><p><b>  else </b></p><p>  temp<=temp+1;</p><p><b>  end if;</b></p><p><b>  end if;</b>

95、;</p><p>  end process;</p><p>  process(temp)</p><p><b>  begin</b></p><p>  case temp is</p><p>  when "0000000" =>dout<=&quo

96、t;0001"; --1</p><p>  when "0000001" =>dout<="0001"; --1</p><p>  when "0000010" =>dout<="0010"; --2</p><p>  when "000

97、0011" =>dout<="0010"; --2</p><p>  when "0000100" =>dout<="0011"; --3</p><p>  when "0000101" =>dout<="0011"; --3</p&g

98、t;<p>  when "0000110" =>dout<="0100"; --4</p><p>  when "0000111" =>dout<="0100"; --4</p><p>  when "0001000" =>dout<=

99、"0101"; --5</p><p>  when "0001001" =>dout<="0101"; --5</p><p>  when "0001010" =>dout<="0110"; --6</p><p>  when "

100、;0001011" =>dout<="0110"; --6</p><p>  when "0001100" =>dout<="0111"; --7</p><p>  when "0001101" =>dout<="0111"; --7<

101、/p><p>  when "0001110" =>dout<="1000"; --8</p><p>  when "0001111" =>dout<="1000"; --8</p><p>  when "0010000" =>dout&

102、lt;="1001"; --9</p><p>  when "0010001" =>dout<="1001"; --9</p><p>  when "0010010" =>dout<="1010"; --10</p><p>  when

103、"0010011" =>dout<="1010"; --10</p><p>  when "0010100" =>dout<="1011"; --11</p><p>  when "0010101" =>dout<="1011";

104、--11</p><p>  when "0010110" =>dout<="1100"; --12</p><p>  when "0010111" =>dout<="1100"; --12</p><p>  when "0011000"

105、=>dout<="1011"; --11</p><p>  when "0011001" =>dout<="1011"; --11</p><p>  when "0011010" =>dout<="1010"; --10</p><

106、p>  when "0011011" =>dout<="1010"; --10</p><p>  when "0011100" =>dout<="1001"; --9</p><p>  when "0011101" =>dout<="1

107、001"; --9</p><p>  when "0011110" =>dout<="1000"; --8</p><p>  when "0011111" =>dout<="1000"; --8</p><p>  when "010000

108、0" =>dout<="0111"; --7</p><p>  when "0100001" =>dout<="0111"; --7</p><p>  when "0100010" =>dout<="0110"; --6</p>

109、<p>  when "0100011" =>dout<="0110"; --6</p><p>  when "0100100" =>dout<="0101"; --5</p><p>  when "0100101" =>dout<=&qu

110、ot;0101"; --5</p><p>  when "0100110" =>dout<="0100"; --4</p><p>  when "0100111" =>dout<="0100"; --4</p><p>  when "01

111、01000" =>dout<="0011"; --3</p><p>  when "0101001" =>dout<="0011"; --3</p><p>  when "0101010" =>dout<="0010"; --2</p&

112、gt;<p>  when "0101011" =>dout<="0010"; --2</p><p>  when "0101100" =>dout<="0001"; --1</p><p>  when "0101101" =>dout<

113、="0001"; --1</p><p>  when others=>dout<="0000"; --0</p><p><b>  end case;</b></p><p>  end process;</p><p>  end make_music;</

114、p><p><b>  總原理圖</b></p><p><b>  五、實驗目的</b></p><p>  1. 熟練掌握VHDL 語言和QUARTUS II 軟件的使用;</p><p>  2. 理解狀態(tài)機的工作原理和設計方法;</p><p>  3. 掌握利用EDA

115、工具進行自頂向下的電子系統(tǒng)設計方法</p><p><b>  六、實驗步驟</b></p><p>  1.將實驗系統(tǒng)上RS232接口與計算機串行口相連。</p><p>  2.用VHDL將源程序輸入QUARTUS II軟件中。</p><p>  3.編譯程序并進行引腳分配,最后將程序下載到器件中去。</p&

116、gt;<p><b>  七、收獲和體會:</b></p><p>  通過本次EDA課設,我學會了VHDL語言的一些基本用法,應用了原來不會或者不熟練的句型,如if句,也學會了一些基本功能的實現(xiàn)方法,如分頻,狀態(tài)控制等等,從另外一個角度重新審視了這個學期完全從硬件角度出發(fā)的電路設計,明白了軟硬件之間的交互。通過這次實驗,對系統(tǒng)框圖的設計有了一定的了解。懂得了系統(tǒng)的前期設計對于

117、后續(xù)的編程和調試的重要性。</p><p>  本次實驗采用了自下而上的設計方法,根據系統(tǒng)對硬件的要求,分化模塊,利用模塊實現(xiàn)功能,最后進行仿真和調試。</p><p>  雖然這次實驗遇到的問題不少,但是在胡輝老師以及同學的幫助下,我都順利地解決了,并為將來的實踐積累了寶貴的經驗和教訓。</p><p>  具體的經驗和教訓有:</p><p&

118、gt;  1模塊化設計有利于提高硬件設計的效率。</p><p>  2邏輯正確和仿真真確并不代表著實際實驗的正確,通常情況下,要適當?shù)卣{整邏輯以適應硬件。要特別注意仿真時出現(xiàn)的毛刺和偏差,到底是由于仿真設置不合理還是仿真結果確實有問題。</p><p>  3從簡到難,逐步深入,先打出程序的框架,實現(xiàn)基本功能,然后再逐步細化。</p><p>  4學會經常和老師

119、、同學交流,以便及時發(fā)現(xiàn)自己在實驗中的紕漏和不足,促進進步。</p><p>  這次實驗本人態(tài)度認真,積極向其他同學求教并在此過程中得到很多收獲,能夠進一步了解和使用一門與硬件直接打交道的基本語言對我們將來的學習和工作都會十分有益。</p><p>  實驗的順利完成,與老師的熱心指導是分不開的,最后十分感謝胡輝老師的認真負責的工作,讓我受益匪淺!</p><p>

120、;<b>  八、參考文獻</b></p><p>  《EDA技術與實驗》 機械工業(yè)出版社 李國洪、胡輝、沈明山</p><p>  《EDA技術實驗與課程設計》 清華大學出版社 曹新燕、周鳳臣、聶春燕</p><p>  《EDA技術綜合應用實例與分析》 西安電子科技大學出

溫馨提示

  • 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

提交評論