基于FPGA的16QAM調(diào)制解調(diào)_第1頁
基于FPGA的16QAM調(diào)制解調(diào)_第2頁
基于FPGA的16QAM調(diào)制解調(diào)_第3頁
基于FPGA的16QAM調(diào)制解調(diào)_第4頁
基于FPGA的16QAM調(diào)制解調(diào)_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于FPGA的16QAM調(diào)制解調(diào)器的實(shí)現(xiàn) 組員:目錄摘要3一、QAM調(diào)制原理3二、QAM的解調(diào)原理4三、16QAM調(diào)制器的實(shí)現(xiàn)51 系統(tǒng)總體框圖52 時(shí)鐘分頻63 串并轉(zhuǎn)換64 差分編碼和星座映射65 DDS和線性加法器7四、QAM解調(diào)模塊設(shè)計(jì)71 低通濾波器模塊設(shè)計(jì)72 采樣判決模塊設(shè)計(jì)8五、16QAM調(diào)制器的仿真結(jié)果9四、附錄131 頂層模塊132 時(shí)鐘分頻模塊143 串并轉(zhuǎn)換模塊154 差分模塊和星座映射模塊165 DDS 和加法器模塊186 testbench 源程序237 用matlab 進(jìn)行頻譜分析24摘要QAM(Quadrature Amplitude Modulation)是一

2、種新的調(diào)制技術(shù),它在調(diào)制過程中利用了相位和幅度兩維空間資源,比只利用單一維度空間資源的PSK和ASK調(diào)制方式頻譜利用率高,不僅如此,QAM的星座點(diǎn)比PSK的星座點(diǎn)更分散,星座點(diǎn)之間的距離因此更大,所以能提供更好的傳輸性能。隨著第三代移動通信的興起,傳輸容量增大,多進(jìn)制正交幅度調(diào)制MQAM (Multiple Quadrature Amplitude Modulation)將得到更加廣泛的運(yùn)用。本文主要研究了基于FPGA的16QAM調(diào)制與解調(diào)的實(shí)現(xiàn)。首先說明了QAM調(diào)制和解調(diào)的原理,然后對各系統(tǒng)組成模塊分析與仿真之后提出基于FPGA的16QAM調(diào)制與解調(diào)的總體設(shè)計(jì)方案。最后用Verilog語言編

3、寫程序完成了整個(gè)系統(tǒng)的仿真,并對編好的程序其進(jìn)行了編譯調(diào)試。文中詳細(xì)介紹了載波恢復(fù)、正交相干解調(diào)、FIR低通濾波器和采樣判決的基本原理和設(shè)計(jì)方法。關(guān)鍵詞:正交相干解調(diào),混頻,F(xiàn)PGA,QAM 一、QAM調(diào)制原理正交幅度調(diào)制(QAM)是一種把數(shù)字信息包含在載波的振幅和相位中的數(shù)字調(diào)制方式,也是ASK和PSK的結(jié)合。式(1)表示了QAM信號,它還可用式(2)來表示在QAM中是如何結(jié)合幅度和相位調(diào)制的。 (1) (2)16QAM信號的產(chǎn)生有兩種基本方法:正交調(diào)幅法是用兩路正交的四電平振幅鍵控信號疊加而成;四相疊加法是用兩路獨(dú)立的四相移相鍵控信號疊加而成。其中,16QAM正交調(diào)幅法的調(diào)制方框圖如圖1所

4、示。輸入的二進(jìn)制數(shù)據(jù)經(jīng)過串一并變換分別進(jìn)入a1、a2、b1和b2,4個(gè)信道:每個(gè)信道的數(shù)據(jù)速率降為原來的14。24電平轉(zhuǎn)換器產(chǎn)生一個(gè)四電平的PAM信號,每個(gè)24電平轉(zhuǎn)換器的輸出有2種量值和2種相位。兩個(gè)PAM信號分別調(diào)制同相和正交載波,每一個(gè)調(diào)制器有4種可能的輸出,經(jīng)線性加法器合并產(chǎn)生16QAM信號。 圖1 16QAM調(diào)制原理圖每路PAM信號的量值和相位由輸入的二進(jìn)制數(shù)據(jù)及其比特分配模式星座圖決定。16QAM星座圖通常有自然碼邏輯和Gray碼邏輯2種比特模式。因?yàn)镚ray碼可以消除相鄰點(diǎn)間符號差錯(cuò)中的2比特誤差,即可減小相同符號差錯(cuò)率中的誤比特率,IEEE8021la和HiperLAN2標(biāo)準(zhǔn)中

