可综合性编码

上一篇 / 下一篇  2007-04-12 17:17:22 / 天气: 晴朗 / 心情: 高兴

时序逻辑电路最好采用寄存器(触发器)传输的方式设计。为了保持一致,也为了保证综合的正确性,建议使用例一(VHDL)和例二(Verilog)中提供的模板,对设计中的工艺无关寄存器进行描述。使用例中所示的方法,用reset信号对寄存器进行初始化。在VHDL代码中,声明变量的时候不要初始化信号:在Verilog代码中,不要使用initial语句去初始化信号。这样做可能会导致综合前仿真和综合后仿真的某些不一致问题。

例一时序进程的VHDL代码模板:

-- process with asynchronous resetEDA中国门户网站k X 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$tWz N 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_7FCu4Cq?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;

FPGA/CPLD器件价格查询

TAG: 编码 可综合

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-11-18  
      1
2345678
9101112131415
16171819202122
23242526272829
30      

数据统计

  • 访问量: 6471
  • 日志数: 24
  • 商品数: 2
  • 建立时间: 2006-11-11
  • 更新时间: 2008-08-18

RSS订阅

Open Toolbar