哪位好心人帮帮忙啊,要不然我的课就挂了
以下是老师给的题目,任选其一:
《基于CPLD/FPGA的数字通信系统建模与设计》设计题目
1、设计一个数字基带传输系统,要求对信码进行HDB3编译码,系统中要求有位同步提取模块和帧同步提取模块,并进行时序仿真。
2、设计一个三路同步复接器和分接器传输系统,要求帧标志码为巴克码01110010,系统中要求有位同步提取模块和帧同步提取模块,并进行时序仿真。
3、设计载波同步信号提取电路,用VHDL编程并进行时序仿真。
4、已知某2ASK系统的码元传输速率为103baud,所用的载波信号为 ,设所传送的数字信息为011001,试编写实现该数码调制的VHDL程序。
5、设某2FSK调制系统的码元传输速率为1000baud,已调信号的载波频率为1000Hz或2000Hz,若发送数字信息为011010,试考虑这时的2FSK信号应选择怎样的解调器解调,并编写实现该数码调制的VHDL程序。
6、若某2FSK系统的码元传输速率为2×106baud,数字信号为“1”时的频率f1为10MHZ,数字信号为“0”时的频率f2为10.4MHZ。输入接收端解调器的信号振幅a=40μV。信道加性噪声为高斯白噪声、且其单边功率谱密度为 。试编写该系统的VHDL程序。
7、设发送数字信息为011011100010,试分别编写实现该数码的2ASK调制、2FSK调制的VHDL程序。
8、设发送数字信息为011011100010,试分别编写实现该数码的2CPSK、2DPSK调制的VHDL程序。
9、假设在某2DPSK系统中,载波频率为2400Hz,码元速率为1200baud,已知相对码序列为1100010111。试编写实现该数码调制的VHDL程序。
10、试编写数码为111001011000的4ASK的调制与解调的VHDL程序。
11、试编写数码为111001011000的4PSK的调制与解调的VHDL程序。
12、试编写数码为111001011000的4FSK的调制与解调的VHDL程序。
13、试编写数码为111001011000的2ASK的调制与解调的VHDL程序。
14、试编写数码为111001011000的2PSK的调制与解调的VHDL程序。
15、试编写数码为111001011000的2FSK 的调制与解调的VHDL程序。
要求:按照课程设计的论文格式进行论文撰写,可以简述原理部分,给出设计过程以及程序,并附仿真结果图以及对仿真结果的分析。要求交电子版的程序,包括语言程序以及仿真文件*.scf。
我只要程序好仿真图形就行了,其他的我自己能搞定。
我的电子邮箱是:zben32@126.com
您都要成为研究生了,还要别人帮忙写这点东西,不是显得有点幼稚嘛?
你在学习过程中有不懂的可以来这里问,但是如果要请别人帮你做作业,那也太说不过去了吧?
偶在放弃本专业长达三年后,重新捧起课本,照样可以在5天内再次学会数字逻辑系统设计,并且从零起点学会CPLD开发及仿真和VHDL编程!
如果你的水平真的高到可以经常不上课而考上研究生的话,一定可以在8天内学会FPGA开发和仿真与VHDL编程的!
library ieee;
use ieee.std_logic_1164.all;
entity hdb3bianyi is-------top程序
port(codein:in std_logic;
clk:in std_logic;
clr:in std_logic;
codeoutut std_logic_vector(1 downto 0);
fb,zb:in std_logic;
decode,v2,v3ut std_logic);
end entity hdb3bianyi;
architecture gh of hdb3bianyi is
component hdb3
port(codein:in std_logic;
clk:in std_logic;
clr:in std_logic;
codeoutut std_logic_vector(1 downto 0));
end component hdb3;
component hdb3by
port(fb,zb,clk:in std_logic;
decode,v2,v3:out std_logic);
end component hdb3by;
begin
U1:HDB3
PORT MAP ( CODEIN=>CODEIN,CLK=>CLK,CLR=>CLR,CODEOUT=>CODEOUT );
U2:HDB3by
PORT MAP (fb=>fb,zb=>zb,clk=>clk,decode=>decode,v2=>v2,v3=>v3);
end architecture gh;
-----------------------------编码
library ieee;
use ieee.std_logic_1164.all;
entity hdb3 is
port(codein:in std_logic;
clk:in std_logic;
clr:in std_logic;
codeout:out std_logic_vector(1 downto 0));
end hdb3;
architecture behave of hdb3 is
signal cnt0:integer:=0;
signal flag0:integer range 1 downto 0 :=0;
signal flag1:integer range 1 downto 0 :=0;
signal flag2:integer range 1 downto 0 :=1;
signal flag3:integer range 1 downto 0 :=0;
signal firstv:integer range 1 downto 0 :=0;
signal codeoutv : std_logic_vector(2 downto 0);
signal s0:std_logic_vector(4 downto 0) :="00000";
signal codeoutb:std_logic_vector(2 downto 0);
signal s1:std_logic_vector(4 downto 0) :="00000";
signal clkb:std_logic;
signal clkv:std_logic;
signal clkout:std_logic;
signal s2:std_logic_vector(4 downto 0) :="00000";
signal s3 :std_logic_vector(2 downto 0);
component dff
port(d :in std_logic;
clk :in std_logic;
q :out std_logic);
end component;
----------------------插V
begin
vclk:clkv<=clk after 10 ns;
add_v:process(clk,clr)
begin
if clk'event and clk='1'then
if clr='1'then
codeoutv<="000";
cnt0<=0;
else
case codein is
when '1'=>--始终成立
cnt0<=0;
if(flag0=0) then
codeoutv<="110";
flag0<=1;
codeoutv<="010";
flag0<=0;
end if;
when '0'=>
if cnt0=3 then
if firstv=0 then
if flag0=0 then
codeoutv<="011";
flag1<=0;
else
codeoutv<="111";
flag1<=1;
end if;
firstv<=1;
else
if flag1=0 then
codeoutv<="111";
flag1<=1;
flag0<=1;
else
codeoutv<="011";
flag1<=0;
flag0<=0;
end if;
end if;
cnt0<=0;
else
cnt0<=cnt0+1;
codeoutv<="000";
end if;
when others=>----在其他所有的情况
codeoutv<="000";
cnt0<=cnt0;
end case;
end if;
end if;
end process add_v;
s0(0)<=codeoutv(0);
s1(0)<=codeoutv(1);
s2(0)<=codeoutv(2);
ds21:dff port map(s2(0),clk,s2(1));
ds11:dff port map(s1(0),clk,s1(1));
ds01:dff port map(s0(0),clk,s0(1));
ds22:dff port map(s2(1),clk,s2(2));
ds12:dff port map(s1(1),clk,s1(2));
ds02:dff port map(s0(1),clk,s0(2));
ds23:dff port map(s2(2),clk,s2(3));
ds13:dff port map(s1(2),clk,s1(3));
ds03:dff port map(s0(2),clk,s0(3));
---------插B
bclk:clkb<=not clk;
add_b:process(clkb)
begin
if clkb'event and clkb='1'then
case codeoutv is
when "110"=>
flag3<=1;
s2(4)<=s2(3);
s1(4)<=s1(3);
s0(4)<=s0(3);
when "010"=>
flag3<=0;
s2(4)<=s2(3);
s1(4)<=s1(3);
s0(4)<=s0(3);
when "111"=>
if flag3<=0 then
s2(4)<='1';
s1(4)<='0';
s0(4)<='1';
flag3<=1;
else
s2(4)<=s2(3);
s1(4)<=s1(3);
s0(4)<=s0(3);
end if;
flag2<=1;
when "011"=>
if flag3<=0 then
s2(4)<=s2(3);
s1(4)<=s1(3);
s0(4)<=s0(3);
else
s2(4)<='0';
s1(4)<='0';
s0(4)<='1';
flag3<=0;
end if;
flag2<=0;
when others=>
s2(4)<=s2(3);
s1(4)<=s1(3);
s0(4)<=s0(3);
end case;
codeoutb<=s2(4)&s1(4)&s0(4);
end if;
end process add_b;
-------------------------输出
outclk:clkout<=clk after 5 ns;
output: process(clkout)
begin
ifclkout'event and clkout='1'then
if codeoutb="000"then
codeout<="00";
elsif codeoutb="001"or codeoutb="010" or codeoutb="011"then
codeout<="01";
else
codeout<="10";
end if;
end if;
end process output;
end behave;
--------------------译码
library ieee;
use ieee.std_logic_1164.all;
entity hdb3by is
port(fb,zb,clk:in std_logic;
decode,v2,v3:out std_logic);
end entity hdb3by;
architecture hh of hdb3by is
component kvb
port(clk:in std_logic;
v,datain:in std_logic;
decode:out std_logic);
end component kvb;
component or1
port(a,b:in std_logic;c:out std_logic);
end component or1;
component fv
port(fb,zb:in std_logic;
fvout:out std_logic);
end component fv;
component zv
port(fb,zb:in std_logic;
zvout:out std_logic);
end component zv;
component v1
port(a,b:in std_logic;
v2,v3:out std_logic);
end component v1;
signal m,x,y,z:std_logic;
begin
t1:zv port map(fb=>fb,zb=>zb,zvout=>x);
t2:fv port map(fb=>fb,zb=>zb,fvout=>y);
t3:or1 port map(a=>y,b=>x,c=>z);
t4:or1 port map(a=>fb,b=>zb,c=>m);
t5:kvb port map(clk=>clk,v=>z,datain=>m,decode=>decode);
t6:v1 port map(a=>x,b=>y,v2=>v2,v3=>v3);
end architecture hh;
library ieee;
use ieee.std_logic_1164.all;
entity v1 is
port(a,b:in std_logic;
v2,v3:out std_logic);
end v1;
architecture one of v1 is
begin
v2<=a;
v3<=b;
end one;
---------+v模块
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity zv is
port(fb,zb:in std_logic;
zvout:out std_logic);
end zv;
architecture bh of zv is
signal M:std_logic_vector(2 downto 0);
begin
process(zb,fb)
begin
if fb='1'then M<="000";
elsif zb'event and zb='1'then
if M<2 then
M<=M+1;
end if;
end if;
end process;
process(FB,M)
begin
if FB='0'then
if M<2 then
zvout<='0' ;
else
zvout<=zb;
end if;
else
zvout<='0';
end if;
end process;
end bh;
-------- -V模块
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity fv is
port(fb,zb:in std_logic;
fvout:out std_logic);
end fv;
architecture hh of fv is
signal N:std_logic_vector(2 downto 0);
begin
process(zb,fb)
begin
if zb='1'then N<="000";
elsif fb'event and fb='1'then
if N<2 then
N<=N+1;
end if ;
end if;
end process;
process(zb,N)
begin
if zb='0'then
if N<2 then
fvout<='0';
else
fvout<=fb;
end if;
else
fvout<='0';
end if;
end process;
end hh;
----------加法器
library ieee;
use ieee.std_logic_1164.all;
entity or1 is
port(a,b:in std_logic;c:out std_logic);
end entity or1;
architecture one of or1 is
begin
c<=a or b;
end architecture one;
-----------扣V扣B
library ieee;
use ieee.std_logic_1164.all;
entity kvb is
port(clk:in std_logic;
v,datain:in std_logic;
decode:out std_logic);
end kvb;
architecture behav of kvb is
signal A0,A1,A2,A3:std_logic;
begin
process(clk,v)
begin
if clk'event and clk='1'then
if(v='1')then
A0<='0';
A1<='0';
A2<='0';
A3<='0';
decode<=A0;
elsif(v='0')then
A3<=datain;
A2<=A3;
A1<=A2;
A0<=A1;
decode<=A0;
end if;
end if;
end process;
end behav;
帮我看看这个程序,我照书本写的,由于老师没讲帧同步模块,问其他的同学他们也不会,哪位大侠帮我改一下可以吗?小弟在此谢谢了。
题目:设计一个数字基带传输系统,要求对信码进行HDB3编译码,系统中要求有位同步提取模块和帧同步提取模块,并进行时序仿真
感觉不是VHDL课,根本就是通信原理...
这些你可以去论文数据库里查,肯定查的到.然后看看改改就OK
COPY同学的也可以
早挂早安心
中国的大学生让人瞧不起基本上都是lz这样的给祸害的
只可惜偶通信的东西不懂
考研不用太认真现在考研的人数明显下降 还是搞点实用的吧