10 VHDL综合设计实验(大作业)

合集下载

西电VHDL大作业实验题

西电VHDL大作业实验题

9
作业2
• • • • • • • c'LOW -> ______ d'HIGH -> ______ c'LEFT -> ______ d'RIGHT -> ______ c'RANGE -> ______ d'LENGTH -> ______ c'REVERSE_RANGE -> ______
10
8
作业1
x1 <= a & c; -> x1 <= ________ x2 <= c & b; -> x2 <= ________ x3 <= b XOR c; -> x3 <= ________ x4 <= a NOR b(3); -> x4 <= ________ x5 <= b sll 2; -> x5 <= ________ x6 <= b sla 2; -> x6 <= ________ x7 <= b rol 2; -> x7 <= ________ x8 <= a AND NOT b(0) AND NOT c(1); -> x8 <= ________ d <= (5=>'0', OTHERS=>'1'); -> d<= ________
实验
实验一 用IF语句设计一个四-十六译码器 用CASE语句设计一个四-十六译码器 用GENERATE语句构造一个串行的十六进制 计数器 实验二 设计一个两位二进制的加法器 设计一个两位的BCD计数器 实验三 利用数组形式描述256x8bits的RAM,并利用 测试床完成对其读写操作

vhdl课程设计实验报告

vhdl课程设计实验报告

湖南科技大学信息与电气工程学院《课程设计报告》题目:电子技术课程设计报告专业:通信工程班级:一班姓名:何家乐学号: 1004040126指导教师:罗朝辉任务书题目《电子技术》课程设计时间安排课程设计时间为10天(2周)。

(1)调研、查资料1天。

(2)总体方案设计2 天。

(3)电路设计2天(画原理图,参数计算)。

(4)实验室完成相应电路的验证。

3天(5)撰写设计说明书 1 天。

(6)验收1 天。

目的:训练学生综合运用学过的电子技术原理的基础知识,独立进行查找资料、选择方案、设计电路、撰写报告,进一步加深对电子电路基本理论的理解,提高运用基本技能的能力,为今后的学习和工作打下坚实的基础。

要求:(1)能正确设计电路,画出线路图,分析电路原理。

(2)按时参加课程设计指导,定期汇报课程设计进展情况。

(3)广泛收集相关技术资料。

(4)独立思考,刻苦钻研,严禁抄袭。

(5)按时完成课程设计任务,认真、正确地书写课程设计报告。

(6)培养实事求是、严谨的工作态度和认真的工作作风。

总体方案实现:(1)明确设计任务,对所要设计的任务进行具体分析,充分了解电路性能、指标内容及要求。

(2)制定设计方案。

(3)迸行具体设计:单元电路的设计;参数计算;器件选择;绘制电路原理图。

(4)撰写课程设计报告(说明书):课程设计报告是对设计全过程的系统总结,也是培养综合科研素质的一个重要环节。

指导教师评语:评分等级:()指导教师签名:课程设计报告1.课题名称:RGB LED Control 原理图及PCB设计2.设计任务及要求⑴任务:完成RGB LED control 的设计,并画出原理图及其PCB设计。

⑵要求:①能正确设计电路,画出线路图,分析电路原理。

②按时参加课程设计指导,定期汇报课程设计进展情况。

③广泛收集相关技术资料。

④独立思考,刻苦钻研,严禁抄袭。

⑤按时完成课程设计任务,认真、正确地书写课程设计报告。

⑥培养实事求是、严谨的工作态度和认真的工作作风。

数字电路设计实验vhdl语言实验报告

数字电路设计实验vhdl语言实验报告

数字电路设计实验vhdl语⾔实验报告实验⼀秒表计数器的设计⼀、实验⽬的:本实验通过设计四种频率可选的数字时钟系统,以达到熟悉VHDL 语⾔编程语法、设计思路和熟练掌握Quartus II 开发软件的⽬的。

⼆、实验内容:该数字时钟的显⽰格式如下所⽰:HH:MM:SS,其中HH表⽰时计数的两位,MM表⽰分计数的两位,SS表⽰秒计数的两位。

本系统输⼊信号分别为复位信号rst(⾼有效)、sel(两位信号,分别可以选择2分频、4分频8分频和16分频)、clk_in(时钟信号)、8位时输出、8位分输出、8位秒输出(其中⾼4为表⽰对应的⾼半字节、低4位表⽰的低半字节,譬如当时间为08:59:30时,时输出为”0000_1000”,分输出为”0101_1001”,秒输出为”0011_0000”)。

