数字通信系统的VHDL设计.ppt
上传人:天马****23 上传时间:2024-09-11 格式:PPT 页数:25 大小:137KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

数字通信系统的VHDL设计.ppt

数字通信系统的VHDL设计.ppt

预览

免费试读已结束,剩余 15 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

6.1基于VHDL的HDB3码程序设计插”B”模块的实现count1<=0;endif;endif;elsif(codeoutv=“01”)thencount1<=count1+1;s1(4)<=s1(3);s0(4)<=s0(3);elses1(4)<=s1(3);s0(4)<=s0(3);count1<=count1;endif;endif;endprocessadd_b;codeoutb<=s1(4)&s0(4);单极性变双极性的实现编码器模块的总程序signals1:std_logic_vector(4downto0):=“00000”;signalclkb:std_logic;signals3:std_logic_vector(1downto0);signalflag1b:integerrange1downto0;signalflagv:integerrange1downto0;signalfirstv:integerrange0to1;componentdffport(d:instd_logic;clk:instd_logic;q:outstd_logic);endcomponent;beginadd_v:process(clk,clr)beginif(rising_edge(clk))thenif(clr=‘1’)thencodeoutv<=“00”;count<=0;elsecasecodeiniswhen‘1’=>codeoutv<=“01”;count0<=0;when‘0’=>if(count0=3)thencodeoutv<=“11”;count0<=0;elsecount0<=count0+1;codeoutv=“00”;endif;whenothers=>codeoutv<=“00”;count0<=count0;endcase;endif;endif;endprocessadd_v;s0(0)<=codeoutv(0);s1(0)<=codeoutv(1);ds11:dffportmap(s1(0),clk,s1(1));ds01:dffportmap(s0(0),clk,s0(1));ds12:dffportmap(s1(1),clk,s1(2));ds02:dffportmap(s0(1),clk,s1(2));ds13:dffportmap(s1(2),clk,s1(3));ds03:dffportmap(s0(2),clk,s1(3));-ds14:dffportmap(s1(3),clk,s1(4));-ds04:dffportmap(s0(3),clk,s0(4));-ds15:dffportmap(s1(4),clk,s1(5));-ds05:dffportmap(s0(4),clk,s0(5));bclk:clkb<=notclk;add_b:process(clkb)beginif(rising_edge(clkb))thenif(codeoutv=“11”)thenif(firstv=0)thencount1<=0;firstv<=1;s1(4)<=s1(3);s0(4)<=s0(3);elseif(count1=0)thens1(4)<=‘1’;s0(4)<=‘0’;count1<=0;elses1(4)<=s1(3);s0(4)<=s0(3);count1<=0;endif;endif;elsif(codeoutv=“01”)thencount1<=count1+1;s1(4)<=s1(3);s0(4)<=s0(3);elses1(4)<=s1(3);s0(4)<=s0(3);count1<=count1;endif;endif;endprocessadd_b;codeoutb<=s1(4)&s0(4);output:process(clk)beginif(rising_edge(clk))thenif((codeoutb=“01”)or(codeoutb=“10”))thenif(flag1b=1)thencodeout<=“01”;flag1b<=0;elsecodeout<=“11”;flag1b<=1;endif:elsif(codeoutb=“11”)thenif(flag1b=1)thencodeout<=“11”;elsecodeout<=“01”;endif;elsecodeout<=“00”;flag1b<=flag1b