数字基带信号hdb3码的编码器设计与建模

数字基带信号hdb3码的编码器设计与建模

ID:2468280

大小:949.50 KB

页数:4页

时间:2017-11-16

数字基带信号hdb3码的编码器设计与建模_第1页
数字基带信号hdb3码的编码器设计与建模_第2页
数字基带信号hdb3码的编码器设计与建模_第3页
数字基带信号hdb3码的编码器设计与建模_第4页
资源描述:

《数字基带信号hdb3码的编码器设计与建模》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、------hdb3_coder.vhd,实现HDB3编码器功能libraryieee;useieee.std_logic_1164.all;entityhdb3_coderisport(codein:instd_logic;clk:instd_logic;clr:instd_logic;codeout:outstd_logic_vector(1downto0));endhdb3_coder;architecturertlofhdb3_coderissignalcodeoutv:std_logic_vector(1do

2、wnto0);signalcount0:integer:=0;signals0:std_logic_vector(4downto0):="00000";signalcount1:integerrange1downto0;signalcodeoutb:std_logic_vector(1downto0);signals1:std_logic_vector(4downto0):="00000";signalclkb:std_logic;signals3:std_logic_vector(1downto0);signalfl

3、ag1b:integerrange1downto0;signalflagv:integerrange1downto0;signalfirstv:integerrange0to1;componentdff--调元件dffport(d:instd_logic;clk:instd_logic;q:outstd_logic);endcomponent;beginadd_v:process(clk,clr)--插Vbeginif(rising_edge(clk))thenif(clr='1')thencodeoutv<="00"

4、;count0<=0;elsecasecodeiniswhen'1'=>codeoutv<="01";--01代表1count0<=0;when'0'=>if(count0=3)then--四连0插vcodeoutv<="11";count0<=0;elsecount0<=count0+1;codeoutv<="00";endif;whenothers=>codeoutv<="00";count0<=count0;endcase;endif;endif;endprocessadd_v;s0(0)<=codeoutv(0

5、);s1(0)<=codeoutv(1);dsll:dffportmap(s1(0),clk,s1(1));ds01:dffportmap(s0(0),clk,s0(1));dsl2:dffportmap(s1(1),clk,s1(2));ds02:dffportmap(s0(1),clk,s0(2));dsl3:dffportmap(s1(2),clk,s1(3));ds03:dffportmap(s0(2),clk,s0(3));--dsl4:dffportmap(s1(3),clk,s1(4));--ds04:d

6、ffportmap(s0(3),clk,s0(4));--dsl5:dffportmap(s1(4),clk,s1(5));--ds05:dffportmap(s0(4),clk,s0(5));bclk:clkb<=notclk;add_b:process(clkb)--插Bbeginif(rising_edge(clkb))thenif(codeoutv="11")thenif(firstv=0)thencount1<=0;firstv<=1;s1(4)<=s1(3);s0(4)<=s0(3);elseif(coun

7、t1=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:

8、process(clkb)--输出beginif(rising_edge(clkb))thenif((codeoutb="01")or(codeoutb="10"))then--1或Bif(flag1b=1)thencodeout<="01";flag1b<=0;elsecodeout<="11";flag1b<=1;endif;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。