各位大哥大姐好,我现在在搞毕业设计,我用的软件是ISPLEVER,语言是VHDL,我程序已经编好,且编译已经通过,我的目的是仿真,但是仿真时要编写.abv文件,也就是testbench,可是我编了好久也编不好,现在求教各位大姐给我编写啊,我求求了,我现在急需。
我的程序是写做一个信号发生器,输出是:“1110100”,我的程序如下:
library ieee;
use ieee.std_logic_1164.all;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
entity BYSJ_XHFSQ is
PORT(
CLK:IN STD_LOGIC;--6MHz晶体振荡器输入
SEL_F1:INSTD_LOGIC;--120KHz或300KHz频率选择输入
SEL_FO:OUTSTD_LOGIC;--120KHz或300KHz频率选择输出
XHOUT:OUT STD_LOGIC --m序列输出
);
end BYSJ_XHFSQ;
architecture XHFSQ_BEHAVIOR of BYSJ_XHFSQ is
--m序列产生器中用到的信号量
SIGNALD0:STD_LOGIC;
SIGNALD1:STD_LOGIC;
SIGNALD2:STD_LOGIC;
SIGNALD3:STD_LOGIC;
SIGNALTEMP:STD_LOGIC;--全零控制
SIGNAL TOUT :STD_LOGIC:='1';--分频输出
SIGNAL NUM1 :INTEGER RANGE 0 TO 25;--计数器当前值
SIGNAL CHOSE_F:INTEGER RANGE 0 TO 25;--计数器峰值
begin
P2ROCESS(CLK,SEL_F1,TEMP)
BEGIN
IF(SEL_F1='0') THEN--频率选择
CHOSE_F<=24;
ELSE
CHOSE_F<=9;
END IF;
IF CLK'EVENT AND CLK='1' THEN--分频
IF NUM1>=CHOSE_F THEN
TOUT<=NOT TOUT;
NUM1<=0;
ELSE
NUM1<=NUM1+1;
END IF;
END IF;
-----------------------------------------------------------
IF TEMP='1' THEN--m序列产生
IF TOUT'EVENT AND TOUT='1' THEN
D1<=D0;
D2<=D1;
D3<=D2;
END IF;
D0<=D1 XOR D3;
ELSE
D0<='1';
IF TOUT'EVENT AND TOUT='1' THEN
D1<=D0;
D2<=D1;
D3<=D2;
END IF;
END IF;
END PROCESS P2;
TEMP<=D1 OR D2 OR D3;
XHOUT<=D3;
SEL_FO<=SEL_F1;
end XHFSQ_BEHAVIOR;作者: A120 时间: 2005-5-11 10:36