该时钟系统可以通过Sel信号时钟运⾏的快慢。

三、实验流程:通过对实验内容的分析:可以考虑时钟系统的可由三部分组成:1、分频器:分频器为时序电路并且通过《数字电路》理论课程的学习可知由计数器来实现,同学可以回想⼀下实验1中是如何实现计数器电路的设计),该模块主要产⽣2、4、8、16分频的时钟信号;2、多路选择器:在VHDL中多路选择器为组合逻辑,可以有多种实现⽅法,在这⾥主要选⽤了case语句来实现。

该模块的作⽤是从分频器中根据Sel信号选择适当的时钟信号;3、时钟控制器:该模块⽐较复杂,主要实现功能是实现⼀个24⼩时的计时。

当时间为00:00:59的时候下⼀个时钟到来时状态的跳变为00:01:00,计时中多数计数为加1操作,有⼏个特殊状态需要重点考虑:当时间产⽣分进数时,譬如上例。

当时间产⽣时进数时,譬如00:01:59时刻的下⼀个状态为00:02:00;当时间产⽣时进数时,譬如00:59:59是个的下⼀个状态为01:00:00。

当时间产⽣天进数时,譬如23:59:59的下⼀个状态为00:00:00。

四、仿真要求:本次试验的结果全部采⽤功能仿真分析:1、在结果图中能够看到让复位信号rst为有效的情况下,所有的输出为00:00:00;2、当频率选择输出分别为”00”、”01”、”10”、”11”时秒为的进数分别包含2、4、8、16倍clk_in的时钟周期;3、可以看到完整的计时周期00:00:00->23:59:59->00:00:00。

VHDL多路波形发生器实验报告

VHDL多路波形发生器实验报告

VHDL多路波形发生器实验报告一、基本要求:1、对输入时钟信号进行分频,实现三路互差120°的信号。

2、实现输出信号的占空比控制clk: 输入时钟信号reset: 同步复位信号(低电平有效)div: 输入分频控制信号(注意:6n分频)ctrl: 占空比控制信号ctrl=1时, 占空比为1:1ctrl=2时, 占空比为1:2ctrl=3时, 占空比为2:1A,B,C: 三路输出信号二、设计思路:1.实验为6n分频,用变量s来控制,0~6n-1这六个数,当时钟信号每来一个上升沿时加1,当为6n-1时清零;2.定义N为常量,通过改变N的值改变分频;3.ctrl值不同时,占空比不同,用case语句控制,ctrl分别为01,10,11和其他;4.具体波形的实现用if语句,当占空比为1时,A输出信号在s=0和s=3*n时翻转,B输出信号在s=2*n和s=5*n时翻转,C输出信号在s=4*n和s=n的时候翻转。

当占空比为1:2时,A输出信号在s=0和s=2*n时翻转,B输出信号在s=2*n和s=4*n时翻转,C输出信号在s=4*n和s=0的时候翻转。

当占空比为2:1时,A输出信号在s=0和s=4*n时翻转,B输出信号在s=2*n和s=0时翻转,C输出信号在s=4*n和s=2*n的时候翻转;5.在占空比为1和1:2时,C输出信号应比B慢120度,但是实际输出超前B,所以要对C输出进行反相;同理,在占空比为2:1时,要对B、C分别进行反向。

6.用if语句判断是否复位,若非,则执行case语句。

