题目:使用状态机实现序列检测器?

序列检测器的状态机实现,以前的博文写的很多,这里贴出两个简单易懂的,看需要的部分即可:

序列检测器的Moore状态机实现

序列检测器的Mealy状态机实现


题目:用Verilog设计串专并电路?

在下面这篇博文中,包含串转并以及并转串的思路:移位寄存器专题

1. module left_shifter_reg(clk, din, dout);  2.     input clk;  3.     input din;  4.     output [7:0] dout;  5.     wire [7:0] dout;  6.     reg [7:0] qtemp;  7.     always @ (posedge clk)  8.         begin  9.             qtemp <= {qtemp[6:0], din}; //每次输入一位  10.         end  11.     assign dout = qtemp; //并行输出  12.   13. endmodule

并转串

1. module right_shifter_reg(clk, en, din, dout);  2.     input [7:0] din;  3.     input en,clk;  4.     output dout;  5.     reg dout;  6.     reg [7:0] qtemp;  7.     always @(posedge clk)  8.         begin  9.             if(en == 1)  10.                 qtemp <= din;  11.             else  12.                 begin  13.                     dout <= qtemp[0];  14.                     qtemp <= {qtemp[0], qtemp[7:1]};  15.                 end  16.         end  17.   18. endmodule

题目:设计分频电路?

二分频:https://blog.csdn.net/Reborn_Lee/article/details/85254025

module clkdiv2(input ClkIn,input rst,output ClkOut);reg ClkOut;always@(posedge ClkIn)beginif(rst) ClkOut = 1'b0;else ClkOut = ~ClkOut;end
endmodule

奇偶分频:https://blog.csdn.net/Reborn_Lee/article/details/81298123

先看简单的偶分频电路设计,以10分频为例,意思就是频率降低10倍,那么周期就增大10倍,这样我只需要在原来时钟五倍周期时候翻转一次即可实现10分频电路,这是思路,具体实现时,我们使用计数器来完成10分频电路,计数器的初值为0,每到一个时钟上升沿计数一次并判断是否计数达到要求。

那么计数要求是多少呢?

当然是4,当计数器计数到4,也就是第4个上升沿到来时,要等到下一个上升沿到来判断计数是否到4,同时翻转时钟,这就达到了目的,具体代码移植以前的博文:

//偶分频电路的Verilog HDL设计(10分频为例)
module even_freq_div(clk, rst, clk_div10,cnt);input clk;
input rst;
output clk_div10;
reg clk_div10;
output [2:0] cnt;          //输出cnt的原因是为了看到计数次数,便于分析仿真结果。
reg [2:0] cnt;always @(posedge clk)
beginif(rst)  //复位信号有效;begincnt <= 0;          //计数器清零clk_div10 <= 0;    //输出清零;endelse     //复位信号无效;beginif(cnt == 4)                //每一次时钟上升沿到来时,都检查一次计数值是否达到4;beginclk_div10 <= ~clk_div10;cnt <= 0; //计数器计数到4后,重新清零;计数值为4意味着已经计了5个周期,这时10分频时钟翻转一次;endelse     //如果计数器未计数到4,则来一个上升沿加1,同时分频时钟继续保持原值不变。begincnt <= cnt + 1;           clk_div10 <= clk_div10;  //否则继续保持;endendendendmodule

功能仿真:

可以数数看,恰好是十分频。

接着看奇分频,且为占空比为50%的奇分频电路,以5分频为例:

表面上说,应该对被分频时钟计数2.5个时钟周期翻转一次,但如何计数2.5个周期是一个问题,有人可能会说,上升沿下降沿同时计数,想法很丰满,同样的反面教材:

//奇分频电路的Verilog HDL设计(5分频为例)
module odd_freq_div(clk, rst, clk_div, cnt);input clk;
input rst;
output clk_div;
reg clk_div;
output [2:0] cnt;          //输出cnt的原因是为了看到计数次数,便于分析仿真结果。
reg [2:0] cnt;
wire clk1;assign clk1 = ~clk;         //相位与clk相差180°;always @(posedge clk or posedge clk1)
beginif(rst)  //复位信号有效;begincnt <= 0;          //计数器清零clk_div <= 0;    //输出清零;endelse     //复位信号无效;beginif(cnt == 4)                //每一次时钟上升沿到来时,都检查一次计数值是否达到4;beginclk_div <= ~clk_div;cnt <= 0; //计数器计数到4后,重新清零;endelse     //如果计数器未计数到4,则来一个上升沿加1,同时分频时钟继续保持原值不变。begincnt <= cnt + 1;           clk_div <= clk_div;  //否则继续保持;endendendendmodule

功能仿真图:

至于其他幺蛾子,见原博文:https://blog.csdn.net/Reborn_Lee/article/details/81298123#%E5%89%8D%E8%A8%80%EF%BC%9A

正确的分频电路见链接:【FPGA】分频电路设计(Verilog HDL设计)

