zai121 发表于 2009-5-20 15:37:01

有报酬 请高手给看看这些程序 给注释下

触发器一   COMPONENT dff1:设计有置位端pset,没有清零端clr
LIBRARY IEEE;
USE IEEE STD_LOGIC_1164.ALL;
ENTITY dff1 IS
            PORT(clk,d,pset:IN STD_LOGIC;
                q1,q2:OUT STD_LOGIC);
END dff1;
ARCHITECTURE rtl OF dff1 IS
BEGIN
            PROCESS(clk,pset)
            BEGIN
                  IF(pset ='0')THEN
                      q1<='1';
                      q2<='0';
                  ELSIF (clk='0' AND clk='1')THEN
                      q1<=d;
                      q2<=NOT d;
                  END IF;
                END PROCESS;
END rtl;


触发器二   COMPONENT dff2:设计有清零端clr,没有置位端pset
LIBRARY IEEE;
USE IEEE STD_LOGIC_1164.ALL;
ENTITY dff2 IS
            PORT(clk,d,reset:IN STD_LOGIC;
                   q1,q2:OUT STD_LOGIC);
END dff2;
ARCHITECTURE rtl OF dff2 IS
BEGIN
               PROCESS(clk,reset)
                  BEGIN
                  IF(pset ='0')THEN
                     q1<='0';
                     q2<='1';
                     ELSIF (clk='0' AND clk='1')THEN
                        q1<=d;
                        q2<=NOT d;
                     END IF;
                  END PROCESS;
END rtl;
八循环移位寄存器:
LIBRARY IEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITY shift IS
                  PORT (clk,reset:IN STD_LOGIC;
                  Q:OUT STD_LOGIC_VECTOR (4 DOWNTO 0));
                  END shift;
ARCHITECTUREgen_shift OF shift IS
                  COMPONENT dff1
                  PORT (d,clk,pset:IN STD_LOGIC;
                        q0:OUT STD_LOGIC);
                   END COMPONENT;
                  COMPONENT         dff2
                   PORT (d,clk,clr:IN STD_LOGIC;
                      q0:OUT STD_LOGIC);
                   END COMPONENT;
                  SIGNALz:STD_LOGIC_VECTOR (4 DOWNTO 0);
BEGIN
                   u1:dff1 PORT MAP (z(4),clk,reset,z(0));
                   go: FOR i IN 0 TO 3 GENERATE
                   u2:dff2PORT MAP (z(i),clk,reset,z(i+1));
                   END GENERATE;
                   g1:FOR j IN 0 TO 4 GENERATE
                   Q(j)<=z(j);
                   END GENERATE;
END gen_shift;

Cliff 发表于 2009-5-20 16:12:37

注释一下??!!
先给你画个大叉

你这程序哪里来的?
不会是回家作业吧?
自己不会做,抄了同学的?
你可知道你抄的这位同学,答案也做错了?

zai121 发表于 2009-5-20 16:59:28

请大侠指导下啊

zgq800712 发表于 2009-5-23 09:19:40

你把程序编译一下看看对不对再开仿真;错误的程序

zgq800712 发表于 2009-5-23 09:24:24

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY dff1 IS
            PORT(clk,d,pset:IN STD_LOGIC;--定义端口
                q1,q2:OUT STD_LOGIC);
END dff1;
ARCHITECTURE rtl OF dff1 IS
BEGIN
            PROCESS(clk,pset)             --敏感列表
            BEGIN
                  IF(pset ='0')THEN      --如果pset=0 ,则q1输出1 q2输出0
                      q1<='1';
                      q2<='0';
                  ELSIF (clk'event AND clk='1')THEN-- 否则即pset=1 q1输出d值,q2输出d的非值
                      q1<=d;
                      q2<=NOT d;
                  END IF;
                END PROCESS;
END rtl;                           --功能: 带正反相(q1,q2)输出可置位(pset)的D触发器,
                                     --当置位信号有效(0)时,q1输出1,q2输出0;                                 
                                     --否者(即pset无效 即1) q1输出输入端d的值,q2输出输入端d的非值;



LIBRARY IEEE;                         --这个根本没有清零 还是异步置位;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY dff2 IS
            PORT(clk,d,reset:IN STD_LOGIC;
                   q1,q2:OUT STD_LOGIC);
END dff2;
ARCHITECTURE rtl OF dff2 IS
BEGIN
               PROCESS(clk,reset)
                  BEGIN
                  IF(reset ='0')THEN   
                     q1<='0';
                     q2<='1';
                     ELSIF (clk'event AND clk='1')THEN
                        q1<=d;
                        q2<=NOT d;
                     END IF;
                  END PROCESS;
END rtl;

上面2个代码没有问题,置位后的值不一样,01和10

new007 发表于 2009-5-23 09:32:58

四楼代码看上去没问题

honami520 发表于 2009-5-23 13:28:42

呵呵,这个时候,要给报酬的注释代码,肯定是毕业设计咯!

zai121 发表于 2009-5-26 07:38:59

是啊

zai121 发表于 2009-5-26 07:43:08

四楼的大哥怎么能联系你啊 指点小弟下啊 547924947我的QQ 如果可以加我下

fsclub 发表于 2009-5-26 10:23:02

不要帮这种人。
页: [1]
查看完整版本: 有报酬 请高手给看看这些程序 给注释下