5、所有的星座都是Gray碼的。本文在設(shè)計(jì)16QAM的時(shí)候,采用圖2的Gray模式進(jìn)行編碼,圖中4個(gè)比特位從左至右的順序?yàn)閎lb2ala2。圖2 16QAM星座圖的Gray碼邏輯模式二、QAM的解調(diào)原理解調(diào)實(shí)質(zhì)上是調(diào)制的逆過程,在理想情況下,MQAM信號的頻帶利用率為,目前,對QAM信號的解調(diào)方法很多,其主要方法有以下三種:模擬相干解調(diào)、數(shù)字相干解調(diào)、全數(shù)字解調(diào)4。本文采用數(shù)字相干解調(diào)法對QAM進(jìn)行解調(diào),原理如圖2.1.3所示:串并轉(zhuǎn)換多電平轉(zhuǎn)換LPF采樣判決載波恢復(fù)LPF多電平轉(zhuǎn)換采樣判決QAM信號圖2.1.3 QAM解調(diào)器框圖在接收端接收到的調(diào)制信號分別和兩路相互正交的載波信號相乘,化簡之后相

6、同信號的表達(dá)式為: (2-6)正交信號表達(dá)式為: (2-7)其中,經(jīng)過解調(diào)得到同相與正交兩路相互獨(dú)立的多電平基帶信號,然后把多電平基帶信號經(jīng)過低通濾波器濾去高頻載波之后得到直流分量為和,再進(jìn)行采樣判決、L-2值電平轉(zhuǎn)換和并/串轉(zhuǎn)換還原出基帶信號。此處時(shí)為16QAM相干解調(diào)。三、16QAM調(diào)制器的實(shí)現(xiàn)系統(tǒng)輸入數(shù)據(jù)速率為100 Kbs;系統(tǒng)正交調(diào)制載波頻率為1 MHz。調(diào)制部分主要由Ahera公司推出的Cyclone系列器件EPlC6Q240C8實(shí)現(xiàn)該器件完成對輸入數(shù)據(jù)串并變換、差分編碼、星座影射等。設(shè)計(jì)EDA工具為Ahera集成設(shè)計(jì)軟件Quartus II 72版本;硬件描述Verilog HD

7、L語言完成邏輯設(shè)計(jì)。本系統(tǒng)還用到仿真工具M(jìn)atlab,搭建16QAM調(diào)制器的simulink模塊,采用示波器觀看波形。 1 系統(tǒng)總體框圖 16QAM調(diào)制器的實(shí)現(xiàn)主要包括時(shí)鐘模塊、串并變換模塊、查分編碼模塊、星座映射、DDS模塊、加法器模塊。系統(tǒng)總體框圖如下: 圖3 系統(tǒng)總體框圖系統(tǒng)頂層設(shè)計(jì)如下:圖4 系統(tǒng)頂層設(shè)計(jì)2 時(shí)鐘分頻時(shí)鐘分頻模塊clk利用N分頻器對10MHz系統(tǒng)時(shí)鐘信號進(jìn)行N分頻,以產(chǎn)生調(diào)制器模塊所需的工作時(shí)鐘。N分頻器是由模N2計(jì)數(shù)器實(shí)現(xiàn)的,分頻輸出信號模N2可自動取反,以產(chǎn)生占空比為1:1的時(shí)鐘信號。由于信號源產(chǎn)生的基帶信號為1bit串行數(shù)據(jù),其速率為100 kbps,經(jīng)并串轉(zhuǎn)換后

8、的4 bit并行數(shù)據(jù)速率為400 kbps,所以,本設(shè)計(jì)還采用了100分頻器和400分頻器。另外將10Mhz直接送入到DDS模塊,使得輸出的載波頻率為1Mhz.3 串并轉(zhuǎn)換 1bit的數(shù)據(jù)送過來后,通過串并變換,將輸入的第一個(gè)數(shù)據(jù)同它后面的三個(gè)數(shù)據(jù)同時(shí)輸出,形成4bit的并行信號。4 差分編碼和星座映射 在本模塊,同樣根據(jù)調(diào)制方式不同,選用不同位的數(shù)據(jù)來進(jìn)行處理。由于幾乎都采用相干檢測的方式進(jìn)行解調(diào),因此在解調(diào)端載波恢復(fù)存在著4個(gè)相位穩(wěn)定點(diǎn),即提取的相干載波可能與接收信號載波有4種相位關(guān)系,稱作4重相位模糊度舊3。部分差分編碼能消除4重相位模糊度對解調(diào)的影響。而部分差分編碼相對于全差分編碼由于

