我是靠谱客的博主 默默飞鸟,最近开发中收集的这篇文章主要介绍assign和always的用法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

assign的用法:
assign一般是显式的连续赋值。
assign是把输出结果放在前面,就是把输入值赋给输出。警惕:很容易把输入写在前面。

assign y=sel?a:b;//当sel是1时,y=a,否则y=b

assign是在endmodule之前,括号之外的,示例:

module top_module (
	input [15:0] in,
	output [7:0] out_hi,
	output [7:0] out_lo
);	
	assign out_hi = in[15:8];	
endmodule

注意:endmodule之前要有“

always的用法

always意思就是一直执行命令

always里面一定要用reg型变量

always里面有沿触发电平触发
语法:
1、 基础用法

always@()
[]

只有一个过程,可以不需要begin end

2、 搭配begin end使用

always@()
begin
	[]
end

需要begin end的情况:有多个过程

always经常搭配时钟信号
3、搭配case使用

always@(posedge clk)
begin
	case(status)
endcase

case中嵌套begin end

always@(*)
	case(sel)
		2'b00:
		begin
			d=4'd10;
		end
		
		2'b01:
		begin
			d=4'd01;
		end
	endcase

always@(*)是包含了沿触发电平触发

4、always和if搭配使用:

always@()
begin
	if()
		xx
	else 
	begin
		if()
			xx
		else 
			xx
	end
end//注意不能缺少end,end要begin对应
endmodule

最后

以上就是默默飞鸟为你收集整理的assign和always的用法的全部内容,希望文章能够帮你解决assign和always的用法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部