课程设计------序列检测器

课程设计------序列检测器
课程设计------序列检测器

电子课程设计

------序列检测器

学院:

专业班级:

姓名:

学号:

指导老师:

2012年12月

目录

一、设计任务与要求 (1)

二、总体框图 (1)

三、选择器件 (1)

四、功能模块 (1)

1、脉冲发生器 (1)

2、序列检测器 (2)

3、分频器 (3)

五、总体设计电路图 (5)

1、总体电路原理图 (5)

2、Q UARATU SII的仿真结果图与分析 (5)

3、管脚分配 (6)

4、E DA实验箱验证 (6)

序列检测器

一、任务与要求

设计一个序列检测器,在上升沿的作用下,输入一组二进制码,与预先设置的吗“11100101”一致时,输出A,不同时则输出B,(在检测过程中,任何一位不相等都将回到初始状态重新开始检测。)

二、总体框图

脉冲发生器:为检测器提供脉冲。

检测器:具有存储功能。

数码显示器:显示输出A或B

方案:设计手动的脉冲发生器为检测器提供脉冲,使其正常工作,然后设计检测器存储的数字为“11100101”再用译码器使其显示在数码管上,这就要求检测器必须记住前一次的正确吗及正确序列,直到在连续的检测中所收到的每一位吗与预置数的对应码相同,否则重新开始检测。

三、选择器件

芯片:EDA实验箱中EP1C12核心板;七段数码管等。

外围电路:将IO_CLK用导线连接到IO3上,将IO9,IO10用导线连接到两个LED灯上,接上电源下载完成即可验证。

四、功能模块

1.脉冲发生器

VHDL程序:

LIBRARY ieee;

use ieee.std_logic_1164.all;

entity pulse is

port(pul,M: in std_logic;

nq,q: out std_logic

--VGA:out std_logic_vector(3 downto 0)

);

end pulse;

architecture a of pulse is

signal temp: std_logic;

begin

--VGA <= "0001";'

q<=temp;

nq<=not temp;

process(m)

begin

if rising_edge(m) then

if pul='0' then

temp<='1';

else

temp<='0';

end if;

end if;

end process;

end a;

生成模块:

图1

仿真结果及分析

图2

分析:作用是为序列检测器提供合适的脉冲,手按按钮PB(3),Q输出一个脉冲给下个模块的CLK。当pul为1时q输出0;当pul为0时q输出为1.

2、序列检测器

VHDL语言

library ieee;

use ieee.std_logic_1164.all;

entity CHK is

port(din, clk, clr :in std_logic;

ab : out std_logic_vector(3 downto 0));

end CHK;

architecture behav of CHK is

signal q : integer range 0 to 8;

signal d : std_logic_vector(7 downto 0);

begin

d <= "11100101" ;

process( clk, clr )

begin

if clr = '1' then q<= 0 ;

elsif clk'event and clk='1' then

case q is

when 0=> if din = d(7)then q<=1;else q<= 0; end if ;

when 1=> if din = d(6)then q<=2;else q<= 0; end if ;

when 2=> if din = d(5)then q<=3;else q<= 0; end if ;

when 3=> if din = d(4)then q<=4;else q<= 0; end if ;

when 4=> if din = d(3)then q<=5;else q<= 0; end if ;

when 5=> if din = d(2)then q<=6;else q<= 0; end if ;

when 6=> if din = d(1)then q<=7;else q<= 0; end if ;

when 7=> if din = d(0)then q<=8;else q<= 0; end if ;

when others => q <= 0;

end case ;

end if ;

end process ;

process ( q )

begin

if q = 8 then ab <= "1010" ;

else ab <= "1011" ;

end if ;

end process ;

end behav ;

生成模块

图3

仿真结果及分析

图4

分析:此模块是一个对序列“11100101”的检测,当输入端DIN在八个脉冲的作用下分别输入11100101时Q端输出B,否则输出A。

3分频器

VHDL语言

LIBRARY ieee;

use ieee.std_logic_1164.all;

entity deled is

port(ab: in std_logic_vector(3 downto 0);

--sel: in std_logic;

led: out std_logic_vector(6 downto 0) );

end deled;

architecture a of deled is

--signal temp: std_logic;

begin

led <= "1111110" when ab= "0000" else

"0110000" when ab= "0001" else

"1101101" when ab= "0010" else

"1111001" when ab= "0011" else

"0110011" when ab= "0100" else

"1011011" when ab= "0101" else

"1011111" when ab= "0110" else

"1110000" when ab= "0111" else

"1111111" when ab= "1000" else

"1111011" when ab= "1001" else

"1110111" when ab= "1010" else

"0011111" when ab= "1011" else

"1001110" when ab= "1100" else

"0111101" when ab= "1101" else

"1001111" when ab= "1110" else

"1000111" when ab= "1111" ;

END a;

生成模块

图5

仿真结果及分析

图6

图7

分析:此模块的作用是将输出显示到数码管上。当ab输入为1010时led输出为1110111(如图6);当ab输入为1011时led输出为0011111(如图7)。

五、总体设计电路图

1、总体电路原理图

该程序是在连续脉冲的作用下检测序列“11100101”当输入完全符合时数码管显示B,当其中有一个出错时或序列不对时数码管显示A。

图8

2、QUARATU SII的仿真结果图与分析

清零端是高电平有效,首先设清零端为高电平使之清零,然后在八个有效脉冲的作用下DIN输入“11100101”且顺序一致,此时数码管显示为“1110111”其它情况为“111100”。仿真结果如下图:

