正在加载图片...
10 Verilog hdl硬件描述语言 China° 下载 的门、模块实例化语句、连续赋值语句以及 always语句和 initial语句的混合。它们之间可以相 互包含。来自 always语句和 initial语句(切记只有寄存器类型数据可以在这两种语句中赋值) 的值能够驱动门或开关,而来自于门或连续赋值语句(只能驱动线网)的值能够反过来用于 触发 al ways语句和 initial语句 下面是混合设计方式的1位全加器实例 module FA Mix (A, B, cin, Sum, cout Cout reg Cout xor xI(SI //门实例语句 always A or B or Cin) begin// always语句。 T1=AC⊥ T3=A& B C。ut=(T1|T2)|T3; assign sum=S1^cin;//连续赋值语句 endmodule 只要A或B上有事件发生,门实例语句即被执行。只要A、B或Cin上有事件发生,就执行 always语句,并且只要Sl或Cm上有事件发生,就执行连续赋值语句 2.7设计模拟 Ⅴ erilog hdl不仅提供描述设计的能力,而且提供对激励、控制、存储响应和设计验证的 建模能力。激励和控制可用初始化语句产生。验证运行过程中的响应可以作为“变化时保存 或作为选通的数据存储。最后,设计验证可以通过在初始化语句中写入相应的语句自动与期 望的响应值比较完成。 下面是测试模块op的例子。该例子测试2.3节中讲到的FA_Seq模块 timescale Ins/Ins //一个模块可以有一个空的端口列表 reg PA, PB, PC+ wire PCo, Psun //正在测试的实例化模块: FA Seg FAPA, PB, PCi, PSum, Pga //定位 begin: ONLY_ONCE reg [3: 0] Pal //需要4位,Pa1才能取值8的门、模块实例化语句、连续赋值语句以及 a l w a y s语句和i n i t i a l语句的混合。它们之间可以相 互包含。来自 a l w a y s语句和i n i t i a l语句(切记只有寄存器类型数据可以在这两种语句中赋值) 的值能够驱动门或开关,而来自于门或连续赋值语句(只能驱动线网)的值能够反过来用于 触发a l w a y s语句和i n i t i a l语句。 下面是混合设计方式的1位全加器实例。 m o d u l e F A _ M i x (A, B, Cin, Sum, Cout) ; i n p u t A,B, Cin; o u t p u t Sum, Cout; r e g C o u t; r e g T1, T2, T3; w i r e S 1; x o r X 1(S1, A, B ); // 门实例语句。 a l w a y s @ ( A o r B o r C i n ) b e g i n // always 语句。 T1 = A & Cin; T2 = B & Cin; T3 = A & B; C o u t = (T 1| T 2) | T 3; e n d a s s i g n S u m = S 1 ^ C i n; // 连续赋值语句。 e n d m o d u l e 只要A或B上有事件发生,门实例语句即被执行。只要 A、B或C i n上有事件发生,就执行 always 语句,并且只要S 1或C i n上有事件发生,就执行连续赋值语句。 2.7 设计模拟 Verilog HDL不仅提供描述设计的能力,而且提供对激励、控制、存储响应和设计验证的 建模能力。激励和控制可用初始化语句产生。验证运行过程中的响应可以作为“变化时保存” 或作为选通的数据存储。最后,设计验证可以通过在初始化语句中写入相应的语句自动与期 望的响应值比较完成。 下面是测试模块To p的例子。该例子测试2 . 3节中讲到的FA _ S e q模块。 ‘t i m e s c a l e 1 n s/1 n s m o d u l e T o p; // 一个模块可以有一个空的端口列表。 r e g PA, PB, PCi; w i r e PCo, PSum; // 正在测试的实例化模块: FA_Seq F1(PA, PB, PCi, PSum, PCo); // 定位。 i n i t i a l b e g i n: O N L Y_O N C E r e g [3:0] P a l; / /需要4位, Pal才能取值8。 f o r (P a l = 0; P al < 8; P a l = Pal + 1) 10 Verilog HDL 硬件描述语言 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有