三、流程图:四、源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity top isport(clk,reset:in std_logic;ctrl:in std_logic_vector(1 downto 0);A,B,C:out std_logic);end top ;architecture rel of top issignal temp1,temp2,temp3,temp4,temp5 : std_logic; constant N: integer:=1;signal s:integer range 0 to 6*N-1 ;beginprocess(clk,reset,ctrl)beginif (reset='0') thentemp1<='0';temp2<='0';temp3<='0';temp4<='0';temp5<='0';s<=0;elsecase ctrl iswhen "01"=>if (clk 'event and clk='1') thenif s=6*N-1 thens<=0;elses <= s+1;end if;if s=0 thentemp1<= not temp1;end if;if s=3*N thentemp1<= not temp1;end if;if s=2*N thentemp2<= not temp2;end if;if s=5*N thentemp2<= not temp2;end if;if s=4*N thentemp4<= not temp4;end if;if s=N thentemp4<= not temp4;end if;end if;temp3<= not temp4;when "10"=>if (clk 'event and clk='1') thenif s=6*N-1 thens<=0;elses <= s+1;end if;if s=0 thentemp1<= not temp1;end if;if s=2*N thentemp1<= not temp1;end if;if s=2*N thentemp2<= not temp2;end if;if s=4*N thentemp2<= not temp2;end if;if s=4*N thentemp4<= not temp4;end if;if s=0 thentemp4<= not temp4;end if;end if;temp3<= not temp4;when "11"=>if (clk 'event and clk='1') thenif s=6*N-1 thens<=0;elses <= s+1;end if;if s=0 thentemp1<= not temp1;end if;if s=4*N thentemp1<= not temp1;end if;if s=2*N thentemp5<= not temp5;end if;if s=0 thentemp5<= not temp5;end if;if s=4*N thentemp4<= not temp4;end if;if s=2*N thentemp4<= not temp4;end if;end if;temp2<= not temp5;temp3<= not temp4;when others=>temp1<='0';temp2<='0';temp3<='0';end case;end if;end process;A<=temp1;B<=temp2;C<=temp3;end rel;五、仿真波形:整体波形:当ctrl=1 当ctrl=2 当ctrl=3复位当ctrl=其他:六、实验过程遇到的问题:在程序设计时,开始不知该怎样使A,B,C互差120度,开始是想通过定义一个变量,每来一个上升沿加1,从0开始,A路信号除3n 取余为0则翻转,B路信号除3n取余为1则翻转,C路信号除3n取余为2则翻转,我觉得这样的想法应该没有错,可是实际却调不出来,可能是某处逻辑有问题,后来就模仿老师给的6分频程序,设计了现在的程序。

vhdl实验报告

vhdl实验报告

vhdl实验报告VHDL实验报告引言:VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,广泛应用于数字电路设计和仿真。

本篇实验报告将介绍我在VHDL实验中的学习和实践经验,包括实验目的、实验过程、实验结果以及对VHDL的理解和展望。

一、实验目的VHDL实验的主要目的是让我们掌握VHDL语言的基本语法和使用方法,能够利用VHDL描述数字电路,并通过仿真和综合工具进行验证和实现。

通过这些实验,我们可以深入了解数字电路的原理和设计方法,提高我们的逻辑设计能力和工程实践能力。

二、实验过程在实验过程中,我们首先学习了VHDL的基本语法,包括实体声明、端口声明、信号声明等。

然后,我们通过实例学习了VHDL的建模方法,包括组合逻辑电路的建模和时序逻辑电路的建模。

在组合逻辑电路的建模中,我们学习了使用逻辑运算符和条件语句描述电路的功能;在时序逻辑电路的建模中,我们学习了使用过程语句和时钟信号描述电路的状态转换。

在学习了VHDL的基础知识后,我们开始进行实验设计。

我们选择了一个简单的数字电路,如4位加法器,来进行实验验证。

首先,我们通过VHDL语言描述了加法器的功能和结构,包括输入端口、输出端口和中间信号。

然后,我们使用仿真工具进行了功能仿真,验证了加法器的正确性。

接着,我们使用综合工具将VHDL代码综合成门级电路,并进行了时序仿真和时序优化,验证了加法器的时序正确性和性能。

三、实验结果通过实验,我们成功地实现了4位加法器的功能,并验证了其正确性和性能。

在功能仿真中,我们输入了不同的测试数据,观察了输出结果,发现加法器能够正确地进行加法运算,并得到了正确的结果。

在时序仿真中,我们观察了电路的时序行为,包括输入信号的变化、输出信号的响应和中间信号的传播延迟等,发现加法器能够在时序上满足要求,并且具有较好的性能。

数字系统设计与VHDL课程大作业

数字系统设计与VHDL课程大作业

数字系统设计与VHDL课程大作业霓虹灯电路设计学院: 计算机科学与工程班级:计算机科学与技术一班学号:1305010126姓名:唐艳香组员:郑林升,袁博,唐艳香实验内容:1)使用平台上的8个七段数码管进行显示,即围绕平台上的8个数码管转圈;2)要求同时显示的段数为1、2、3段可选;3)可进行顺向、逆向显示(通过某一开关键进行选择);4)按下复位键后,重新开始旋转;5)多种点亮方式自选,如全亮等。