图9

3、管脚分配如下图

图10

4、EDA实验箱验证(如图)

将IO_CLK用导线连接到IO3上,将IO9,IO10用导线连接到两个LED灯上,打开电源并下载之后,手动按钮输入脉冲的作用下在EPIC12板上4位拨码键的SW【0】。分别拨到“11100101”,其中“1”为高电位,“0”为低电位。重复上述几次,多输几个输入,观察数码管的输出情况,经观察只有输入为“11100101”时数码管显示“A”(如图11)它情况显示“B”(如图12)。

图11

图12

序列检测器

实验三有限状态机进行时序逻辑电路设计 学院:物理与电子科学学院专业:应用电子技术班级: 1007班姓名: xxx 学号: xxxxxxxxxxxxx 一,实验目的: (1)掌握利用有限状态机实现一般时序逻辑分析标的方法; (2)掌握用Verilog编写可综合的优先状态机的准模板; (3)掌握用Verilog编写状态机模板的测试文件的一般方法; 二,实验内容: 序列检测器:将一个指定的序列从数字码流中识别出来。 设计一个能够识别序列“10010”的序列检测器,设:x为数字码流输入,z为检测标记输出,且高电平表示“发现指定序列”,低电平表示“没有发现指定序列”。 考虑码流为“110010010000100101…” 完成序列“10010”检测功能电路模块的Verilog程序编写,和测试模块程序的编写. “10010”序列检测电路的状态转移图如下: 其中状态A-E表示5位序列“10010”按顺序正确出现在码流中。考虑到序列重叠的可能,

转换图中还有状态F,G。另外,电路的初始状态设为IDLE. 三,实验程序 (1)功能模块: module fim (x,z,clock,reset,,state); input clock,reset,x; output z; output[2:0]state; reg [2:0]state; wire z; parameter Idle='d0 ,A='d1, B='d2,C='d3, D='d4,E='d5, F='d6,G='d7; assign z=(state==D&&x==0)?1:0; always @(posedge clock) if(!reset) begin state<=Idle; end else case(state) Idle:if(x==1) begin state<=A; end else begin state<=Idle; end A:if(x==0) begin state<=B; end else begin state<=A; end B:if(x==0) begin state<=C; end else begin state<=F; end C:if(x==1) begin state<=D; end else begin state<=G; end D:if(x==0) begin state<=E; end else begin state<=A; end E:if(x==0) begin state<=C; end else begin state<=A; end F:if(x==1) begin state<=A; end else begin state<=B; end G: if(x==0) begin state<=G; end else begin state<=F; end default: state<=Idle; endcase endmodule

使用D触发器设计一个11001序列检测器介绍

讨论使用D触发器设计一个11001序列检测器,讨论序列可交迭(Overlap)检测和不可交迭检测在设计上的区别,讨论分别采用Mealy机设计和采用Moore机设计的区别,讨论未用状态的处理问题。 【要求】给出电路原理图或HDL代码,要求进行仿真,并给出仿真结果。 1.原件介绍 D触发器(74LS74)、“与”门(74LS08)、“或”门(74LS32)、“非”门(74LS04),集成电路引脚

2.设计思路 根据要求,设计的序列检测器有一个外部输入x和一个外部输出Z。输入和输出的逻辑关系为:当外部输入x第一个为"1",外部输出Z为"0";当外部输入x 第二个为"1",外部输出Z为"0";当外部输入第三个x为"0",外部输出Z为"0",当外部输入第四个x为“0”,外部输出Z为0,当外部输入第五个x为“1”,外部输出Z为“1”。假定有一个外部输入x序列以及外部输出Z为: 输入X 0 1 1 1 0 0 1 0 1 输出Y 0 0 0 0 0 0 1 0 0 要判别序列检测器是否连续接收了"11001",电路必须用不同的状态记载外部输入x的值。假设电路的初始状态为A,x 输入第一个"1",检测器状态由A装换到B,用状态B记载检测器接受了"11001"序列的第一个"1",这时外部输出Z=0;x输入第二个"1",检测器状态由B装换到C,用状态C 记载检测器接了“11001”序列的第二个"1",外部输出Z=0;x输入第三个"0",检测器状态由C装换到D,外部输出Z=0;x输入第四个为“0”,检测器状态由D装换到E,外部输出Z=0;x输入第五个为“1”,检测器状态由E装换到F,外部输出Z=1。然后再根据外部输入及其他情况时的状态转移,写出相应的输出。以上分析了序列检测器工作,由此可画出原始状态图。根据原始状态图可列出原始状态表。 状态转换表 A B D C E F 1\0 1\0 0\0 0\0 1\1 0\0 0\0 1\0 1\0 0\0 0\0

巴克码识别器的设计与仿真 (2)

***************** 实践教学 ***************** 兰州理工大学 计算机与通信学院 2013年秋季学期 通信系统综合训练 题目:巴克码识别器的设计与仿真 专业班级: 姓名: 学号: 指导教师:彭铎 成绩:

摘要 巴克码是一种具有特殊规律的二进制码组,它是一种非周期序列。是目前已找到的最常用的群同步码字之一。它具有尖锐的自相关特性,便于与随机的数字信息相区别,易于识别,出现伪同步的可能性小。 本次课程设计是在掌握群同步码巴克码的基础上,利用MATLAB完成对巴克码识别器的设计。 关键字:巴克码识别器,MATLAB

