文章目录

  • 前言
  • 一、由移位寄存器构成
  • 二、由移位寄存器和组合逻辑电路构成
  • 三、由计数器构成

前言

在数字电路中, 序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号.能产生这种信号的逻辑器件就称为序列信号发生器。
序列信号发生器是数字电路系统中常用的功能单元,按照序列训话长度M和触发器数目n的关系可分为三种:
(1)最大循环长度序列码,M=2^n;
(2)最大线性序列码(m序列码),M=(2^n)-1。
(3)任意循环长度序列码,M<2^n。
序列信号发生器是能够产生一组或多组的序列信号的时序电路,他可以有纯时序电路构成,也可以有包含时序和组合逻辑的混合电路构成。
下面介绍三种设计思路,以产生100111序列的信号发生器为例。

一、由移位寄存器构成

单纯使用移位寄存器的序列信号发生器,由于输入输出之间没有组合电路,不需要组合逻辑反馈运算,因此电路工作频率高,但问题在于移位寄存器的长度取决于序列长度,占用电路面积大。
代码如下(示例):

module  signal_maker1(out,clk, load, D);
parameter M=6;
output out;
input clk,load;
input [M-1:0] D;
reg [M-1:0] Q;
initial Q=6'b100111;
always @(posedge clk)
if(load)
Q<=D;
else
Q<={Q[M-2:0],Q[M-1]};
assign out=Q[M];
endmodule

二、由移位寄存器和组合逻辑电路构成

反馈移位型序列码发生器的结构框图如下图所示,它由移位寄存器和组合逻辑网络组成,从移位寄存器的某一输出端可以得到周期性的序列码。

其设计按以下步骤进行:
(1)根据给定序列信号的循环周期M,确定移位寄存器位数n,2^(n-1)<M≤2^n
(2)确定移位寄存器的M个独立状态。将给定的序列码按照移位规律每n位一组,划分为M个状态。若M个状态中出现重复现象,则应增加移位寄存器位数。用n+1位再重复上述过程,直到划分为M个独立状态为止.
(3)根据M个不同的状态列出移位寄存器的态序表和反馈函数表,求出反馈函数F的表达式。
(4)检查自启动性能。
与上面的序列信号发生器相比,各个寄存器的输出需要经过反馈网络,然后才连接到移位寄存器的输入端。因此,电路的速度必然下降,但反馈网络的好处在于它可以节省寄存器。

对于“100111”序列的信号发生器。
首先,确定所需移位寄存器的个数n。因M=6,故n≥3。
然后,确定移位寄存器的六个独立状态。
按照规律每三位一组,划分六个状态为100、001、011、111、111、110。
其中状态111重复出现,故取n=4,并重新划分状态,得到:1001、0011、0111、1111、1110、1100。因此确定n=4。
第三,列态序表和反馈激励函数表,求反馈函数F的表达式。
首先列出态序表,然后根据每一状态所需要的移位输入即反馈输入信号,列出反馈激励函数表,如下表所示。求得反馈激励函数:

代码如下(示例):

module  signal_maker(out,clk, load, D);
parameter M=4;
output out;
input clk,load;
input [M-1:0] D;
reg[M-1:0] Q;
wire w1;always @(posedge clk)
if(load)
Q<=D;
else
Q<={Q[M-2:0],w1};
assign w1=(~Q[3])|((~Q[1])&(~Q[0]))|(~Q[3]&(~Q[2]));
assign out=Q[M-1];
endmodule

仿真出来的电路如下:

三、由计数器构成

计数型序列信号发生器和反馈型序列信号发生器大体相同,它们都是由时序电路和组合电路两部分构成。不同在于,反馈型序列信号发生器的时序状态由移位寄存器产生,输出取寄存器的最高位;而在计数型序列信号发生器中,采用计数器代替移位寄存器产生时序状态,输出由组合电路产生。

计数型的好处在于,计数器的状态设置与输出序列没有直接关系,不需要像上面一样,根据输出确定状态。只需要将反馈网络设计好就可以了。因此计数结构对于输出序列的更改比较方便,而且只要连接到不同的反馈网络,它可以同时产生多组序列码


设计过程分为两步:第一,根据序列码的长度M设计模M计数器,状态可以自定;第二,按计数器的状态转移关系和序列码的要求设计组合输出网络。
对于“100111”序列的信号发生器。
序列信号的M值为6,因为需选用模6的计数器。计数器的状态选择从000到101可以得到输出的组合逻辑真值表

由真值表可画出输出Z的卡诺图,得到输出函数:

代码如下(示例):

module signal_maker3(out,clk,reset);
parameter M=3;
output out;
input clk,reset;
reg[M-1:0] counter;always @(posedge clk)
if(!reset)
count<=3'b000;
else
counter<=counter+1;
assign out=counter[2]|((counter[1])&(~counter[0]))|(counter[1]&counter[0]);
endmodule

仿真出来的电路:

Verilog 序列信号发生器的三种设计思路相关推荐

  1. 序列信号发生器的三种实现方式

    一.状态转移型的序列信号产生器的verilog HDL 设计 用一个不断循环的状态机,循环产生序列信号001011.过程过于简单,我就不画状态图了. 直接给出verilog HDL设计代码: //有限 ...

  2. Verilog写状态机的三种描述方式之三段式

    Verilog写状态机的三段式描述方式1 1,RTL代码 2,门级网表 3,测试前仿真代码 4,前仿真波形+验证 状态机的设计思路: 一是从状态机变量入手,分析各个状态的输入.状态转移和输出: 二是先 ...

  3. OPPO R15大胆玩色彩,这三种设计你绝对没见过

    OPPO R15最近横空出世,引得众用户大呼过瘾.但是伴随着网络上的众多用户和群众的关注,OPPO R15的热度不断上升,火爆全网,备受关注.OPPO R15尽管尚未发布,但是从官宣海报就引起了众多人 ...

  4. verilog中状态机的三种编码方式的比较(二进制码、独热码、格雷码)

    最近做了一个小项目,是关于状态机中三种编码方式的比较,总结了一下三种编码方式的不同,可以会在以后IC笔试面试过程中用到,简单记录一下三种编码方式的优缺点. 三种编码方式如下图所示:其中独热码只有一位为 ...

  5. 物联网为智慧水资源管理提供的三种创新思路

    水资源短缺是一个长期存在而不断加重的问题,它事关民生与经济,随着用户知识水平和环保意识的提升,围绕这一问题衍生出很多难以妥善处理的社会问题逐渐受到关注,我们需要创新思维,寻找新的解决思路. 我们可以先 ...

  6. html 重复提交表单,表单重复提交问题的三种解决思路

    前端开发中接触的表单提交还是很多的,有时候如果不对提交事件进行处理的话会遇到重复多次提交. 最近开发遇到一个问题,找了挺久才找到原因解决-_-||,表单一直提交两次,以为是双击重复提交了,就在提交之后 ...

  7. 根据树的两种遍历序列求第三种遍历序列

    只知道先序序列和后序序列是无法求出唯一的树,所以不做讨论. #include<iostream> #include<cstdio> #include<cstring> ...

  8. 图片怎么转成PDF格式?介绍三种转换思路

    PDF文件作为一类办公常见格式,很多场合都会使用到.有时我们需要将图片转成PDF格式以方便归纳整理.图片资料怎么转成PDF呢?给大家介绍几个手机和电脑都可以用的方式.希望对你有帮助. 方法一.用文件自 ...

  9. 仓库库存表的三种设计方式

    1.实时库存表+库存出入记录表 将出入库单据表和库存表分开,当出入库单据被确认时,修改库存表,库存表中总是只保留当前的库存数据.这样库存表设计大致如下:      库存表(仓库编码.商品编码.库存属性 ...

最新文章

  1. tensorflow 入门
  2. html5音轨字幕,(图解)如何修改mkv默认音轨和字幕
  3. 我感觉ae比较难用,就是做这种画中画的视频,final cut pro真香
  4. Java操作oracle数据库
  5. 2020年阿里云边缘计算和CDN的关键词
  6. cuda 9.0 安装torch 0.4_PyTorch geometric 安装中libcusparse.so.10 error的解决策略
  7. 微软发布新的 Azure Pipelines 功能和集成
  8. 编程神回复:数学不好能学编程吗?网友的回复令人满怀信心!
  9. HDU3930(离散对数与原根)
  10. idea的文件可以mysql运行吗,终于将tiny-sdpm+intellij idea+mysql+jettyt运行成功
  11. python 安卓库_python 库实战 - 安卓简易自动化框架
  12. Flex Builder 4.6切换语言
  13. 港科夜闻丨香港科大教授权龙:三维重建才是计算机视觉的灵魂
  14. 易优家:重新定义食品包装安全
  15. html5图片漂浮代码,QQ空间免费漂浮代码怎么搞啊
  16. 谷歌身份验证器在手机间转移教程
  17. swift声明属性为某个类型同时遵循某协议
  18. 灰色预测 Matlab
  19. 一.pandas的导入读取
  20. Classification 分类学习

热门文章

  1. 灵山卫大集逢一逢六开集。也就是阴历的日期,如果末尾是1或6,例如,阴历二月十六,就是赶灵山卫大集的日子。下面,请根据输入的阴历日期,判断这一天是否赶集吧。
  2. V2X-Hub,车路协同云控平台
  3. Python基础学习:类语法规则
  4. MIC29302WU-TR高电流、高精度、低压差的稳压器
  5. 12天summer----数据挖掘实战-模型评估
  6. MySQL全量同步和增量同步-
  7. mysql 查看slave状态_解读show slave status 命令判断MySQL复制同步状态
  8. Linux awk 命令详解
  9. 根据json字段把一维数组改变成二维数组
  10. c语言实现顺序存储程序,线性表的顺序存储结构动态态分配C语言实现