9、減少了差分編碼的bit數(shù)。因而減少了誤碼擴(kuò)散,具有較好的誤碼性能。 由于同樣的符號誤碼率下,采用格雷編碼比自然碼的比特誤碼率小,所以多幅度電平的電平邏輯采用格雷編碼映射。星座影射模塊輸入4bit并行數(shù)據(jù),輸出為IQ路對應(yīng)的四幅值之一;4 bit并行信號需要將其影射到信號平面,星座影射實(shí)現(xiàn)采用查表法分別輸出I/Q對應(yīng)的幅值.對應(yīng)的量化表如下:表1 星座映射I/Q路輸入數(shù)據(jù)對應(yīng)的量化值00-201-11111025 DDS和線性加法器 在DDS模塊中,采用系統(tǒng)時(shí)鐘10Mhz,由公式可知:但取頻率字為K=32'b11001100110011001100110011001, fc=10MHZ,

10、 N=32時(shí),可得到輸出的正余弦波的頻率為1MHz。四、QAM解調(diào)模塊設(shè)計(jì)由于接收到的16QAM信號經(jīng)混頻之后的信號為基帶信號和2倍載波頻率的高頻分量之和,因此混頻后的信號需經(jīng)過低通濾波,采樣判決和電平轉(zhuǎn)換把基帶信號還原出來。因此解調(diào)模塊分為三個(gè)子模塊:低通濾波器、采樣判決器和電平轉(zhuǎn)換器。1 低通濾波器模塊設(shè)計(jì)由于系統(tǒng)只要求將高頻分量濾除,這里采用相對簡單而易實(shí)現(xiàn)的FIR低通濾波器。FIR濾波器由有限個(gè)采樣值組成,在每個(gè)采樣時(shí)刻完成有限個(gè)卷積運(yùn)算,可以將其幅度特性設(shè)計(jì)成多種多樣,同時(shí)還可以保證精確、嚴(yán)格的相位特性。在高階濾波器中,還可以通過FFT來計(jì)算卷積,從而極大提高運(yùn)算效率。這些優(yōu)點(diǎn)使得F

11、IR濾波器得到廣泛應(yīng)用9。FIR濾波器只存在個(gè)抽頭,也被稱為濾波器的階數(shù),則濾波器的輸出可以通過卷積的形式表示為: (3-5)FIR濾波器實(shí)現(xiàn)的基本方法是用一個(gè)有限級數(shù)的傅里葉變換去逼近所要求的濾波器響應(yīng),基本設(shè)計(jì)方法可以分為窗口法和頻率采樣法兩種。本次設(shè)計(jì)選用窗口法設(shè)計(jì)FIR濾波器,其設(shè)計(jì)步驟如下:確定數(shù)字濾波器的性能要求:截止頻率,濾波器單位脈沖響應(yīng)長度。根據(jù)性能要求,合理選擇單位脈沖響應(yīng)的奇偶對稱性,從而確定理想頻率響應(yīng)的幅頻特性和相頻特性。得到單位脈沖響應(yīng)后,在實(shí)際計(jì)算中,可對按(遠(yuǎn)大于)點(diǎn)等距離采樣,并對其求IDFT得,用代替。選擇適當(dāng)?shù)拇昂瘮?shù),根據(jù)求所需設(shè)計(jì)的FIR濾波器單位脈沖響

