首页/文章/ 详情

FPGA入门1——verilog基本语法

1年前浏览194

接下来小刚主要想学一下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
最近编辑:1年前
集成电路小刚
硕士 立志成为集成电路领域专家
获赞 3粉丝 42文章 69课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