目录 前言 (1) 1.基本原理 (2) 1.1目的及意义 (2) 1.2群同步 (2) 1.3巴克码 (3) 1.4系统设计框图 (3) 1.5MATLAB仿真软件 (4) 2.系统分析 (6) 2.1巴克码的发生 (6) 2.2巴克码的判决 (7) 2.3巴克码的同步 (8) 2.4群同步码 (9) 2.5移位寄存器 (10) 2.6同步字符的识别性能 (11) 3.系统设计与调试 (13) 3.1设计思路 (13) 3.2调试结果: (14) 设计总结 (16) 参考文献 (17) 致谢 (18) 附录 (19)

前言 同步是通信系统中一个重要的实际问题。通信系统中的同步可分为载波同步、位同步、帧同步等几大类。在通信系统中,同步具有相当重要的地位。通信系统能否有效地、可靠地工作,很大程度上依赖于有无良好的同步系统。因此,如何使系统同步,如何保持同步,成为现代数字通信系统设计者所面临的重要课题。 在数字通信时,一般总是以一定数目的码元组成一个个的“字”或“句”,即组成一个个的“群”进行传输的。因此,在接收这些数字流时,同样也必须知道这些“字”、“句”的起止时刻,在接收端产生与“字”、“句”起止时刻相一致的定时脉冲序列,统称为群同步或帧同步。群同步信号的频率很容易由位同步信号经分频而得出。但是,每个群的开头和末尾时刻却无法由分频器的输出决定。群同步的任务就是在位同步信息的基础上,识别出数字信息群(“字”或“句”)的起止时刻,或者说给出每个群的“开头”和“末尾”时刻。 为了实现群同步,可以在数字信息流中插入一些特殊码字作为每个群的头尾标记,这些特殊的码字应该在信息码元序列中不会出现,或者是偶然可能出现,但不会重复出现,此时只要将这个特殊码字连发几次,收端就能识别出来,接收端根据这些特殊码字就可以实现群同步。在数字通信系统中,实现帧同步的方法通常有两种:插入特殊码字实现群同步的方法有两种,即连贯式插入法和间隔式插入法。 作群同步码字用的特殊码字首先应该具有尖锐单峰特性的局部自相关特性,其次这个特殊码字在信息码元序列中不易出现以便识别,最后群同步识别器需要尽量简单。巴克码是目前已经找到的最常用的群同步码字之一。

八位序列检测器设计

八位序列检测器设计 班级:1302012 学号: 姓名:郭春晖

一、设计说明 使用quartus软件进行仿真和验证,并且还可以检测其他的序列,只需要修改一部分代码就可以实现。 二、方案 工作原理:基于FPGA的多路脉冲序列检测器的设计方案,使用VHDL语言设计时序逻辑电路,先设计序列发生器产生序列:01010;再设计序列检测器,检测序列发生器产生序列,若检测到信号与预置待测信号相同,则输出“1”,否则输出“0”,并且将检测到的信号的显示出来。 三、单元模块设计 1、序列信号发生器 序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号。利用状态机设计,首先定义一个数据类型FSM_ST它的取值为st0到st15的16个状态。 序列信号发生器的代码如下:

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SHK IS PORT (CLK,RST :IN STD_LOGIC; CO :OUT STD_LOGIC ); END SHK; ARCHITECTURE behav OF SHK IS TYPE FSM_ST IS (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15); SIGNAL REG:FSM_ST; SIGNAL Q:STD_LOGIC; BEGIN PROCESS(CLK,RST) BEGIN IF RST ='1' THEN REG<=s0;Q<='0'; ELSIF CLK'EVENT AND CLK='1' THEN CASE REG IS WHEN s0=> Q<='1'; REG<=s1; WHEN s1=> Q<='0';REG<=s2; WHEN s2=> Q<='1';REG<=s3; WHEN s3=> Q<='1';REG<=s4; WHEN s4=> Q<='0';REG<=s5; WHEN s5=> Q<='1';REG<=s6; WHEN s6=> Q<='0';REG<=s7; WHEN s7=> Q<='0';REG<=s8; WHEN s8=> Q<='0';REG<=s9; WHEN s9=> Q<='1';REG<=s10; WHEN s10=> Q<='1';REG<=s11; WHEN s11=> Q<='0';REG<=s12; WHEN s12=> Q<='1';REG<=s13; WHEN s13=> Q<='0';REG<=s14;

设计一个1010的序列检测器

二、设计一个1010的序列检测器,检测到1010时输出为“1”否则为“0”,用D触发器实现。 第一步:根据要求进行逻辑抽象,得出电路的原始状态转换图和状态转换表。 取输入数据变量为X,检测的输出变量为Z, 该同步时序逻辑电路的功能是检测输入序列是否为1010,一旦输入序列出现一个1就记下来,因为这个1可能是1010序列的第一个1,;接着看输入是否为0,因为10是序列1010的前两位;其次再看输入是否为1,因为101是1010序列的前三位;最后再输入一个0,输出则为1,因为出现了一个1010序列,泽电路必须记住1,10,101,1010四种输入情况,每一种输入情况应与电路的一个状态相对应。 根据题意,设电路随机的输入和输出序列为: X:0 1 0 1 0 0 0 1 0 1 0 1 0…… Z: 0 0 0 0 1 0 0 0 0 0 1 0 0…… 该电路仅有一个输入端,每个现态有两个可能转移方向,设电路初态为S0,当X=0时,电路仍处在状态S0,当输入一个1以后的状态为S1,输入10以后的状态为S2,输入101以后的状态为S3,输入1010以后的状态为S4。以S n表示电路的现态,S n+1表示电路的次态。 由此得出原始状态转换图和原始状态转换表:

第二步:状态化简: 依据状态等效条件判断得出S0和S4在相同的输入条件下,它们转换到相同的次态去,且有相同的输出,故S0和S4等效,经分析比较,找出最大等效类:{S1},{S2},{S3},{S0,S4}。 由此得出化简的状态转换图和最简状态表: 第三步:状态编码: 最贱状态表共有四种状态,可用两位二进制代码来表示,设状态变量为Q1,Q2,依据状态编码原则,确定S0=00,S1=01,S2=11,S3=10四种状态,其编码后的状态转换图和状态转换表:

雷达波形模糊图专业训练课设报告

专业综合 课程设计报告 课设题目:雷达波形模糊图 学院:信息与电气工程学院 专业:电子信息工程 班级: 姓名: 学号: 指导教师: 哈尔滨工业大学(威海) 2013年11月28日 一、设计任务 模糊函数是对雷达信号进行分析研究和波形设计的有效工具, 是雷达信号理论中极为重要的一个概念。模糊函数最初是在研究雷达分辨力问题时提出的, 并从衡量两个不同距离和不同径向速度目标的分辨度出发提出了模糊函数的定义。但模糊函数不仅可以说明分辨力, 还可以说明测量精度、测量模糊度以及抗

干扰状况等问题。雷达信号的模糊函数与雷达信息的提取紧密相关, 它不仅涉及了雷达的精度, 还涉及了雷达的抗干扰、自适应以及雷达信号的处理方式。本次课程设计目标是:画出某线性调频和相位编码信号的模糊图;根据模糊图分析多普勒频移对匹配滤波的影响;产生雷达回波数据并匹配滤波,根据仿真结果分析各参数对匹配滤波结果的影响。 二、 方案设计 设计某线性调频和相位编码信号 线性调频波形的定义为 ()?? ? ??=2cos t t x τβπ τ≤≤t 0 (1) 使用复数表达式,有 ()()t j t j e e t x θτ πβ==/2 τ≤≤t 0 (2) 该波形的瞬时频率是相位函数的微分 ()()t dt t d t F i τ βθπ==21 (3) 假设0>β,在s τ的脉宽内()t F i 线性地扫过了整个Hz β带宽。当βτ=50时,()t F 就是一个线性调频波。 画出其模糊图并分析模糊图的特征 模糊函数是波形设计与分析的工具,它可以方便地刻画波形与对应匹配滤波器的特征。模糊函数在分析分辨率、副瓣性能,以及多普勒和距离模糊方面非常有用,另外也可以用于对距离-多普勒耦合的分析。 考虑当输入为多普勒频移响应想()()t F j t x D π2ex p 时波形()t x 的匹配滤波器输出。同时,假设滤波器具有单位增益(1=α),并且设计为在0=M T 时达到峰值。这仅仅意味着滤波器输出端的时间轴与目标距离期望的峰值输出时间相关。滤波器的输出为 ()()),(?)()2ex p(;*D D D F t A ds t s x s F j s x F t y ≡-=?∞ ∞ -π (4) 将其定义为复模糊函数,即),(?D F t A 的幅度函数,即 ),(?),(D D F t A F t A ≡ (5) 它是二变量函数:一个是相对于期望匹配滤波峰值输出的时延,另一个是为滤波 器设计的多普勒频移与实际接收的回波的多普勒频移之间的失配。 雷达信号的时间频率二维模糊函数定义为: dt e T t x t x F T y t F i d d d d d π2*)()(),(?∞ ∞ -+= (6) 上式不是模糊函数的唯一形式,为了分析方便,模糊函数还可以写成卷积形式,

1011序列检测器

综合设计性实验报告 题目: 学生姓名: 学号: 班级: 指导教师: 学期:2010——2011第2学期

目录 一基本知识点 (1) 二实验器件 (1) 三设计思路 (1) 四设计过程 (2) (一)三位二进制减法计数器(无效状态000,001) (二)5 五引脚功能 (9) 六逻辑电路图: (11) 七实验结果波形图 (12) 八设计心得体会 (12)

一基本知识点 1、掌握时序电路的设计方法和步骤 2、掌握触发器的设计与应用 3、掌握移位寄存器的原理与应用 4 熟悉集成电路的引脚排列; 5 掌握芯片的逻辑功能及使用方法; 6 了解序列产生及检测器的组成及工作原理 7 会在EWB软件上进行仿真; 二实验器件 1、移位寄存器74LS194 1片 2、负边沿JK触发器74LS112 1片 3四输入与非门74LS20 1片 4、六输入非门74LS05 1片 5 电源一个 6 地线一个 7 与门,或门,非门若干个 8 时钟脉冲一个 三设计思路 1作原始状态表。根据给定的电路设计条件构成原始状态表和状

态转化图 2状态表的简化。原始状态表通常不是最小化状态表,它往往包括多余的状态,因此必须首先对它进行简化。 3状态分配。即对简化后的状态给以编码。这就要根据状态数确定触发器的数量并对每个状态指定一个二进制数构成的编码。 4根据给定的电路设计条件选择触发器根据 5 作激励函数和输出函数。根据选用的触发器激励表和电路的状态表,综合出电路中各触发器的激励函数和电路的输出函数。 ⑸6画逻辑图,并检查自启动功能 四设计过程 (一)101101001信号发生器的设计 设计一个信号序列发生器,在产生的信号序列中,含有“1011”信号码,要求用一片移位寄存器,生成信号序列“10110100”,其中含有1011码,其设计按以下步骤进行:、、 1本实验所用仪器为移位寄存器74LS194,确定移存器的位数n。因M=9,故n≥4,用74LS194 的四位。 2确定移存器的九个独立状态。将序列码101101001按照每四位一组,划分为九个状态,其迁移关系如下所示: 3作出状态转换表及状态转换图如下:

移动通信课程设计——帧同步提取

课程设计报告 课题名称帧同步提取 学院 专业 班级 学号 姓名 指导教师 定稿日期: 2014 年 06月13 日

目录 摘要 (1) 一、前言 (2) 1.1 CDMA帧同步背景 (2) 二、帧同步提取基本原理 (3) 2.1 CDMA含义 (3) 2.2基本原理 (3) 2.2.1发端用户数据成帧 (3) 2.2.2 收端帧同步提取 (3) 三、帧同步提取设计 (6) 3.1课程设计分析 (6) 3.2帧同步提取测试设计步骤 (7) 3.2.1实验箱设置 (7) 3.2.2“发端数据成帧”测量步骤 (7) 3.3单片机程序流程图如下 (9) 四、帧同步提取测试结果 (10) 4.1课程设计实物链接图 (10) 4.2“发端数据成帧”实验过程 (10) 4.3实测收端帧同步误码: (11) 五、课设总结 (12) 参考文献 (13) 附录(源程序) (14)

摘要 在当今这个信息高速发展的时代,移动通信已经成为生活中不可或缺的一部分。在移动环境下点对点的传输问题已经得到解决,那么对于给定资源应该采用什么多址技术使得有限的资源能传输更大容量的信息?移动通信系统的发展经历了第一代模拟移动通信系统、第二代数字移动通信系统和第三代移动通信系统(IMT-2000)。第一代移动通信系统包括AMPS、TACS和NMT等体制。第二代数字移动通信系统包括GSM、IS-136(DAMPS)、PDC、IS-95等体制。一个典型的数字蜂窝移动通信系统包括:移动台(MS)、基站分系统(BSS)、移动交换中心(MSC)、原籍(归属)位置寄存器(HLR)、访问位置寄存器(VLR)、设备标识寄存器(EIR)、认证中心(AUC)和操作维护中心(OMC)。而这其中,多址技术便主要解决众多用户如何高效共享给定频谱资源的问题。常规的多址方式有三种:频分多址(FDMA)、时分多址(TDMA)和码分多址(CDMA)。数字通信时,一般总是以一定数目的码元组成一个个的“字”或“句”,即组成一个个的“群”进行传输,因此群同步信号的频率很容易由位同步信号经分频而得出,但是每群的开头和末尾时刻却无法由分频器的输出决定。群同步的任务就是要给出这个“开头”和“末尾”的时刻。群同步有时也称为帧同步。本次课程设计主要研究帧同步的提取及实现方法。 关键词:CDMA 帧同步移动通信

序列检测器

目录 第一章设计方案.........................................................1 1.1设计任务..........................................................1 1.2设计要求..........................................................1 1.2.1整体功能要求.................................................1 1.2.2测试要求.....................................................1 第二章设计思路.........................................................2 2.1数字频率计介绍....................................................2 2.2设计原理..........................................................2 2.2.1频率测量的基本原理...........................................2 2.2.2整体方框图及原理.............................................2 2.2.3序列器结构框图...............................................2 第三章模块介绍.........................................................4 3.1顶层文件模块......................................................4 3.1.1顶层文件原理.................................................4 3.1.2顶层文件模块verilog语言描述程序.............................4 3.2伪随机序列发生器模块..............................................4 3.2.1伪随机序列发生器.............................................4 3.2.2伪随机序列发生器原理.........................................5 3.2.3伪随机序列发生器模块verilog语言描述程序.....................6

序列检测器的一种简化实现算法

第8卷第6期石家庄学院学报Vol.8,No.62006年11月JournalofShijiazhuangUniversityNov.2006序列检测器的一种简化实现算法 李俊红,解建军 (河北师范大学数学与信息科学学院,石家庄050016) 摘要:分析了序列检测器的内部原理,给出它的一种新硬件实现.利用它无需对状态图进行状态化简,极大地简化了时序线路的设计.最后结合具体实例说明了该设计思想的详细步骤和具体实现方法. 关键词:子串;主串;序列检测器 中图分类号:TP16文献标识码:A文章编号:1673-1972(2006)06-0063-03 1序列检测器原理 序列检测是指将一个指定的序列从数字流中识别出来,或在主串中查询相应子串,一般可以通过软件方法或时序电路即硬件方法实现.有关软件实现方法的研究可参见文献[1],本文主要针对时序电路进行讨论.用硬件方法实现序列检测器时,检测器中存储模式串,主串可以通过输入端流入检测器[2,3].在主串的输入过程中,检测器可以动态检测子串.检测器利用时序线路记忆已检测出的有效序列,并与自身所含的模式串进行比对,若检测成功,输出端自动输出成功标记[4].设计一个“11100”序列检测器,当识别到一组序列时,输入一个高电平.由于采用时序线路,主串的内容应每给一个上升沿或下降沿输入一位,具体应视所选触发器类型而定. 我们提出一种新硬件实现方法,在该方法中对每一个状态都根据实际意义给予特殊的含义,具体含义在后面的实例中再加以说明,由于不存在重复状态,故最终的状态图不用化简. 序列检测器的初态是指被检序列的第一位出现前的特定状态,此状态后如果输入的代码对检测有效(即被测序列的第一位),则相应次态为新的状态(第2个状态,它记住了被测序列的第一位),否则相应次态仍为初态.第2个状态是指被检序列的第一位出现后的特定状态,此状态后如果输入的代码对检测有效,(即被测序列的第2位)则相应次态为新的状态(第2个状态,它记住了被测序列的前2位),否则判断最近输入的代码是否是被检序列的第一位,是则相应次态仍为第2个状态,否则相应次态为初态.以次类推,第i个状态记住了被检序列的前i-1位,相应次态确定方法如下: 假设序列长度为n,当i<n时,如果第i个状态后输入的一位代码是被检序列的第i位,则次态为新的状态(记住了被检序列的前i位),否则次态按如下规则选择:从初态开始输入的i位代码中如果其中的后i-j位为被检序列的前i-j位,则次态为第i-j+1个状态(j=1,2,...,i-1,找到次态即停止),否则次态为初态.此时所有的外输出均为‘0’. 当i=n时,第n个状态已经记住了被检序列的前n-1位,此状态后输入的一位代码如果是被检序列的第n位,则外输出为‘1’,否则外输出为‘0’,其次态按如下规则选择:从初态开始输入的n位代码中如果其中的后n-j位为被检序列的前n-j位,则次态为第i-j+1个状态(j=1,2,...,n-1,找到次态即停止),当j=n时,次态为初态. 按上述方法构造的原始状态转移图中恰好含n个状态,且每个状态都有确定的含义,避免了其设计过程中,构造原始状态转移图繁杂,化简原始状态转移图麻烦的弊端,设计时既逻辑清晰,又不用化简,从而极大地简化了该类线路的设计. 收稿日期:2005-12-09 基金项目:河北省石家庄市科学研究与发展计划项目(05213570);河北师范大学青年基金资助(L2005Q02) 作者简介:李俊红(1971-),女,山西运城人,河北师范大学数学与信息科学学院讲师,硕士,研究方向:并行逻辑模拟,计算机系统结构.

巴克码初稿

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2012年春季学期 计算机通信与网络课程设计 题目:差错控制编码的编译码设计与仿真 专业班级:09级通信一班 姓名:李杰 学号:09250106 指导教师:彭铎 成绩:

摘要 通信系统必须具备发现及检测差错的能力,并采取措施纠正,使差错控制在所能允许的尽可能小的范围内,这就是差错控制过程,也是数据链路层的主要功能之一。 本课程设计编辑了巴克码的编码和译码的程序,并实现了它的编译码过程;该程序可以对输入的5位的信息码进行巴克码编码,对于接收到的5位码字可以进行译码,从而判定是否是巴克码,整个过程是用MATLAB语言实现的。 关键词:编码;译码;MATLAB;巴克码

目录 前言 (1) 第1章基本原理 (2) 1.1 设计目的及意义 (2) 1.2 巴克码与帧同步 (2) 1.3 巴克码的产生和识别 (5) 第2章 MATLAB软件与介绍 (8) 2.1 MATLAB软件的特点 (8) 2.2 现有工业控制系统 (10) 2.3 MATLAB应用的工业控制系统中去的应用前景 (10) 第3章仿真过程及结果分析 (11) 3.1 程序流程图 (11) 3.2 仿真程序 (13) 3.3 程序仿真图 (15) 参考文献 (20) 总结 (21) 致谢.................................................................................................................... 错误!未定义书签。

实验四8序列检测器的设计

实验四序列检测器的设计 一、实验目的 1)了解序列检测器的工作原理 2)熟悉MAX+plusII软件的基本使用方法 3)熟悉EDA实验开发的基本使用方法 4)学习VHDL程序中数据对象,数据类型,顺序语句,并行语句的综合使用 二、实验内容 设计一个序列检测器,当序列检测器连续收到一组串行的二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同,在检测过程中,任何一位不相等都将回到初始状态重新开始检测。 三、实验条件 开发软件:MAX+plus II 9.23 Baseline 硬件设备:装有windows7的pc机 四、实验设计 1)系统的原理框架图