总体模块划分:1)定义输入输出端;2)由于只有一个主程序,所有模块都直接添加在里面。

主程序中可瞧做复位,旋转方向,旋转速度,旋转块数的小程序结合;3)建立波形图,进行仿真;4)绑定引脚,下载程序进行测试;5)修正小bug。

代码实现:library ieee;use ieee、std_logic_1164、all;use ieee、std_logic_arith、all;use ieee、std_logic_unsigned、all;entity water_lamp isgeneric(n:integer:=60000);port(clk_sys:in std_logic;order:in std_logic;k:in std_logic;q:in std_logic;num:in std_logic_vector(2 downto 0);L:out std_logic_vector(7 downto 0);LED:out std_logic_vector(7 downto 0)); end water_lamp;architecture one of water_lamp issignal cnt:integer range 0 to n;signal cnt1:integer range 0 to n;signal cnt2:integer range 0 to n;signal clk_new:std_logic;signal cnm:integer range 19 downto 0;signal cnm0:integer range 19 downto 0;signal clk_new1:std_logic;signal clk_new2:std_logic_vector(0 to 1):="00"; beginp1:process(clk_sys)beginif clk_sys'event and clk_sys='1' thenif cnt<integer(n/2)-1 thencnt<=cnt+1;elsecnt<=0;clk_new<=not clk_new;end if;end if;end process p1;p2:process(clk_new)variable LED_tmp:std_logic_vector(7 downto 0); beginif clk_new'event and clk_new='1' thenif order='0'thenif cnm>0 thencnm<=cnm-1;elsecnm<=19;end if;elseif cnm<19 thencnm<=cnm+1;elsecnm<=0;end if;end if;end if;end process p2;p3:process(cnm,num,clk_sys,cnt1,cnt2,clk_new2) beginif num="001" thencnm0<=cnm;elsif num="011" thenif clk_sys'event and clk_sys='1'thenif cnt1<integer(n/1000) thencnt1<=cnt1+1;elsecnt1<=0;clk_new1<=not clk_new1;end if;end if;if clk_new1='0' thencnm0<=cnm;elseif cnm=19 thencnm0<=0;elsecnm0<=cnm+1;end if;end if;elsif num="111" thenif clk_sys'event and clk_sys='1'thenif cnt2<integer(n/1000) thencnt2<=cnt2+1;elsecnt2<=0;if clk_new2="00" thenclk_new2<="01";cnm0<=cnm;elsif clk_new2="01" thenclk_new2<="10";if cnm=19 thencnm0<=0;elsecnm0<=cnm+1;end if;elsif clk_new2="10" thenclk_new2<="00";if cnm=18 thencnm0<=0;elsif cnm=19 thencnm0<=1;elsecnm0<=cnm+2;end if;end if;end if;end if;end if;end process p3;p4:process(cnm0)beginif k='1' thencase cnm0 iswhen 0 =>L<="01111111";LED<="10000000"; when 1 =>L<="10111111";LED<="10000000"; when 2 =>L<="11011111";LED<="10000000"; when 3 =>L<="11101111";LED<="10000000"; when 4 =>L<="11110111";LED<="10000000"; when 5 =>L<="11111011";LED<="10000000"; when 6 =>L<="11111101";LED<="10000000"; when 7 =>L<="11111110";LED<="10000000"; when 8 =>L<="11111110";LED<="00000100"; when 9 =>L<="11111110";LED<="00001000"; when 10 =>L<="11111110";LED<="00010000"; when 11 =>L<="11111101";LED<="00010000"; when 12 =>L<="11111011";LED<="00010000"; when 13 =>L<="11110111";LED<="00010000"; when 14 =>L<="11101111";LED<="00010000"; when 15 =>L<="11011111";LED<="00010000"; when 16 =>L<="10111111";LED<="00010000"; when 17 =>L<="01111111";LED<="00010000"; when 18 =>L<="01111111";LED<="00100000"; when 19 =>L<="01111111";LED<="01000000"; when others =>LED<= "00000000";end case;else L<="11111111";LED<="00000000";end if;if q='1'then L<="00000000";LED<="11111111"; end if;end process p4;end one;仿真结果:(缩略图)(展开图)设计总结及心得体会:经过将近两周的学习与动手操作,终于将老师所布置的实验完成。

