属性函数的示例程序.doc

属性函数的示例程序

【例4-57】 利用数组的属性函数的示例程序。 (P128) -- 自定义数据类型 TYPE cydata_base IS ARRAY ( 0 TO 1023 ) OF INTEGER ; -- 在结构体中使用该数组 ARCHITECTURE behavioral OF calculate_cyweek IS CONSTANT cyinitial_value : INTEGER := 0 ; -- 定义一个初始化常数 BEGIN PROCESS ( clk ) BEGIN FOR i IN cydata_baseLOW (1) TO cydata_baseHIGH (1) LOOP cydata_base ( i ) := cyinitial_value ; END LOOP ; END PROCESS ; END behavioral ; 【例4-58】 属性函数EVENT和LAST_VALUE的使用方法的示例程序。 (P129) LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY cydff IS PORT( d : IN STD_LOGIC ; clk : IN STD_LOGIC ; q : OUT STD_LOGIC ; qnot : OUT STD_LOGIC ) ; END ENTITY cydff ; ARCHITECTURE dataflow OF cydff IS BEGIN cdff_example : PROCESS ( clk ) BEGIN IF ( clkEVENT AND clk = 1 ) THEN q = d ; qnot = NOT d ; END IF ; END PROCESS cdff_example ; END ARCHITECTURE dataflow ; 【例4-59】 利用信号的属性函数LAST_EVENT检查建立时间的示例程序。 (P131) LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY cydff2 IS GENERIC ( setup_time : TIME ) ; PORT( d : IN STD_LOGIC ; clk : IN STD_LOGIC ; q : OUT STD_LOGIC ; qnot : OUT STD_LOGIC ) ; BEGIN check_setuptime : PROCESS ( clk ) BEGIN IF ( clkEVENT AND clkLAST_VALUE = 0 AND clk = 1 ) THEN ASSERT ( dLAST_EVENT = setup_time ) -- 当条件不成立时(dLAST_EVENT setup_time),执行ASSERT语句 REPORT Setup Time is violated . -- 建立时间违规 SEVERITY ERROR ; END IF ; END PROCESS check_setuptime ; END ENTITY cydff2 ; ARCHITECTURE dataflow OF cydff2 IS BEGIN cdff_example : PROCESS ( clk ) BEGIN

文档评论(0)

1亿VIP精品文档

相关文档