2)VHDL源程序 chk.vhd源代码 library ieee; use ieee.std_logic_1164.all; entity chk is port(din: in std_logic; clk,clr:in std_logic; d:in std_logic_vector(7 downto 0); ab:out std_logic_vector(3 downto 0)); end entity chk; architecture art of chk is signal q:integer range 0 to 8; begin process(clk,clr)is begin if clr='1'then q<=0; elsif clk'event and clk='1'then case q is when 0=> if din=d(7)then q<=1;else q<=0;end if; when 1=> if din=d(6)then q<=2;else q<=0;end if; when 2=> if din=d(5)then q<=3;else q<=0; end if; when 3=> if din=d(4)then q<=4;else q<=0; end if; when 4=> if din=d(3)then q<=5;else q<=0; end if; when 5=> if din=d(2)then q<=6;else q<=0; end if; when 6=> if din=d(1)then q<=7;else q<=0; end if; when 7=> if din=d(0)then q<=8;else q<=0; end if; when others => q<=0; end case; end if; end process; process(q)is begin if q=8 then ab<="1010"; else ab<="1011"; end if; end process; end architecture;

数字逻辑实验 8_序列检测器

实验八序列检测器的设计与仿真 一、实验要求 1.用VHDL语言设计一个Mealy机以检测“1101001”序列; 2.用VHDL语言设计一个Moore机以检测“1101001”序列; 3.在文本编辑区使用VHDL硬件描述语言设计逻辑电路,再利用波形编辑区进行逻辑功 能仿真,以此验证电路的逻辑功能是否正确。 二、实验内容 用VHDL语言设计各一个mealy和moore状态机测试“1101001”位串的序列检测器,并通过仿真波形验证设计的功能是否正确。 三、实验过程 由于在报告1中已经详尽描述了如何使用Quartus 2建立逻辑原理图和使用VHDL语言实现元件功能,所以本次的实验报告中便不再赘述上述内容,报告将主要就VHDL 语言描述实现元件的功能的过程进行阐述。 1.Mealy机 选择File→New,弹出新建文本对话框,在该对话框中选择VHDL File并单击OK按钮,进入文本编辑窗口,输入VHDL代码。 library ieee; use ieee.std_logic_1164.all; entity melay is port(clk,rst,d: in std_logic; z: out std_logic); end melay; architecture arc of melay is type state_type is(s0,s1,s2,s3,s4,s5,s6); signal state: state_type; begin process(clk,rst) begin if rst= '1' then state<=s0; elsif (clk'event and clk ='1') then case state is --1101001 when s0 => if d='1' then state<=s1; else

110序列检测器的设计及仿真实现

题目:设计110序列检测器,当输入信号时输 出,否则 一、设计思路 我们采用Moore机完成这个功能。对于触发器的选择,为了简便我们选用D触发器以及基本的门电路完成基本设计。 二、时钟同步状态机 1根据题目要求我们得到下面的状态图 状态表示的意义Q X=0 X=1 输出Z 等待1的出现 A A B 0 出现1 B A C 0 出现11 C D C 0 出现110 D A B 1 * Q 2 转移输出表 01 Q Q输入X 输出Z X=0 X=1 00 00 01 0 01 00 11 0 11 10 11 0

10 00 01 1 01Q Q * * 3 状态图如图: 通过卡诺图化简可得 转移方程: 00111=Q Q Q Q X Q X * * += 输出方程:01 Z Q Q ? = 我们选择D 触发器作为记忆电路部分 由D 触发器的特征方程: Q D * = 得激励方程: 00111D =Q Q Q X D X += 三、V erilog 程序如下: module shiyan2 (clk,x,z); input clk,x; output z; wire[1:0] state;

wire[1:0] excite; nextlogic u1(x,state,excite); statememory u2(clk,excite,state); outputlogic u3(state,z); endmodule module statememory (clk,d,q); input clk; input[1:0] d; output[1:0] q; reg[1:0] q; always @ (posedge clk) begin q <= d; end endmodule module nextlogic (x,q,d); input x; input[1:0] q; output[1:0] d; assign d[0]=(q[1]&q[0])|(q[1]&x); assign d[1]=x; endmodule

数电课程设计题目与要求

第一类:基本数字逻辑 本组内题目用基本门电路和中规模集成芯片实现 1. 彩灯控制器 设计一个彩灯控制电路,要求红、黄、绿三种颜色的灯在时钟信号作用下,按下表规定的顺序转换状态。表中1表示亮、0表示灭。写出具体的分析思路和方案、利用Multisim设计的具体过程,绘制电路原理图,利用Mulitisim仿真、验证电路功能。 2. 投币式自动售饮料机 设计一个自动售饮料机电路。它的投币口每次只能投入一枚五角或一元的硬币。投入一元五角钱硬币后机器自动给出一杯饮料;投入两元硬币后,再给出饮料的同时找回一枚五角的硬币。写出具体的分析思路和方案、利用Multisim设计的具体过程,绘制电路原理图,利用Mulitisim仿真、验证电路功能。 3. 医护人员传呼系统 用9个开关模拟1~9号病房的呼叫输入信号,9号优先级最高;9~1优先级依次降低;用一个数码管显示呼叫信号的病房号码,没有呼叫时显示0,有多个信号呼叫时,显示优先级最高的呼叫(其他呼叫号用指示灯显示);同时用蜂鸣器提醒医护人员注意,蜂鸣器在医护人员按下应答按钮后停止。写出具体的分析思路和方案、利用Multisim设计的具体过程,绘制电路原理图,利用Mulitisim仿真、验证电路功能。 4. 巴克码信号发生器 巴克码信号是二相编码信号的一种,在多普勒雷达中得到了广泛应用。设计一个7位的巴克码(1110010)产生电路,用一个开关来控制信号发生器的启停。写出具体的分析思路和方案、利用Multisim设计的具体过程,绘制电路原理图,利用Mulitisim仿真、验证电路功能。 5. 亲子鉴定器 父母血型与子女血型的遗传规律如下表所示,要求设计一电路,输入父母血型,子女可能出现血型的对应指示灯亮。写出具体的分析思路和方案、利用Multisim设计的具体过程,绘制电路原理图,利用Mulitisim仿真、验证电路功能。

8位序列检测器的设计

八位序列检测器设计 摘要:序列检测器多用于通信系统中对禁用码的检测,或者是对所需信号的提取,即一旦检测到所需信号就输出高电平,这在数字通信领域有广泛的应运。本文介绍了一种采用单片PGA 芯片进行脉冲序列检测器的设计方法,主要阐述如何使用新兴的EDA 器件取代传统的电子设计方法,利用FPGA 的可编程性,简洁而又多变的设计方法,缩短了研发周期,同时使设计的电路体积更小功能更强大。本次课程设计设计出能够检测序列“”的序列检测器,并以此来描述序列检测器的设计过程和基于FPGA 的软件仿真。最后通过QuartusII 的波形输出对设计方案进行检测,在硬件调试经检测输出正确设计符合要求。 关键词: VHDL 序列检测QuartusⅡFPGA Abstract:Sequence detector system used for communication on the detection code disabled, or is the extraction of the desired signal, that is, once detected, the required high output signal, which in the broad field of digital communications to be transported. This paper presents a single FPGA chip with the detector pulse sequence design method, mainly on how to us e new device to replace the traditional EDA electronic design, the use of FPGA's programmability, concise and changing the design method shortens the development cycle, while allowing smaller circuit design and more powerful. The curriculum is designed to detect sequence "" sequence detectors, and detector in order to describe the sequence of the design process and FPGA- based software simulation. Finally, the output of the waveform QuartusII design testing, debugging the hardware design has been tested and meet the requirements of the correct output. Keywords:VHDL Sequence detection QuartusⅡFPGA

11100101序列检测器

状态图: 状态表: VHDL: Library IEEE.; Use.ieee.std_logic_1164.all;

LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SCHK IS PORT( DIN,CLK,CLR : IN STD_LOGIC ; --串行输入数据位/工作时钟/复位信号 AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); --检测结果输出 END SCHK; ARCHITECTURE behav OF SCHK IS SIGNAL Q : INTEGER RANGE 0 TO 8 ; SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0); --8位待检测预置数 BEGIN