12、應(yīng)。求,分析其幅頻特性,若不滿足要求,可適當(dāng)改變窗函數(shù)形式或長度,重復(fù)上述設(shè)計(jì)過程,以得到滿意結(jié)果。其中,選取的窗函數(shù)為布萊克曼窗: (3-6)由于整個(gè)設(shè)計(jì)中,基帶信號頻率不超過200Hz,載波頻率5MHz,因此設(shè)置濾波器截止頻率,階數(shù),采樣頻率為FPGA時(shí)鐘頻率50M,采用Quartus II軟件的IP core進(jìn)行設(shè)計(jì)。2 采樣判決模塊設(shè)計(jì)采樣判決模塊采用的是門限的思路設(shè)計(jì),即當(dāng)輸入電平的二進(jìn)制數(shù)值處于某門限范圍之內(nèi)時(shí),將此電平值判斷為此門限范圍內(nèi)的某一特定值。由于16QAM的I、Q兩路中任意一路都載有4種電平值,因此設(shè)計(jì)三個(gè)電平門限值,將8位總線數(shù)值區(qū)間分成4等份,然后將時(shí)鐘信號進(jìn)行分頻

13、,每間隔特定時(shí)間段就對輸入信號進(jìn)行采樣和判決。流程圖如圖3.2.1。Y電平值1電平值2電平值3電平值4NNNYYN門限區(qū)間1門限區(qū)間2門限區(qū)間3采樣取值圖3.2.1 采樣判決設(shè)計(jì)流程圖五、16QAM調(diào)制器的仿真結(jié)果1 使用Quartus 自帶仿真器仿真,其總體仿真圖如下:圖5 16QAM調(diào)制器的quartus仿真2將程序?qū)氲絤odelsim中,通過編寫testbench,得到如下仿真結(jié)果:圖6 16QAM調(diào)制器的modeldsim仿真3 使用MATLAB中simulink庫文件搭建一個(gè)16QAM調(diào)制系統(tǒng):圖7 16QAM調(diào)制系統(tǒng)在MATLAB中的仿真實(shí)現(xiàn) 觀察最后的兩個(gè)示波器,首先是沒有加入

14、噪聲的波形,顯示如下圖8 沒有噪聲的輸出波形讓輸出信號通過10dB噪聲的AWGN 信道后,輸出波形如下:圖9 通過AWGN信道后的輸出波形同時(shí)會得到映射在星座圖上的點(diǎn),圖形如下:圖10 星座映射圖4 對輸出的數(shù)據(jù)進(jìn)行頻譜分析 通過在testbench中編寫程序,保存輸出的數(shù)據(jù),再用MATLAB進(jìn)行頻譜分析,得到結(jié)果如下:圖11 輸出信號的頻譜分析四、附錄1 頂層模塊 module top(clk, /系統(tǒng)時(shí)鐘rst, /復(fù)位en, /使能信號data_in, /1bit信號輸入data_out, /16QAM信號輸出DATA_I, /I路對應(yīng)的量化值DATA_Q); /Q路對應(yīng)的量化值 inp

15、ut clk,rst,en; input data_in; output signed17:0 data_out; output signed 3:0 DATA_I,DATA_Q; wire clk_dds; /DDS塊的輸入時(shí)鐘 wire clk_100; /100kbs wire clk_400; /25kbs wire 3:0 data1; wire 3:0 data2; clk clkqam( .clk_sys(clk), .rst(rst), .clk_dds(clk_dds), .clk_100(clk_100), .clk_400(clk_400) );shift shiftqa

16、m( .clk_in(clk_100), .clk_out(clk_dds), .data_in(data_in), .rst(rst), .en(en), .data_out(data1) );diff diffqam( .clk(clk_dds), .rst(rst), .data_in(data1), .data_out_i(DATA_I), .data_out_q(DATA_Q), .data(data2) );add addqam ( .clk_dds(clk_dds), .rst(rst), .en(en), .data(data2), .dataout(data_out) );e

17、ndmodulemodule clk( clk_sys, /10MHz rst, clk_dds, /10MHz clk_400, / 25Kbs clk_100); /100Kbs input clk_sys; input rst; output clk_dds,clk_400,clk_100; reg clk_400,clk_10,clk_100; reg 7:0 count2,count3,count4; assign clk_dds=clk_sys;always (posedge clk_sys or posedge rst) begin if (rst) begin count2&l

18、t;=0; clk_100<=0; end else begin if (count2=49) begin count2<=0; clk_100<=clk_100; end else begin count2<=count2+'b1; clk_100<= clk_100; end end endalways (posedge clk_100 or posedge rst) begin if (rst) begin count3<=0; clk_400<=0; end else begin if (count3=1) begin count3&l