基于VHDL的十进制频率计设计

基于VHDL的十进制频率计设计

基于VHDL语言的十进制数字频率计设计霍艳艳( 临沂大学物理系)摘要:文中运用VHDL语言,采用Top To Down的方法,实现6位数字频率计,并利用QuartusII软件集成开发环境进行编辑、综合、波形仿真,并下载到CPLD器件中,经实际电路测试,该系统系统性能实现。

关键词:EDA;VHDL;数字频率计;波形仿真;功能仿镇;CPLD1、引言VHDL是超高速集成电路硬件描述语言(Very High Speed Integrated Circuit Hardware Description Language)的缩写,在美国国防部支持下于1985年成功开发的一种快速设计电路的工具,是目前标准化流程最高的硬件描述语言。

IEEE(The Institute of Electrical and Electronics Engineers)于1987年将VHDL采纳为IEEE1067标准。

VHDL经过20多年的发展、应用和完善,以其强大的系统描述能力、规范的程序设计结构、灵活的语言表达风格和多层的仿真测试手段,在电子领域受到了普遍的认同和广泛的接触。

相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(Top to Down)和基于库(LibraryBased)的设计的特点,因此设计者可以不必了解硬件结构。

从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。

数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。

随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL 语言。

vhdl设计实验报告

vhdl设计实验报告

vhdl设计实验报告VHDL设计实验报告引言VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,广泛应用于数字电路设计和验证。

本实验旨在通过设计一个简单的电路来熟悉VHDL语言的基本语法和设计流程。

一、实验背景数字电路是现代电子系统的基础,而VHDL则是描述和设计数字电路的重要工具。

VHDL可以帮助工程师们以一种形式化的语言来描述电路的功能和结构,从而实现电路的模拟和验证。

二、实验目的本实验的目的是通过使用VHDL语言设计一个简单的电路,加深对VHDL语言的理解,并掌握基本的电路设计流程。

三、实验步骤1. 确定电路功能在设计电路之前,首先需要明确电路的功能。

本实验中,我们选择设计一个4位加法器电路。

2. 设计电路结构根据电路功能的要求,设计电路的结构。

在本实验中,我们需要设计一个4位加法器,因此需要使用4个输入端口和一个输出端口。

3. 编写VHDL代码使用VHDL语言编写电路的描述代码。

在代码中,需要定义输入和输出端口的类型和位宽,并实现电路的功能。

4. 进行仿真使用仿真工具对设计的电路进行仿真,以验证电路的功能是否符合预期。

通过输入不同的测试数据,观察输出是否正确。

5. 下载到FPGA开发板将设计好的电路代码下载到FPGA开发板上进行验证。

通过连接输入信号和观察输出信号,验证电路在实际硬件上的运行情况。

四、实验结果与分析经过仿真和实际验证,我们设计的4位加法器电路在功能上符合预期。

输入不同的数据进行加法运算时,输出结果都正确。

五、实验总结通过本次实验,我们深入了解了VHDL语言的基本语法和设计流程。

通过设计一个简单的电路,我们掌握了VHDL的应用方法,并通过仿真和实际验证,加深了对电路设计的理解。

六、实验心得本实验让我对VHDL语言有了更深入的认识。

通过实际操作,我更加熟悉了VHDL的编写和仿真流程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

综合设计:基于VHDL的线路编解码实现
数字光纤通信系统对线路码型的要求主要是保证传输的透明性,如下图,在电调制光源之前,通常需要对解码或扰码后的二进制码进行线路编码,减小功率谱中的高低频分量,为光接收机提供足够的定时信息,保证定时信息丰富,或能提供一定的冗余码,用于平衡码流、误码监测和公务通信。

而接收端进行光电转换后,提取位时钟信号进行判决得到线路编码信号,还需要进行解码还原出原始数字信号。

图1-1 光发送机的线路编码电路
FPGA在通信领域应用非常广泛,即将成为硬件设计的主流技术,编解码系统是其最基本的应用之一。