D <= "11100101 " ; --8位待检测预置数 PROCESS( CLK, CLR ) BEGIN IF CLR = '1' THEN Q <= 0 ; ELSIF CLK'EVENT AND CLK='1' THEN --时钟到来时,判断并处理当前输入的位CASE Q IS WHEN 0=> IF DIN = D(7) THEN Q <= 1 ; ELSE Q <= 0 ; END IF ; WHEN 1=> IF DIN = D(6) THEN Q <= 2 ; ELSE Q <= 0 ; END IF ; WHEN 2=> IF DIN = D(5) THEN Q <= 3 ; ELSE Q <= 0 ; END IF ; WHEN 3=> IF DIN = D(4) THEN Q <= 4 ; ELSE Q <= 0 ; END IF ; WHEN 4=> IF DIN = D(3) THEN Q <= 5 ; ELSE Q <= 0 ; END IF ; WHEN 5=> IF DIN = D(2) THEN Q <= 6 ; ELSE Q <= 0 ; END IF ; WHEN 6=> IF DIN = D(1) THEN Q <= 7 ; ELSE Q <= 0 ; END IF ; WHEN 7=> IF DIN = D(0) THEN Q <= 8 ; ELSE Q <= 0 ; END IF ; WHEN OTHERS => Q <= 0 ; END CASE ; END IF ; END PROCESS ; PROCESS( Q ) --检测结果判断输出 BEGIN IF Q = 8 THEN AB <= "1010" ; --序列数检测正确,输出“A” ELSE AB <= "1011" ; --序列数检测错误,输出“B” END IF ;

