多路信号复用的基带发信系统.docx

上传人:b****7 文档编号:25923581 上传时间:2023-06-16 格式:DOCX 页数:12 大小:121.17KB
下载 相关 举报
多路信号复用的基带发信系统.docx_第1页
第1页 / 共12页
多路信号复用的基带发信系统.docx_第2页
第2页 / 共12页
多路信号复用的基带发信系统.docx_第3页
第3页 / 共12页
多路信号复用的基带发信系统.docx_第4页
第4页 / 共12页
多路信号复用的基带发信系统.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

多路信号复用的基带发信系统.docx

《多路信号复用的基带发信系统.docx》由会员分享,可在线阅读,更多相关《多路信号复用的基带发信系统.docx(12页珍藏版)》请在冰豆网上搜索。

多路信号复用的基带发信系统.docx

多路信号复用的基带发信系统

1.分频器

 

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitycount16is

port(clk:

instd_logic;

D,C,B,A:

outstd_logic);

endcount16;

architecturertlofcount16is

signalcount_4:

std_logic_vector(3downto0);

begin

process(clk)

begin

if(clk'eventandclk='1')then

if(count_4="1111")then

count_4<="0000";

else

count_4<=count_4+1;

endif;

endif;

endprocess;

 

 

2.内码产生器

libraryieee;

useieee.std_logic_1164.all;

entityneimacs0is

port(in0_8,in0_7,in0_6,in0_5,in0_4,in0_3,in0_2,in0_1,K3,K2,K1,sx0:

instd_logic;

out0:

outstd_logic);

endentityneimacs0;

architecturenm0ofneimacs0is

componentmux8_0

port(D7,D6,D5,D4,D3,D2,D1,D0,D,C,B:

instd_logic;

y:

outstd_logic);

endcomponent;

componenttri_gate0

port(din0,en:

instd_logic;

dout0:

outstd_logic);

endcomponent;

signalIO:

std_logic;

begin

u1:

mux8_0

portmap(in0_8,in0_7,in0_6,in0_5,in0_4,in0_3,in0_2,in0_1,K3,K2,K1,IO);

u2:

tri_gate0

portmap(din0=>IO,en=>sx0,dout0=>out0);

endarchitecturenm0;

libraryieee;

useieee.std_logic_1164.all;

entitymux8_0is

port(D7,D6,D5,D4,D3,D2,D1,D0:

instd_logic;

D,C,B:

instd_logic;

y:

outstd_logic);

endmux8_0;

architecturertlofmux8_0is

signalsel:

std_logic_vector(2downto0);

begin

;

withselselect

y<=D0when"000",

D1when"001",

D2when"010",

D3when"011",

D4when"100",

D5when"101",

D6when"110",

D7when"111",

'0'whenothers;

endrtl;

libraryieee;

useieee.std_logic_1164.all;

entitytri_gate0is

port(din0,en:

instd_logic;

dout0:

outstd_logic);

endtri_gate0;

architecturezasoftri_gate0is

begin

dout0<=din0whenen='1'else

'1';

endzas;

3.时序信号产生器

libraryieee;

useieee.std_logic_1164.all;

entityshixusuccessfulis

port(B:

instd_logic;

S3,S2,S1,S0:

outstd_logic);

endentityshixusuccessful;

architecturesx1ofshixusuccessfulis

componentcount32

port(X1:

instd_logic;

E,D,C,B,A:

outstd_logic);

endcomponent;

componentyimaqi

port(F2,F1:

instd_logic;

Y3,Y2,Y1,Y0:

outstd_logic);

endcomponent;

componentnand0_1

port(X2:

instd_logic;

out2:

outstd_logic);

endcomponent;

signalin1,in2,in3,in4,in5,in6,in7:

std_logic;

begin

u1:

nand0_1portmap(X2=>B,out2=>in1);

u2:

count32

portmap(X1=>in1,D=>in2,E=>in3);

u3:

yimaqi

portmap(F1=>in2,F2=>in3,Y0=>in4,Y1=>in5,Y2=>in6,Y3=>in7);

u4:

nand0_1portmap(X2=>in4,out2=>S0);

u5:

nand0_1portmap(X2=>in5,out2=>S1);

u6:

nand0_1portmap(X2=>in6,out2=>S2);

u7:

nand0_1portmap(X2=>in7,out2=>S3);

endarchitecturesx1;

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitycount32is

port(X1:

instd_logic;

E,D,C,B,A:

outstd_logic);

endcount32;

architecturertlofcount32is

signalcount_5:

std_logic_vector(4downto0);

begin

process(X1)

begin

if(X1'eventandX1='1')then

if(count_5="11111")then

count_5<="00000";

else

count_5<=count_5+1;

endif;

endif;

endprocess;

A<=count_5(0);

B<=count_5

(1);

C<=count_5

(2);

D<=count_5(3);

E<=count_5(4);

endrtl;

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityyimaqiis

port(F2,F1:

instd_logic;

Y3,Y2,Y1,Y0:

outstd_logic);

endyimaqi;

architecturertlofyimaqiis

signalindata:

std_logic_vector(1downto0);

signalY:

std_logic_vector(3downto0);

begin

indata<=F2&F1;

process(indata)

begin

caseindatais

when"00"=>Y<="1110";

when"01"=>Y<="1101";

when"10"=>Y<="1011";

when"11"=>Y<="0111";

whenothers=>Y<="XXXX";

endcase;

endprocess;

Y3<=Y(3);

Y2<=Y

(2);

Y1<=Y

(1);

Y0<=Y(0);

endrtl;

libraryieee;

useieee.std_logic_1164.all;

entitynand0_1is

port(X2:

instd_logic;

out2:

outstd_logic);

endnand0_1;

architecturenand_0ofnand0_1is

begin

out2<=notX2;

endnand_0;

4.基带发信系统程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityfujieqiallis

port(clk,ena,a0,a1,a2,a3,a4,a5,a6,a7,

b0,b1,b2,b3,b4,b5,b6,b7,

c0,c1,c2,c3,c4,c5,c6,c7,

d0,d1,d2,d3,d4,d5,d6,d7:

instd_logic;

s0,s1,s2,s3,fujiout:

outstd_logic);

endfujieqiall;

architectureffoffujieqiallis

componentcount16

port(clk:

instd_logic;

D,C,B,A:

outstd_logic);

endcomponent;

componentneimacs0

port(in0_8,in0_7,in0_6,in0_5,in0_4,in0_3,in0_2,in0_1,

K3,K2,K1,sx0:

instd_logic;

out0:

outstd_logic);

endcomponent;

componentshixusuccessful

port(B:

instd_logic;

S3,S2,S1,S0:

outstd_logic);

endcomponent;

componentmen

port(in1:

instd_logic;

out1:

outstd_logic);

endcomponent;

componentandmen

port(in1,in2,in3,in4:

instd_logic;

outp:

outstd_logic);

endcomponent;

componentdjhlatch

port(D,ena:

instd_logic;

q1:

outstd_logic);

endcomponent;

signalw1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,

w12,w13,w14,w15,w16:

std_logic;

begin

m1:

neimacs0

portmap(in0_1=>a0,in0_2=>a1,in0_3=>a2,in0_4=>a3,in0_5=>a4,in0_6=>a5,

in0_7=>a6,in0_8=>a7,K3=>w3,K2=>w2,K1=>w1,sx0=>w4,out0=>w15);

m2:

neimacs0

portmap(in0_1=>b0,in0_2=>b1,in0_3=>b2,in0_4=>b3,in0_5=>b4,in0_6=>b5,

in0_7=>b6,in0_8=>b7,K3=>w3,K2=>w2,K1=>w1,sx0=>w5,out0=>w14);

m3:

neimacs0

portmap(in0_1=>c0,in0_2=>c1,in0_3=>c2,in0_4=>c3,in0_5=>c4,in0_6=>c5,

in0_7=>c6,in0_8=>c7,K3=>w3,K2=>w2,K1=>w1,sx0=>w6,out0=>w13);

m4:

neimacs0

portmap(in0_1=>d0,in0_2=>d1,in0_3=>d2,in0_4=>d3,in0_5=>d4,in0_6=>d5,

in0_7=>d6,in0_8=>d7,K3=>w3,K2=>w2,K1=>w1,sx0=>w7,out0=>w12);

m5:

shixusuccessfulportmap(b=>clk,S3=>w7,S2=>w6,S1=>w5,S0=>w4);

m6:

count16portmap(clk=>clk,D=>W1,C=>W2,B=>W3);

m7:

menportmap(in1=>w7,out1=>s3);

m8:

menportmap(in1=>w6,out1=>s2);

m9:

menportmap(in1=>w5,out1=>s1);

m10:

menportmap(in1=>w4,out1=>s0);

m11:

andmenportmap(in1=>w12,in2=>w13,in3=>w14,in4=>w15,outp=>w16);

m12:

djhlatchportmap(D=>w16,ena=>ena,q1=>fujiout);

endff;

libraryieee;

useieee.std_logic_1164.all;

entitymenis

port(in1:

instd_logic;

out1:

outstd_logic);

endmen;

architectureoneofmenis

begin

out1<=in1;

endone;

libraryieee;

useieee.std_logic_1164.all;

entityandmenis

port(in1,in2,in3,in4:

instd_logic;

outp:

outstd_logic);

endandmen;

architectureoneofandmenis

begin

outp<=in1andin2andin3andin4;

endone;

libraryieee;

useieee.std_logic_1164.all;

entitydjhlatchis

port(d,ena:

instd_logic;

q1:

outstd_logic);

endentitydjhlatch;

architectureoneofdjhlatchis

signalsig_save:

std_logic;

begin

process(d,ena)

begin

ifena='1'then

sig_save<=d;

endif;

q1<=sig_save;

endprocess;

endarchitectureone;

 

仿真

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1