![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基本电路
文章平均质量分 69
在FPGA的混子
这个作者很懒,什么都没留下…
展开
-
FPGA的基本电路-计数器
在学习fpga的第一个电路。module adder(input rst_n,input clk,output [3:0] ad_ooutput [6:0]ad_o1,output [6:0]ad_o2,output [6:0]ad_o3,);reg [6:0] adder;reg [6:0] adder1;reg [6:0] adder2;always@(p...原创 2019-07-30 10:40:53 · 2089 阅读 · 0 评论 -
用case语句写一个简单的译码
问题:这个译码的最主要的出错是在case语句的书写,一些简单的语法问题。原理:用户输入选择sel,然后用case做出选择并且输出。小技巧:我们在这写了一个计数器,用else if代替#,方便以后写一些大的代码时,可以修改与观看。代码:源码:module YMQ(input clk,input rst_n,input [2:0]gray_code,output [2:0]code...原创 2019-07-31 09:49:14 · 460 阅读 · 0 评论 -
用三段式写10010的序列检测
源码:module XLJC(input clk,input rst,input code,output reg code_out,output reg code_mealy_out);parameter IDLE=6’b000001;parameter S1=6’b000010;parameter S2=5’b000100;parameter S3=5’b001000;p...原创 2019-07-30 17:07:47 · 670 阅读 · 0 评论 -
一段式状态机
源码:module status(input clk,input rst_n,input [9:0] sort,input in,output [12:0] number_i);reg[1:0] st;reg [12:0] number;always @(posedge clk or negedge rst_n) beginif (~rst_n) beginst <=...原创 2019-07-30 16:12:50 · 738 阅读 · 0 评论 -
10M的分频
源码:module FenPing#(parameter N=10,parameter M=N/2)(input clk,input rst_n,output ad_o,output [3:0]ad_o1);reg [3:0] cont;reg vs;always@(posedge clk)beginif(~rst_n)cont<=0;else if(c...原创 2019-07-30 15:19:49 · 883 阅读 · 0 评论 -
按键消抖
源码:module AJXD(input clk,input rst_n,input key,output reg key_out);wire out_pos;wire out_neg;reg key_s1;reg key_cnt;always@(posedge clk)beginif(~rst_n)key_s1<=1;elsekey_s1<=key;e...原创 2019-07-30 14:36:54 · 222 阅读 · 0 评论 -
沿检测
源码:module CSY(input clk,input rst_n,input in,output out_pos,output out_neg);reg in_s1;always@(posedge clk)beginif(~rst_n)in_s1<=0;elsein_s1<=in;endassign out_pos=in&~in_s...原创 2019-07-30 13:59:47 · 203 阅读 · 0 评论 -
数据抽取
源码:module YWJCQ(input clk,input rst_n,input [2:0]sel,input [7:0]in,output out_o);reg out;always@(sel)begincase(sel)3’d0: out<=in[0];3’d1: out<=in[1];3’d2: out<=in[2];3’d3: ou...原创 2019-07-30 13:30:19 · 563 阅读 · 0 评论 -
一个周期为510的脉冲,1的时间周期为10个单位,0的时间周期为500个单位的电路
原码:module cont(input clk,input rst_n,output [9:0] cont_i);reg vs;reg [9:0]cont;always@(posedge clk)beginif(~rst_n)cont<=0;else if(cont==509)cont<=0;elsecont<=cont+1’b1;endalw...原创 2019-07-30 11:19:46 · 431 阅读 · 0 评论 -
数码管从0到9
这次因为要在板子上跑,所以我们这次要给它分频。因为我的板子型号是50M的晶振,所以我把它分到了10M的频率。然后,在用case语句将它译码。重点:分频最主要要将各个时间与频率的关系搞清楚。1MHZ=1000000HZ 1s=1000ms=1_000_000us=1_000_000_000ns T=1/f注意:有的板子要选择数码管,所以要加上一个信号来连接数码管的引脚。源码:module le...原创 2019-07-31 10:38:31 · 4325 阅读 · 0 评论