基于某FPGA的psk调制Word文档下载推荐.docx
- 文档编号:8239177
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:15
- 大小:348KB
基于某FPGA的psk调制Word文档下载推荐.docx
《基于某FPGA的psk调制Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于某FPGA的psk调制Word文档下载推荐.docx(15页珍藏版)》请在冰点文库上搜索。
inputreset_n;
outputclk_DA;
outputblank_DA_n;
outputsync_DA_n;
output[7:
0]dataout;
0]dm_out;
wire[6:
0]address;
wiredataoutm;
wireclk1;
wire[7:
0]dataout;
counterCOUNTER(
.clk(clk),
.reset_n(reset_n),
.count(count),
.clk1(clk1)
);
PN_SeqPN_SEQ(
.clk1(clk1),
.reset_n(reset_n),
.dataoutm(dataoutm)
ControllerCONTROLLER(
.clk(clk),
.dataoutm(dataoutm),
.address(address),
.clk_DA(clk_DA),
.blank_DA_n(blank_DA_n),
.sync_DA_n(sync_DA_n)
LookUpTableLOOKUPTABLE(
.dataout(dataout)
depskdepsk(
.clk(clk),
.data(dataout),
.dataout(dm_out)
endmoduleendmodule
分频模块
modulecounter(clk,reset_n,count,clk1);
inputclk,reset_n;
outputclk1;
output[6:
0]count;
regclk1;
reg[6:
parameterN=128;
always@(posedgeclkornegedgereset_n)
if(!
reset_n)
begin
count<
=1'
b0;
clk1<
end
elseif(count<
63)
begin
=count+1'
b1;
else
=~clk1;
endmodule
M序列产生模块
modulePN_Seq(clk1,reset_n,dataoutm);
inputclk1;
inputreset_n;
outputdataoutm;
reg[7:
1]c;
always@(posedgeclk1ornegedgereset_n)
reset_n)
c<
=7'
b1000000;
c[2]<
=c[1];
c[3]<
=c[2];
c[4]<
=c[3];
c[5]<
=c[4];
c[6]<
=c[5];
c[7]<
=c[6];
c[1]<
=c[2]^c[3]^c[4]^c[7];
assigndataoutm=c[7];
控制器模块
moduleController(
dataoutm,
address,
sync_DA_n
inputdataoutm;
output[6:
outputblank_DA_n;
reg[6:
0]address_data1;
0]address_data2;
0]address_data;
//always@(dataoutm)
//begin
//case(dataoutm)
//1'
b0:
//address_data=address_data2;
//end
b1:
//address_data=address_data1;
//default:
begin
//address_data=5'
bzzzzz;
//end
//endcase
//end
always@(posedgeclkornegedgereset_n)
reset_n)//
address_data1<
b011_1111;
//000_0000;
//定义初值相位
address_data2<
b000_0000;
//111_0011;
//定义初值0
else//
=address_data1+7'
b000_0001;
//地址依次加一
address_data2<
=address_data2+7'
reset_n)
address_data<
//赋初值
elseif(!
dataoutm)
=address_data2;
//如果m序列输出为0,则为address_data2值
elseif(dataoutm)
address_data<
=address_data1;
;
assignaddress=address_data;
assignclk_DA=clk;
assignblank_DA_n=1'
assignsync_DA_n=1'
endmodule
查找表模块
moduleLookUpTable(
clk,
reset_n,
address,
dataout,
inputclk;
inputreset_n;
input[6:
0]address;
output[7:
reg[7:
0]LUT[0:
127];
always@(posedgeclkornegedgereset_n)
LUT[34]<
=115;
LUT[35]<
=109;
LUT[36]<
=103;
LUT[37]<
=97;
LUT[38]<
=91;
LUT[39]<
=85;
LUT[40]<
=79;
LUT[41]<
=73;
LUT[42]<
=68;
LUT[43]<
=62;
LUT[44]<
=57;
LUT[45]<
=52;
LUT[46]<
=47;
LUT[47]<
=42;
LUT[48]<
=38;
LUT[49]<
=33;
LUT[50]<
=29;
LUT[51]<
=25;
LUT[52]<
=22;
LUT[53]<
=19;
LUT[54]<
=15;
LUT[55]<
=13;
LUT[56]<
=10;
LUT[57]<
=8;
LUT[58]<
=6;
LUT[59]<
=4;
LUT[60]<
=3;
LUT[61]<
=2;
LUT[62]<
=1;
LUT[63]<
LUT[64]<
=0;
LUT[65]<
LUT[66]<
LUT[67]<
LUT[68]<
LUT[69]<
LUT[70]<
LUT[71]<
if(!
reset_n)
LUT[0]<
=255;
LUT[1]<
=254;
LUT[2]<
=253;
LUT[3]<
=252;
LUT[4]<
=251;
LUT[5]<
=250;
LUT[6]<
=248;
LUT[7]<
=246;
LUT[8]<
=244;
LUT[9]<
=241;
LUT[10]<
=239;
LUT[11]<
=235;
LUT[12]<
=232;
LUT[13]<
=229;
LUT[14]<
=225;
LUT[15]<
=221;
LUT[16]<
=216;
LUT[17]<
=212;
LUT[18]<
=207;
LUT[19]<
=202;
LUT[20]<
=197;
LUT[21]<
=192;
LUT[22]<
=186;
LUT[23]<
=181;
LUT[24]<
=175;
LUT[25]<
=169;
LUT[26]<
=163;
LUT[27]<
=157;
LUT[28]<
=151;
LUT[29]<
=145;
LUT[30]<
=139;
LUT[31]<
=133;
LUT[32]<
=127;
LUT[33]<
=121;
LUT[122]<
LUT[123]<
LUT[124]<
LUT[125]<
LUT[126]<
LUT[127]<
end
assigndataout=LUT[address];
LUT[72]<
LUT[73]<
LUT[74]<
LUT[75]<
LUT[76]<
LUT[77]<
LUT[78]<
LUT[79]<
LUT[84]<
LUT[85]<
LUT[86]<
LUT[87]<
LUT[88]<
LUT[89]<
LUT[90]<
LUT[91]<
LUT[92]<
LUT[93]<
LUT[94]<
LUT[95]<
LUT[96]<
LUT[97]<
LUT[98]<
LUT[99]<
LUT[100]<
LUT[101]<
LUT[102]<
LUT[103]<
LUT[104]<
LUT[105]<
LUT[106]<
LUT[107]<
LUT[108]<
LUT[109]<
LUT[110]<
LUT[111]<
LUT[112]<
LUT[113]<
LUT[114]<
LUT[115]<
LUT[116]<
LUT[117]<
LUT[118]<
LUT[119]<
LUT[120]<
LUT[121]<
解调模块
moduledepsk(
clk,
data,
);
input[7:
0]data;
output[7:
0]dataout;
0]counter_value;
reg[7:
0]middata;
if(!
begin
counter_value[6:
0]<
middata[7:
=8'
b00000000;
//寄存器赋初值
end
else
begin
counter_value<
=counter_value+7'
//时钟沿依次加一
if(counter_value==7'
b010_0000)
begin
middata[7:
=data[7:
0];
//如果读到的值等于32,则取采样值
end
else
begin
=middata[7:
//如果没有读到32,则取0值
end
end
assigndataout[0]=~middata[7];
//寄存器
assigndataout[1]=~middata[7];
assigndataout[2]=~middata[7];
assigndataout[3]=~middata[7];
assigndataout[4]=~middata[7];
assigndataout[5]=~middata[7];
assigndataout[6]=~middata[7];
assigndataout[7]=~middata[7];
三、结果测试
Psk调制部分功能仿真
Psk调制部分时序仿真
PSK调制解调功能仿真
PSK调制解调时序仿真
PSK调制解调FPGA实现开发板验证
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA psk 调制