希望同学们能珍惜这次历练的机会,独立自主完成该作业,提升自己FPGA分析问题、解决问题的能力,为就业和将来的深造打好基础!
一、线路编解码的相关知识
mBnB、mB1C、mB1P、mB1H等都是常用的光线路编码,下面分别对其原理和实现方法进行介绍:
1)、mBnB线路编解码及其实现方法
mBnB码是把输入的二进制原始码流进行分组,每组有m个二进制码,记为mB,称为一个码字,然后把一个码字变换为n个二进制码,记为nB,并在同一个时隙内输出。

这种码型是把mB变换为nB,所以称为mBnB码。

其中,m和n都是正整数,n>m,一般选取n=m+1。

mBnB码有1B2B、3B4B、5B6B、 8B9B等等。

最简单的mBnB码是1B2B码,即曼彻斯特码,这就是把原码的“0”变换为“01”,把“1”变换为“10”。

因此最大的连“0”和连“1”的数目不会超过两个,例如1001和0110。

但是在相同时隙内,传输1比特变为传输2比特,码速提高了1倍(以太网中应用)。

设计者应根据最佳线路码特性的原则来选择码表。

作为普遍规则,引入“码字数字和”(WDS)来描述码字的均匀性,并以WDS 的最佳选择来保证线路码的传输特性。

所谓“码字数字和”,是在nB码的码字中,用“-1”代表“0”码,用“+1”代表“1”码,整个码字的代数和即为WDS。

如整个码字“1”码的数目多于“0”码,则WDS为正;如“0”码的数目多于“1”码,则WDS为负;如果“0”码和“1”码的数目相等,则WDS为0。

nB码的选择原则是:尽可能选择|WDS|最小的码字,禁止使用|WDS|最大的码字。

以3B4B为例,应选择WDS=0和WDS=±2的码字,禁止使用WDS=±4的码字。

我国低次群光纤通信系统的线路编码没有统一的规范,各企业拥有自己独立
的编码规则,而3次群和4次群光纤通信系统最常用的线路码型是5B6B 码。

mBnB 码是一种分组码,设计者可以根据传输特性的要求确定某种码表。

如下下表为一种3B4B 码的码表:
mBnB 线路编码在通信设备中的实现方法通常有两种:一种是采用专门的ASIC 设计,另一种是把设计好的码表全部存储到一块只读存储器(PROM)内而构成,国内设备一般采用这种方法。

以3B4B 码为例,码表存储编码器的工作原理示于图。

首先把设计好的码表存入PROM 内,待变换的信号码流通过串 - 并变换电路变为3比特一组的码b1、b2、b3,并行输出作为PROM 的地址码,在地址码作用下,PROM 根据存储的码表,输出与地址对应的并行4B 码,再经过并-串变换电路,读出已变换的4B 码流。

图中A 、B 、C 三条线为组别控制控制线,当WDS=±2时, 从A 、B 分别送出控制信号,通过C 线决定组别。

译码器与编码器基本相同,只是除去组别控制部分。

译码时,把送来的已变换的4B 信号码流,每4比特并联为一组,作为PROM 的地址,然后读出3B 码,再经过并-串变换还原为原来的信号码流。

图1-2 3B4B 码的实现原理
并→串PROM B 1B 2B 3B 4b 1b 2b 3串→并组别变换A B C 变前时钟已变换的输出4B 码流变换时钟待变换输入信号码流线路码(4B )信号码(3B )模式2(负组)模式1(正组)WDS 码子WDS 码子-20010+211011117-21000+2011111060101001010101501001010011004001100011001130
0101001010102-20001+211100011-20100+210110000
2)、插入码的编解码及其实现方法
插入码是把输入二进制原始码流分成每m 比特( mB )一组,然后在每组mB 码末尾按一定规律插入一个码,组成m+1个码为一组的线路码流。

根据插入码的规律,可以分为mB1C 码、mB1H 码和mB1P 码。

mB1C 码的编码原理是,把原始码流分成每m 比特(mB)一组, 然后在每组mB 码的末尾插入1比特补码,这个补码称为C 码, 所以称为mB1C 码。

补码插在mB 码的末尾,连“0”码和连“1”码的数目最少。

C 码的作用是引入冗余码,可以进行在线误码率监测;同时改善了“0”码和“1”码的分布,有利于定时提取。