19、t;=0; clk_400<=clk_400; end else begin count3<=count3+'b1; clk_400<= clk_400; end end endendmodule2 時(shí)鐘分頻模塊3 串并轉(zhuǎn)換模塊 module shift (clk_in, /寫入信號的時(shí)鐘clk_out, /輸出信號的時(shí)鐘data_in, /輸入信號data_out, / 輸出信號rst,en);input clk_in,clk_out,rst,en;input data_in;output reg 3:0 data_out;reg 3:0 dout;always (

20、posedge clk_in or posedge rst) begin if(rst) begin dout<=0; end else begin if(en) begin dout<=dout2:0,data_in; end else dout<=dout; end end always (posedge clk_out or posedge rst) begin if(rst) data_out<=0; else data_out<=dout;endendmodule4 差分模塊和星座映射模塊module diff(clk, data_in, / 輸入信號d

21、ata_out_i, /I路對應(yīng)的量化值data_out_q, /Q路對應(yīng)的量化值rst,data); /輸出信號 input clk,rst;input 3:0 data_in;output signed 3:0 data_out_i,data_out_q;reg 3:0 data_out_i,data_out_q;output reg 3:0 data;wire a,b,c,d;reg dataa,datab;reg prea,preb;reg 1:0regi,regq;assign a=data_in3;assign b=data_in2;assign c=data_in1;assign

22、 d=data_in0;/assign data=regi,regq;always (posedge clk or posedge rst) begin if (rst) begin prea<=0; end else begin dataa <= (a=0)? prea : prea;prea <= dataa;endendalways (posedge clk or posedge rst) begin if (rst) begin preb<=0; end else begin datab <= (b=0)? preb : preb;preb <= d

23、atab; endend always (posedge clk or posedge rst) begin if (rst) begin regi<=0; regq<=0; end else begin regi<=dataa,c; regq<=datab,d; endendalways (posedge clk )begin case(regi) 'b00 : data_out_i<=-'d2; 'b01 : data_out_i<=-'d1; 'b11 : data_out_i<='d1; '

24、;b10 : data_out_i<='d2; endcaseendalways (posedge clk)begin case(regq) 'b00 : data_out_q<=-'d2; 'b01 : data_out_q<=-'d1; 'b11 : data_out_q<='d1; 'b10 : data_out_q<='d2; endcaseendalways (posedge clk or posedge rst)begin if(rst) begin data<=0; end

25、 else begin data<=regi,regq; endendendmodule5 DDS 和加法器模塊module add(clk_dds, /輸入信號時(shí)鐘rst,en,data, dataout,); /16QAM信號input rst,en,clk_dds;input 3:0 data;output signed17:0 dataout;reg signed16:0 csignal,ssignal;wire signed 15:0 cosine; /cos值wire signed 15:0 sine; /sin值wire 31:0 addra; / DDS頻率字assign

26、 addra='b11001100110011001100110011001;assign dataout= csignal16,csignal+ ssignal16,ssignal;always (posedge clk_dds or posedge rst)begin if(rst) begin csignal <= 0;ssignal <= 0; end else begin case(data) 4'b0000: begin /-2cos-2sin csignal16:1 <= cosine15:0; csignal0 <= 0; ssignal

27、16:1 <= sine15:0; ssignal0 <= 0; end4'b0001: begin / -2cos-sin csignal16:1 <= cosine15:0; csignal0 <= 0; ssignal16 <= sine15; ssignal15:0 <= sine15:0;end4'b0010: begin / -2cos+2sin csignal16:1 <= cosine15:0; csignal0 <= 0; ssignal16:1 <= sine15:0; ssignal0 <= 0;

28、 end4'b0011: begin / -2cos+sin csignal16:1 <= cosine15:0; csignal0 <= 0; ssignal16 <= sine15; ssignal15:0 <= sine15:0; end4'b0100: begin / -cos-2sin csignal16 <= cosine15; csignal15:0 <= cosine15:0; ssignal16:1 <= sine15:0; ssignal0 <= 0; end4'b0101: begin / -cos-

29、sin csignal16 <= cosine15; csignal15:0 <= cosine15:0; ssignal16 <= sine15; ssignal15:0 <= sine15:0; end4'b0110: begin/ -cos+2sin csignal16 <= cosine15; csignal15:0 <= cosine15:0; ssignal16:1 <= sine15:0; ssignal0 <= 0; end4'b0111: begin / -cos+sin csignal16 <= cosi

