序列发生器设计.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7
移存型序列信号发生器
entity shiftxuilie is port(clk:in bit; d: in bit; set: in bit; reset:in bit; q:out bit; nq:out bit ); end shiftxuilie;
architecture behavioral of shiftxuilie is component Dtrigger port(clk:in bit; d: in bit; set: in bit; reset: in bit; q: out bit; nq:out bit ); end component; signal t0,t00,t01,t1,t10,t11,t2,t20,t21,t3,t4,t5: bit:='0'; begin U1:Dtrigger port map(clk,t0,set,reset,t00,t01); U2:Dtrigger port map(clk,t00,set,reset,t10,t11); U3:Dtrigger port map(clk,t10,set,reset,t20,t21); t0<=t11 and t21; q<=t20; nq<=not t20; end behavioral;
0
0 0
1
1 1
0
0 1
0
1 0
0
0 0
F=(not(Q3)and not(Q2)) or (Q1 and Q0)
0
1 1
1
0 0
1
0 0
1
0 1
1
0 0
11
计数型序列信号发生器
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity counterxuelie is port(clk:in std_logic; clr: in std_logic; f:out std_logic; q:out std_logic_vector(3 downto 0)); end counterxuelie;
序列发生器设计
1
序列发生器
• 数字系统中,常需要串行周期性信号; • 序列信号:按照特定顺序排列的串行数字信号; • 序列信号发生器:生成某个特定规则下的序列信号的电路。
2
序列发生器的应用
• 序列发生器的应用广泛:例—M序列加密系统
信元
X
+
E Y
发送
信道
wenku.baidu.com
接收
E
+
X Y
用户
M序列 产生器
M序列 产生器
8
序列发生器的功能仿真波形的建立
9
计数型序列信号发生器
• 以同步计数器为基础;
• 例:设计产生序列信号为1111000100的发生器; • 序列长度M=10,选用一个模10的同步计数器
10
计数型序列信号发生器
Q3 Q2 Q1 Q0 F
0
0 0 0
0
0 0 0
0
0 1 1
0
1 0 1
1
1 1 1
3
序列发生器的设计
• 序列信号发生器的设计方法:
– 根据给定的序列信号设计序列信号生成电路; – 根据序列长度M,选择长度为M的序列信号;
• 序列信号发生器的结构:
– 移存型序列信号发生器; – 计数型信号发生器;
4
移存型序列信号发生器
• 以移位寄存器作为主要存储部件; • 将给定的长度为M的序列信号,按移存规律,组 成M个状态组合,完成状态转移; • 求出移位寄存器的串行输入激励函数,即可构成 该序列信号的产生电路。 • 例:设计产生序列信号为11000的发生器
architecture behavioral of counterxuelie is signal q0:std_logic_vector(3 downto 0); signal temp1,temp2,temp3:std_logic; begin process(clk,clr) begin if(clr='0')then q0<="0000"; elsif(clk'event and clk='1')then if(q0="1001")then q0<="0000"; else q0<=q0+'1'; end if; end if; end process; q<=q0; temp1<=(not q0(3))and (not q0(2)); temp2<=q0(1) and q0(0); temp3<=(not temp1) and (not temp2); f<=not temp3; end behavioral;
12
计数型序列信号发生器
13
状态机实现序列信号发生器
试用状态机的设计方法 实现序列 0110101发 生器
S0
0 1 1 0 1 0 1
14
S1
S2
S3
S4
S5
S6
状态机实现序列信号发生器
architecture Behavioral of exam_state is type state_type is (S0,s1,s2,s3,s4,s5,S6); signal state: state_type; begin SYNC_PROC: process (CLK) begin if (CLK'event and CLK= '1') then case (state) is when S0 => state <= S1 ; current_state<= '0' ; when S1 => state <= S2 ; current_state<= '1' ; when S2 => state <= S3; current_state<= '1'; when S3 => state <= S4; current_state<= '0'; when S4 => state <= S5; current_state<= '1'; when S5 => state <= S6; current_state<= '0'; when S6 => state <= S0; current_state<= '1'; when others => state <= S1; end case; END IF; end process; end Behavioral;
5
移存型序列信号发生器
序号 0 1 2 3 4 Q3 1 1 0 0 0 Q2 1 0 0 0 1 Q1 0 0 0 1 1
110 111
011
100
010
001
000
101
状态转移表
6
移存型序列信号发生器
• • • • • • 第一步:根据要求列真值表和状态图 第二步:根据真值表画卡诺图,求次态方程; Q1n+1=not(Q3n.Q2n) 第三步:检查系统能否自启动; 第四步:确定触发器类型和数目; 第五步:确定逻辑电路图;