mB1C 码的结构如图1-4所示,例如:
mB 码为: 100 110 001 101 ……
mB1C 码为: 1001 1101 0010 1010……
图1-4 mB1C 码的结构
mB1H 码是mB1C 码演变而成的,即在mB1C 码中,扣除部分C 码,并在相应的码位上插入一个混合码(H 码),所以称为mB1H 码。

所插入的H 码可以根据不同用途分为三类:
第一类是C 码,它是第m 位码的补码,用于在线误码率监测;
第二类是L 码,用于区间通信;
第三类是G 码,用于帧同步、公务、数据、监测等信息的传输。

在mB1P 码中,P 码称为奇偶校验码, 其作用和C 码相似, 但P 码有奇、偶校验以下两种情况(这里只介绍奇校验):
(1) P 码为奇校验码时, 其插入规律是使m+1个码内“1”码的个数为奇数, 例如:
mB 码为: 100 000 001 110……
mB1P 码为: 1000 0001 0010 1101……
当检测得m+1个码内“1”码为奇数时,则认为无误码。

常用的插入码是mB1H 码,有1B1H 码、4B1H 码和8B1H 码。

以4B1H 码为例,它的优点是码速提高不大,误码增值小;可以实现在线误码检测、区间通信和辅助信息传输。

缺点是码流的频谱特性不如mBnB 码,但在扰码后再进行4B1H 变换,可以满足通信系统的要求。

和mBnB 码不同,mB1H 码没有一一对应的码结构,所以mB1H 码的变换不能采用码表法,一般都采用缓存插入法来实现。

图1-5示出4B1H 编码器原理,它由缓存器、写入时序电路、插入逻辑和读出时序电路四部分组成。

4B1H 码是每4个信号码插入一个H 码, 因此变换后码速增加1/4。

设信号码的码速为34 368 kb/s , 经4B1H 变换后, 线路码的码速为(5/4)34 368 kb/s=42 960 kb/s 。

34 368 kb/s 的NRZ 信号码送入缓存器
缓存器是4D 触发器, 它利用锁相环中的4分频信号作为写入时序脉冲,随机但有顺序地把34 368 kb/s 信号码流分为4比特一组,与H 码一起并联送入插入逻辑。

插入逻辑电路实际上是一个5选1的电路,它利用锁相环中5分频电路输出读出时序脉冲。

由插入逻辑输出码速为42 960 kb/s 的4B1H 码。

mB C mB C mB C
C
图1-5 4B1H 编码器原理
二、VHDL 线路编码设计的内容 课题一:基于VHDL 的mBnB 编码/解码的实现
随机序列发生器的设计
编码系统设计
解码系统设计
(任意选择以下途径实现,但第2种途径加分:1、不考虑译码时钟的提取,收发系统采用共同的时钟;2、采用宏功能或自主设计全数字锁相环的位时钟同步提取电路来实现解码。

设计组可任意选择具体的码型,如1B2B 、3B4B 等)
课题二:基于VHDL 的插入码编码/解码的实现
随机序列发生器的设计
编码系统设计
解码系统设计
(任意选择以下途径实现,但第2种途径加分:1、不考虑译码时钟的提取,收发系统采用共同的时钟;2、采用宏功能或自主设计全数字锁相环的位时钟同步提取电路来实现解码。

设计组可任意选择具体的码型,如1B2H 、3B1C 等)
三、分工安排与设计要求
分工安排
1)2人一组,2组员先共同选定码型,讨论实施方案后,然后分工完成系统设计,建议同学根据自己的能力,分别选择不同的实现途径,编码、调试、系统仿真,撰写自己的实验报告,参与答辩。

2)8学时,6/27号内完成,上交设计报告,分组检查、提问。

具体设计要求
1)资料查找,系统总体的设计思路
2)方案比较(方案分析、比较、总结)
3)总体方案的设计与任务细分( 系统功能模块总图)
4)各功能模块设计(模块的实现方案、算法比较、编程、功能和时序仿真)
5)实验报告撰写(各自撰写自己完成的部分,具备总体设计方案、TOP 系统图、各功能模块的设计思路、系统调试、仿真和课题总结)
罗志会
2011-6-25 D 4D 3D 2D 1D 0B 1B 2B 3B 4H 插入逻辑缓存器34368 kb/s
NRZ
A B C 写入时序
(四分频)读出时序(五分频)42960 kb/s NRZ 42960 kHz CP 34368 kHz CP。

相关文档
最新文档