30、ne15; csignal15:0 <= cosine15:0; ssignal16 <= sine15; ssignal15:0 <= sine15:0; end4'b1000: begin / 2cos-2sin csignal16:1 <= cosine15:0; csignal0 <= 0; ssignal16:1 <= sine15:0; ssignal0 <= 0; end4'b1001: begin / 2cos-sin csignal16:1 <= cosine15:0; csignal0 <= 0; ssi

31、gnal16:1 <= sine15:0; ssignal0 <= 0; end4'b1010: begin /2cos+2sin csignal16:1 <= cosine15:0; csignal0 <= 0; ssignal16:1 <= sine15:0; ssignal0 <= 0; end4'b1011: begin / 2cos+sin csignal16:1 <= cosine15:0; csignal0 <= 0; ssignal16 <= sine15; ssignal15:0 <= sine15:

32、0; end4'b1100: begin / cos-2sin csignal16 <= cosine15; csignal15:0 <= cosine15:0; ssignal16:1 <= sine15:0; ssignal0 <= 0; end4'b1101: begin / cos-sin csignal16 <= cosine15; csignal15:0 <= cosine15:0; ssignal16 <= sine15; ssignal15:0 <= sine15:0; end4'b1110: begin

33、/ cos+2sin csignal16 <= cosine15; csignal15:0 <= cosine15:0; ssignal16:1 <= sine15:0; ssignal0 <= 0; end 4'b1111: begin / cos+sin csignal16 <= cosine15; csignal15:0 <= cosine15:0; ssignal16 <= sine15; ssignal15:0 <= sine15:0; end default: begin csignal <= 0; ssignal &l

34、t;= 0;endendcaseendend dds ddsqam( .data(addra), .en(en), .reset(rst), .clk(clk_dds), .sine(sine), .cose(cosine) );Endmodule/module dds(data, en, clk, reset, sine, cose); / DDS模塊input 31 : 0 data; /頻率控制字input en; /頻率控制字寫使能input clk; input reset; output signed15 : 0 sine; /正弦信號輸出output signed15 : 0 c

35、ose; /余弦信號輸出reg 31 : 0 ADD_A; /正弦波產(chǎn)生模塊的相位累加器reg 31 : 0 ADD_B; /余弦波產(chǎn)生模塊的相位累加器÷reg signed 15 : 0 cose_DR; /余弦波的查找表地址reg signed 15 : 0 sine_DR; /wire 31 : 0 data; /頻率控制字wire 9 : 0 ROM_A;wire signed 15 : 0 cose_D;wire signed 15 : 0sine_D;assign cose = cose_DR;assign sine = sine_DR;assign ROM_A = AD

36、D_B31 : 22; begin if(reset) /系統(tǒng)初始化時(shí),默認(rèn)的頻率控制字為0 ADD_A <= 0; else if(en) ADD_A <= data; else ADD_A <= ADD_A ;endalways (posedge clk or posedge reset)begin if(reset) ADD_B <= 0; else ADD_B <= ADD_B + ADD_A; /ADD_B為累加的結(jié)果endalways (posedge clk or posedge reset)begin if(reset) cose_DR <=

37、 0; else cose_DR <= cose_D;endalways (posedge clk or posedge reset)begin if(reset) sine_DR <= 0; else sine_DR <= sine_D;end/調(diào)用兩個(gè)ROM,存儲著正余弦波形一個(gè)周期的數(shù)值。rom_cose cose1( .addra(ROM_A), .clka(clk), .douta(cose_D);rom_sine sine1( .addra(ROM_A), .clka(clk), .douta(sine_D);endmodule module rom_sine(

38、/產(chǎn)生sin信號模塊addra,clka,douta);inputclka;input9:0addra;output15:0douta;regsigned15:0douta;always (posedge clka) begin case(addra)10'd 1 : douta= 16'd 1 ;10'd 2 : douta= 16'd 1 ;10'd 3 : douta= 16'd 2 ; 10'd 1021 : douta= -16'd2 ;10'd 1022 : douta= -16'd1 ;10'd 1023 : douta= -16'd1 ;10'd 1024 : douta= 'd0 ;endcaseend endmodulemodule rom_cose( /產(chǎn)生cos信號模塊addra,clka,douta);inputclka;input9:0addra;output15:0douta;regsigned15:0douta;always (posedge clka) begin case(addra)10'd 0 : douta=16'd100 ;10'd 1 : douta=16'd100 ;10'd

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論