序列检测器的设计实验报告

班级:生物医学工程141班姓名:刘玉奔学号:6103413018 设计性实验项目名称序列信号发生和检测器设计 (一)实验目的 1、进一步熟悉EDA实验装置和QuartusⅡ软件的使用方法; 2、学习有限状态机法进行数字系统设计; 3、学习使用原理图输入法进行设计。 (二)设计要求 完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现一个串行序列信号发生器和一个序列信号检测器的功能,具体要求如下: 1、先用设计0111010011011010序列信号发生器,其最后6BIT数据用LED显示出来; 2、再设计一个序列信号检测器,检测上述序列信号,若检测到串行序列“11010”则 输出为“1”,否则输出为“0”; 3、检查检测01011,即将发生的序列最后五位改为01011,为0111010011001011 (三)主要仪器设备 1、微机1台 2、QuartusII集成开发软件1套 3、EDA实验装置1套 (四)实验步骤 主要有三个模块 1:一个设计序列信号发生器 2:一个设计序列信号检测器 3:综合两个设计,通过对模块的调用达到最终效果 (五)实验数据 --设计时间:2016.10.29 --设计者:刘玉奔 --设计内容:1、先用设计0111010011001011序列信号发生器,其最后6BIT数据用LED 显示出来; --2、再设计一个序列信号检测器,检测上述序列信号,若检测到串行序列“01011”则输出

为“1”,否则输出为“0”; --序列信号发生器部分 LIBRARY IEEE;--声明IEEE库 USE IEEE.STD_LOGIC_1164.ALL;--允许使用IEEE中程序包STD_LOGIC_1164 ENTITY serialsignalgenerator IS PORT(CLK,RST:IN STD_LOGIC; CO:OUT STD_LOGIC; LED0,LED1,LED2,LED3,LED4,LED5:OUT STD_LOGIC); END behav; 得到symbol file: 序列信号检测器: LIBRARY IEEE;--声明IEEE库 USE IEEE.STD_LOGIC_1164.ALL;--允许使用IEEE中程序包STD_LOGIC_1164 ENTITY serialsignaltest IS PORT(CLK,DIN,CLR:IN STD_LOGIC; SS:OUT STD_LOGIC; LED0,LED1,LED2,LED3,LED4:OUT STD_LOGIC);

相关文档
最新文档