第八讲可综合设计 西安邮电学院通信工程系 Verilog可综合语句 目前成熟的逻辑综合工具都支持RTL级设计的综合,行为级综合 只能在特定条件下进行,处于研究中。逻辑综合工具并不能处理随意 编写的verilog描述,下表列出综合工具通常能接受的verilog描述: 结构类型 关键字或描述 说明 端口 Input,output,inout 参数 parameter 模块定义 module 支持除===和!==外的操作符 信号和变量 wire,reg,tri,integer 允许使用向量和数组表示 调用 模块,基本门 可调用模块和基本门 函数和任务 function,task 只能描述组合逻辑 过程语句 always语句,if语句,case、casex、casez语句 不支持nitiali语句 过程块 begin.end,命名block,disable 数据流 assign 综合时忽略延时信息 循环 for,while,forever 慎用,不同综合工具可能有差异
第八讲 可综合设计 西安邮电学院通信工程系 Verilog可综合语句 目前成熟的逻辑综合工具都支持RTL级设计的综合,行为级综合 只能在特定条件下进行,处于研究中。逻辑综合工具并不能处理随意 编写的verilog描述,下表列出综合工具通常能接受的verilog描述: 结构类型 关键字或描述 说明 端口 Input, output, inout 参数 parameter 模块定义 module 支持除===和!==外的操作符 信号和变量 wire, reg, tri, integer 允许使用向量和数组表示 调用 模块,基本门 可调用模块和基本门 函数和任务 function, task 只能描述组合逻辑 过程语句 always语句, if 语句,case、casex、casez 语句 不支持initial语句 过程块 begin. end, 命名block,disable 数据流 assign 综合时忽略延时信息 循环 for, while, forever 慎用,不同综合工具可能有差异
第八讲可综合设计 西安邮电学院通信工程系 不支持综合的Verilog?语句 综合工具通常不支持下列Verilog语句: initial UDP 循环: fork.join块 repeat wait forever 过程持续赋值: while assign deassign 非结构化的for语句 force release 数据类型: 操作符: event real !== time
第八讲 可综合设计 西安邮电学院通信工程系 不支持综合的Verilog语句 综合工具通常不支持下列Verilog语句: initial 循环: repeat forever while 非结构化的for语句 数据类型: event real time UDP fork.join块 wait 过程持续赋值: assign deassign force release 操作符: = = = ! = =
第八讲可综合设计 西安邮电学院通信工程系 过程块 冬任意边沿 在所有输入信号的任意边沿进入的过程块产生组合逻辑。这种过程 块称为组合块。 always(aorb)//与门 y =a b; 冬单个边沿 在一个控制信号的单一边沿上进入的过程块产生同步逻辑。这种过 程块称为同步块。 always @posedge clk)//D flip-flop q<=d; 一同步块也可以对异步复位信号的变化产生敏感 always @posedge clk or negedge rst if(!rst) g<=0; else q<=d;
第八讲 可综合设计 西安邮电学院通信工程系 过程块 ❖ 任意边沿 – 在所有输入信号的任意边沿进入的过程块产生组合逻辑。这种过程 块称为组合块。 always @( a or b) // 与门 y = a & b; ❖ 单个边沿 – 在一个控制信号的单一边沿上进入的过程块产生同步逻辑。这种过 程块称为同步块。 always @( posedge clk) // D flip-flop q <= d; – 同步块也可以对异步复位信号的变化产生敏感 always @( posedge clk or negedge rst_) if (! rst_) q <= 0; else q <= d;
第八讲可综合设计 西安邮电学院通信工程系 过程块中的寄存器类型 若同步块中使用一个reg,则: ·如果在一个时钟周期赋值并在另一个周期输出,则只能以硬件寄存 器实现。 如果reg是一个模块的输出,它会出现在综合网表中,但不一定是一 个硬件寄存器。 ·若两者都不是,该信号可能被优化掉。 若组合块中使用一个reg,则: 如果eg值随块的任何一个输入的变化而改变,则在综合时不会产生 硬件寄存器。 ·如果rg值并不总是随块的输入变化而改变,则综合时会产生一个锁 存器
第八讲 可综合设计 西安邮电学院通信工程系 过程块中的寄存器类型 ❖ 若同步块中使用一个reg,则: • 如果在一个时钟周期赋值并在另一个周期输出,则只能以硬件寄存 器实现。 • 如果reg是一个模块的输出,它会出现在综合网表中,但不一定是一 个硬件寄存器。 • 若两者都不是,该信号可能被优化掉。 ❖ 若组合块中使用一个reg,则: • 如果reg值随块的任何一个输入的变化而改变, 则在综合时不会产生 硬件寄存器。 • 如果reg值并不总是随块的输入变化而改变,则综合时会产生一个锁 存器