verilog

斜体 标题 删除线 无序 有序 待办 引用 代码块 BashCC++C#CLikeCSSGoHandlebarsJavaJavaScriptKotlinMarkupObjective-CPerlPHPShellPythonRubySQLSwiftVB.NetYAMLErlangScalaClojureCobolCoffeeScriptCommonLispHtmlRHaskellLuaGroovyPuppetTypeScriptXML图片 上传图片实验版,新增正版图库功能 视频 表格 超链接 摘要 导入 导出 保存 填写标题才可自动保存 撤销 重做 new模板管理 模版 目录 帮助 在Verilog中always@(*)语句的意思是always模块中的任何一个输入信号或电平发生变化时,在该语句下方的模块dao将被执行

D触发器:
module DFF1(CLK ,D,Q)
   output Q;
   input CLK,D;
   reg Q;
   always @ (pasedeg CLK)//posedeg表示上升沿触发
   Q<=D;
 endmodule

含异步复位和时钟使能的D触发器及其VERilog表述

module DEE2(CLK ,D,Q, RES ,EN)
	output Q;
	input CLK,D,RES,EN;
	reg Q;
always @ (posedge CLK,negedge RES)
   begin
if (!RES) Q=0;
else if (EN)	Q=D;
   	end
 endmodule

基本锁存器:


 module LAMCH1 (LCK,D,Q) 
  output Q; 
   input CLK,D;  
   reg Q;  
   always @ (D,or CLK)  
   if (CLK) Q=D; 
   endmodule  

assign相当于连线,一般是将一个变量的值不间断地赋值给另一个变量,就像把这两个变量连在一起,所以习惯性的当做连线用,比如把一个模块的输出给另一个模块当输入。
assign的功能属于组合逻辑的范畴,应用范围可概括为以下三点:
(1)持续赋值;
(2)连线;
(3)对wire型变量赋值,wire是线网,相当于实际的连接线,如果要用assign直接连接,就用wire型变量。wire型变量的值随时变化。其实以上三点是相通的。
要更好的把握assign的使用,Verilog中有几个要点需要深入理解和掌握:
(1)在Verilog module中的所有过程块(如initial块和always块)、连续赋值语句(如assign语句)和实例引用都是并行的。在同一module中这三者出现的先后顺序没有关系。
(2)只有连续赋值语句assign和实例引用语句可以独立于过程块而存在于module的功能定义部分。
(3)连续赋值assign语句独立于过程块,所以不能在always过程块中使用assign语句。

半加器
module h_adder(A,B,SO,CO)
	input A,B;
	output SO,CO;
	assign SO=A^B;
	assige CO=A&B;
endmodule	

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值