FPGA入门---Verilog基础语法

进制格式

标识符:用于模块命名

逻辑电平

数据类型

寄存器

线网

参数

运算操作符
移位操作符

逻辑运算符

位运算符

拼接运算符

条件运算符

运算符优先级

注释

关键词

常用关键字

模块

高级语法

结构语句
initial 语句

结构语句总述

always 语句

always语句

赋值语句


条件语句
if_else语句


case 语句

状态机

例程:分屏器代码
// 分屏器
lmodule divider7 fsm (
//input ports  
input                sys_clk,
input                sys_rst_n,

//output ports
output  reg            clk_divide_7
                );


//reg define
reg [6:0]            curr_st  ;
reg [6:0]            next_st  ;

// -----------------------状态空间定义---------------------------
//wire define
//parameter define    
parameter WIDTH = 1           ;

//one hotcode desian  独热码
parameter S0 = 7'b0000000;
parameter S1 = 7'b0000001;
parameter S2 = 7'b0000010;
parameter S3 = 7'b0000100;
parameter S4 = 7'b0001000;
parameter S5 = 7'b0010000;
parameter S6 = 7'b0100000;

// -----------------------状态跳转---------------------------
//时钟信号上升沿触发或复位信号下降沿触发  时序逻辑(非阻塞赋值)
always @(posedge sys_clk or negedge sys_rst_n) begin 
        if (sys_rst_n ==1'bO)    
	        curr_st <= 7'b0:
	    else
			curr_st <= next_st;
end

// -----------------------下个状态判断---------------------------
// 组合逻辑(阻塞赋值)
//FSM state logic
always @(*) begin // *表示该always语句都会列到敏感列表里,即该语句里的任意变量发生改变,都会触发该语句
	case (curr_st)
		S0: begin
			next_st = S1;
			end
		S1: begin
			next_st = S2;
			end
		S2: begin
			next_st = S3;
			end
		S3: begin
			next_st = S4;
			end
		S4: begin
			next_st = S5;
			end
		S5: begin
			next_st = S6;
			end
		S6: begin
			next_st = S0;
			end
		default: next_st = S0;
	endcase
end
// 这是一个三段式状态机,没有各状态下动作
// -----------------------结束---------------------------

// action 这是其他状态机的第四部分,仅供参考
wire read_book;
// 条件判断 三目运算
assign read_book = (curretn_state == STUDY) ? 1'b1 : 1'b0;

always @ (curretn_state) begin
	if(curretn state == STUDY)
		read_book = 1;
	else
		read_book = 0;
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值