`timescale 1ns / 1ps
//
// Company:
// Engineer: CSDN 李锐博恩
//
// Create Date: 2019/07/28 15:15:27
// Design Name:
// Module Name: FRE_DIV5//module FRE_DIV5(input clk,input rst_n,output clk_div5);reg [2:0] div_cnt;always@(posedge clk or negedge rst_n) beginif(~rst_n) begindiv_cnt <= 0;endelse if(div_cnt <4) begindiv_cnt <= div_cnt + 1;endelse div_cnt <= 0;endreg clk_div_r, clk_div_rr;always@(posedge clk or negedge rst_n) beginif(~rst_n) beginclk_div_r <= 1;endelse if(div_cnt == 1) beginclk_div_r <= ~clk_div_r;endelse if(div_cnt == 4) beginclk_div_r <= ~clk_div_r;endelse clk_div_r <= clk_div_r;endalways@(negedge clk or negedge rst_n) beginif(~rst_n) beginclk_div_rr <= 1;endelse clk_div_rr <= clk_div_r;endassign clk_div5 = clk_div_r | clk_div_rr;endmodule

FPGA笔试题解析(五):串并转换与奇分频电路相关推荐

  1. FPGA笔试题解析(二)

    1.数制转换 R进制数转换为十进制数:按权展开,相加 十进制数转化为R进制数:整数部分,除R取余法,除到商为0为止.小数部分,乘R取整法,乘到积为0为止. 二进制数转化八进制数:三位一组,整数部分左边 ...

  2. FPGA笔试题解析(一)

    1.简述ASIC设计流程,并列举出各部分用到的工具? 说实话,半路出家,没弄过ASIC,但是经常遇到ASIC与FPGA开发做比较的题目,不得不主动了解下ASIC: ASIC全称: Applicatio ...

  3. FPGA笔试题解析(四)

    1.什么是高阻态? 高阻态:电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,可以理解为断路,不被任何东西所驱动,也不驱动任何东西. 之前写过和高阻态 ...

  4. FPGA笔试题解析(三)

    1.简述建立时间和保持时间,画图表示? 建立时间Tsu(setup):触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间. 保持时间Th(hold):触发器在时钟上升沿到来之后,其数 ...

  5. FPGA笔试题知识点汇总(41~60)

    FPGA笔试题知识点汇总 第三章 FPGA笔试题知识点汇总(41~60) 文章目录 FPGA笔试题知识点汇总 前言 一.题目及解析? 1.IC设计过程中将寄生效应的怎样反馈影响设计师的设计方案?(寄生 ...

  6. 腾讯2016春招安全岗笔试题解析

    腾讯2016春招安全岗笔试题解析 昨天(4月2日)晚上7:00到9:00做了腾讯春招安全岗的笔试题.下面解析一下: 题目解析 1 在生成随机数前用当前时间设置随机数种子应该是安全的.如果程序用固定的数 ...

  7. 【C语言指针】 回调函数、冒泡函数模拟实现qsort、指针和数组笔试题解析

    目录 一.回调函数 定义: 用回调函数形式实现加法运算 二.qsort 函数参数: void指针 用qsort排序整型和结构体 用冒泡函数模拟实现qsort,排序整型和结构体 三.指针和数组笔试题解析 ...

  8. IC/FPGA笔试题分析(五)

    下一个笔试题是华为,虽然只有单选和多选,但还是需要准备一下: 这是一个电路中的某一条关键路径,或者是一个单独的设计,都可以去求其最高频率. 考虑到有时钟抖动等许多情况,所以此电路的最小周期应该为: T ...

  9. 2021 搜狐畅游数据分析笔试题解析

    从牛客网上找到的搜狐畅游数据分析岗位的笔试题,精选了14道题目来给大家解析下,内容涵盖统计学.Excel.SQL.Python.业务理解. 统计学 Excel 业务理解 SQL Python 1统计学 ...

最新文章

  1. Python类的使用总结
  2. WEB前端 从原生JavaScript到MVVM
  3. JS中的(IIFE)(立即调用函数)
  4. MYSQL函数应用----替换函数replace()用法
  5. java文件快速扫描仪_有没有办法从Java中的方法提供自动扫描仪输入?
  6. fpga从入门到放弃(一)基于vivado2018环境开发板Artix 7系列BASYS3(更新中)
  7. 第2章 神经网络的数学基础
  8. 使用expect实现shell的交互
  9. RDP Wrapper
  10. 计算机输入什么指令关机,电脑自动关机命令是什么
  11. Minecraft 1.12.2模组开发(五十五) 动画生物实体
  12. exsi 无法打开虚拟机 执行此操作的权限被拒绝[解决]
  13. 【区块链之技术进阶】Attention please!区块链技术的风险!
  14. 软件测试人员面试技巧总结
  15. Goddy服务器配置
  16. conda 多环境切换
  17. 基于SSM的高校课程评价系统
  18. 查找素材终极神器,视频片段查找神器!
  19. 安卓解决小米,魅族状态栏全白的问题
  20. 基恩士PLC导通检测程序

热门文章

  1. Windows Phone 7监测网络环境变化
  2. [跟我学UML] UML类图中的泛化
  3. java选择哪款eclipse_写java程序用哪一个版的eclipse比较好
  4. transactionscope 中的异步 处理 异常_协程中的取消和异常 | 异常处理详解
  5. mysql 设置表空间位置_如何修改表空间数据文件路径
  6. cmder添加到系统变量中_开发环境搭建之VSCode、Cmder
  7. reddit android app,reddit安卓版app
  8. 配置ssl证书_Nginx监听443端口配置SSL证书
  9. 5首页加载慢_5个 外贸建站谷歌SEO优化技巧
  10. 测量左右磁极的原片磁铁