首页/文章/ 详情

FPGA入门1——verilog基本语法

10月前浏览91

接下来小刚主要想学一下FPGA稍微入个门,然后学一下神经网络的搭建。话不多说,进入正题。

FPGA入门:模块编写

 

1.D触发器——D触发器在数字电路里是基础的基础,比较简单功能我就不多做介绍了。

D触发器同步和异步两种代码如下,注意文件名最好和模块名一致

    module  ex_module(     input wire  sclk ,    input wire rst_n,//n为低有效    input wire [7:0] d,  //高比特在左边,大的数在左边    output reg [7:0] q, //模块声明的时候,输入一定是wire变量,输出可以是reg变量);//文件名和模块名一致,括号里声明接口列表,声明模块输入变量一定是wire变量//异步D触发器always @(posedge sclk or negedge rst_n )//敏感列表可以包括点频触发也可以是沿触发,异步触发器,        //always代表一直在循环  if(rst_n ==1'b0)//条件表,这里是组合逻辑 2'b01  10'b00000_11111  10'd10  10'hff  q<=8'h00;//沿触发的逻辑一定都用<=非阻塞赋值else  q<=d;//同步D触发器always @(posedge sclk)if(rst_n==1'b0)q<=8'b00;else q<=d;endmodule//成对出现

    2.数据选择器——咱们就从最简单的开始,二路选择器

       module ex_wire(    input wire  sel,input wire a,input wire b,output wire c//最后一个不需要加逗号);//选择器为组合逻辑没有时钟//wire变量一定用assign 连续赋值赋值语句,而且必须用阻塞赋值assign c=(sel== 1b'1)?a:b;  //c必须是wire变量,而a,b可以是reg变量//assign c=(条件)?a:b;endmodule

      3.计数器——10计算器

        module   ex_cnt(  input wire  sclk,//模拟晶振产生时钟震荡  input wire  rst_n,//模拟复位信号  output wire [9:0] cnt);//计数器reg  [7:0]  cnt_r;//寄存器变量always @(posedge sclk or negedge rst_n)  if(rst_n == 1'b0)    cnt_r<=10'd0;  else     cnt_r<=cnt_r+1'b1;//0-1023-0-1023不断循环//仿真工具endmodule
        来源:集成电路小刚
        电路
        著作权归作者所有,欢迎分享,未经许可,不得转载
        首次发布时间:2023-06-27
        最近编辑:10月前
        集成电路小刚
        硕士 立志成为集成电路领域专家
        获赞 3粉丝 31文章 69课程 0
        点赞
        收藏
        未登录
        还没有评论

        课程
        培训
        服务
        行家

        VIP会员 学习 福利任务 兑换礼品
        下载APP
        联系我们
        帮助与反馈