湘潭大学数字电路课件 第5章 组合电路的自动化设计与分析.pptVIP

  • 1
  • 0
  • 约2.64万字
  • 约 157页
  • 2018-12-28 发布于湖北
  • 举报

湘潭大学数字电路课件 第5章 组合电路的自动化设计与分析.ppt

casex语句示例 …… reg [7:0] out ; always @ (a or b or opcode ) begin casex (opcode) 4′b1zzx : out = a+b ; 4′b01xx : out = a-b ; 4′b001? : out = (~a)+1 ; 4′b0001 : out = (~b)+1 ; endcase end …… 忽略对某些位的比较 default ? 使用if-else 条件分支语句和case 分支控制语句时应注意: 1. 应注意列出所有条件分支,否则,编译器认为条件不满足时,会引入触发器保持原值。这一点可用于时序电路的设计,例如,计数器,条件满足加1,否则保持不变;但在组合电路设计时,应避免这种隐含触发器的存在。 2. 当不能列出所有条件分支时,可在 if 语句的最后加上else ,在case语句的最后加上default。 //隐含触发器举例 … … always @ (a or b) begin if ((a==1)(b==1)) c=1 ; end … … 原意:2 输入与门。因无else处理,编译器认为存在“c=c”,保持不变。 在利用if-else语句描述组合电路时,应避免此类错误的发生。 //描述组合逻辑时,避免隐含触发器举例 … … always @ (a or b) begin if ((a==1)(b==1)) c=1 ; else c = 0 ; end … … 这条else处理,避免了a=1, b=1 , 则c=1 后,c 一直保持为 1 的隐含触发器情况。 5.5 用Verilog来表述广义译码器 进入文本编辑器 进入文本编辑器 进入文本编辑器 关 系 运 算 符 < 小于 <= 小于或等于 > 大于 >= 大于或等于 比较两个操作数的大小关系,如果比较关系成立,则返回逻辑“1”;否则,返回逻辑“0” 。如果两个操作数中有一个为 x,则返回值是 x。 例:A = 2 , B = 5 , D = 4′hx 则:A B 返回逻辑“1” A B 返回逻辑“0” B = D 返回值是 x 等 式 运 算 符 == 等于 != 不等于 === 全等 !== 不全等 双目运算,运算的结果是1位的逻辑值。 两个操作数逐位相等,返回逻辑 1 ;否则,返回逻辑 0 。若任何一个操作数中某位是 x 或 z ,则返回 x 。 对操作数中的 x 和 z 也进行比较,逐位一致,返回逻辑 1 ;否则,返回逻辑 0。 例:a = 5′b11x01 , c = 5′b11x01 , 则 a == c 得到的结果是 x a === c 得到的结果是 1 归 约 运 算 符 又称为“缩减运算符”,是单目运算符。 归约与 ~ 归约与非 ︱ 归约或 ~︱ 归约或非 ^ 归约异或 ~ ^ , ^ ~ 归约异或非(归约同或) 对单个操作数进行归约的递推运算,运算结果是1位二进制数。 过程:先将操作数的第1位与第2位进行归约运算,运算结果再与第3位进行归约运算,依此类推,直到最后一位。 … reg [ 3 : 0 ] a ; b = a ; //等效于b = ( (a[0] a[1] ) a[2] ) a[3] ) … 归约运算符举例 若 A = 5′b11001 则

文档评论(0)

1亿VIP精品文档

相关文档