可综合性编码
上一篇 /
下一篇 2007-04-12 17:17:22 / 天气: 晴朗
/ 心情: 高兴
时序逻辑电路最好采用寄存器(触发器)传输的方式设计。为了保持一致,也为了保证综合的正确性,建议使用例一(VHDL)和例二(Verilog)中提供的模板,对设计中的工艺无关寄存器进行描述。使用例中所示的方法,用reset信号对寄存器进行初始化。在VHDL代码中,声明变量的时候不要初始化信号:在Verilog代码中,不要使用initial语句去初始化信号。这样做可能会导致综合前仿真和综合后仿真的某些不一致问题。
例一时序进程的VHDL代码模板:
-- process with asynchronous resetEDA中国门户网站kX Fr0q*o
ex5-19_proc: process(clk, rst_a)EDA中国门户网站 d{}+r0I
beginEDA中国门户网站#u:]Aj$m
if rst_a = ´1´ then
......
:YK Vvkhio0elseif (clk´event and clk = ´1´) then
......
7IWaH
R)I_{0end if;
.T-hO^G'I0ITV0end process ex5-19_proc;
例二时序进程的Verilog代码模板
// process with asynchronous reset
G(_}B$tWzN T0always @(posedge clk or posedge rst_a)EDA中国门户网站 RA
HtSb;g
begin : ex5-20_procEDA中国门户网站(J g$ttz|C9~
if (rst_a == 1´b1)EDA中国门户网站:zXgz$u3R
begin
......EDA中国门户网站tR6_7F Cu4Cq?r
end
vRRp2@Mh0else begin
......EDA中国门户网站3c_!~!J[
end
+TZ&})J'd^6U.U0end // ex5-20_proc
信号和变量赋值
书写可综合代码时,建议你使用信号量,而不是使用变量,以确保综合前的仿真能够与综合后的仿真相一致。如果你觉得使用了变量后,仿真速度得到了非常显著的提高,那么也可以使用变量。但要注意变量赋值代码在程序中相应的顺序。
注意:在时序VHDL模块中,变量综合后不会产生寄存器。这样会给调试和维护带来不便。
VHDL可综合程序中变量的赋值:
差的编码风格:
process(a,b)
variable c : std_logic;
begin
c := a and b;
end process;
推荐的编码风格:
signal c : std_logic;
process(a,b)
begin
c <= a and b;
end process;
导入论坛
收藏
分享给好友
推荐到圈子
管理
举报
TAG:
编码
可综合