搜索
bottom↓
回复: 39

求助,用VHDL语言设计一个数字钟系统(实训)

[复制链接]

出0入0汤圆

发表于 2013-6-24 10:28:17 | 显示全部楼层 |阅读模式
如题,虽然我对51单片机算是入门了,成功做了2辆智能小车,但我对FPGA一点都不懂;上课的时候不是逃课就是按照老师的意思抄写代码,然后调试,真不是滋味;实验箱有40多份,我还没摸过呢(老师都不给),更别说用了;求助大神们帮个忙,题目如下:

2013春季学期EDA技术及应用实训任务

一、实训任务:
用VHDL语言设计一个数字钟系统
要求:
①该数字钟系统能正常显示时、分、秒;
②该数字钟系统能通过按键调整时、分;
③该数字钟系统可扩展显示日期、星期;
④该数字钟系统可设置闹钟;
二、实训目标:
1.熟练使用Quartus Ⅱ软件及VHDL语言的基本语句
2. 实践集成电路自顶向下的设计原则,理解数字系统的模块化设计
3. 在查找资料、翻阅参考书等过程中锻炼学生自主学习的能力
三、功能要求:
四、实训步骤:
1.查阅相关资料
2.参考查阅的资料,设计各功能模块
3.编写各模块的VHDL代码,并编译仿真
4.编写顶层文件,并编译仿真
5.器件编程,下载到实验箱,验证程序
5.撰写实训报告

最好有个注释(用于答辩)
实验箱芯片引脚都不知道,只知道是Cychone ii芯片 208个脚

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2013-6-24 10:34:32 | 显示全部楼层
自己先顶下

出0入0汤圆

发表于 2013-6-24 10:59:39 | 显示全部楼层
"5.器件编程,下载到实验箱,验证程序"
有目标板才知道如何显示啊
一般这样的实训 老师那都有程序

出0入0汤圆

 楼主| 发表于 2013-6-24 11:21:36 | 显示全部楼层
y595906642 发表于 2013-6-24 10:59
"5.器件编程,下载到实验箱,验证程序"
有目标板才知道如何显示啊
一般这样的实训 老师那都有程序{:biggrin ...

问题是老师都不给实验箱,要等到程序写出来之后才给,能不能给个仿真的,引脚到时可以换;老师那里肯定有阿,他明白就跟我们说了:“连程序都给你们,这叫实训吗?”;由于在做51单片机的项目,没时间啊,感觉学FPGA很渺茫,还不如精通51来得快,下学期12月就要出去了

出0入0汤圆

发表于 2013-6-24 12:16:55 | 显示全部楼层
多练习才是王道
LZ加油

出0入0汤圆

发表于 2013-6-24 12:35:15 | 显示全部楼层
你们老师瞎整吧 不给试验箱
那有没有告诉你们怎么显示?
要是不负责的老师 你又没兴趣 就最后抄抄算了

出0入0汤圆

 楼主| 发表于 2013-6-24 12:54:54 | 显示全部楼层
y595906642 发表于 2013-6-24 12:35
你们老师瞎整吧 不给试验箱
那有没有告诉你们怎么显示?
要是不负责的老师 你又没兴趣 就最后抄抄算了 ...

问题是怎么抄啊!你又不发上来

出0入0汤圆

发表于 2013-6-24 12:57:48 | 显示全部楼层
总会有人做出来的
没有实验板
不知道如何显示
程序怎么做呢?

出0入0汤圆

 楼主| 发表于 2013-6-24 13:00:56 | 显示全部楼层
我不知道FPGA这么强大,拿来做电子钟!

出0入0汤圆

发表于 2013-6-24 13:37:28 来自手机 | 显示全部楼层
自己用软件看时序 写完代码 仿真看时序 时序没问题 等到看到目标板时 再分配管脚。我课程设计就是这样做出来的,全是看时序分析。不用试验箱都可以。
这种程序 实训手册后面源代码 照着敲一份就好了 不行就找同学copy一份就好了 反正大家都一样

出0入0汤圆

 楼主| 发表于 2013-6-24 17:24:02 | 显示全部楼层
conandllu 发表于 2013-6-24 13:37
自己用软件看时序 写完代码 仿真看时序 时序没问题 等到看到目标板时 再分配管脚。我课程设计就是这样做出 ...

问题是我对VHDL语言一点都不懂啊

出0入0汤圆

 楼主| 发表于 2013-6-24 20:22:16 | 显示全部楼层
conandllu 发表于 2013-6-24 13:37
自己用软件看时序 写完代码 仿真看时序 时序没问题 等到看到目标板时 再分配管脚。我课程设计就是这样做出 ...

可是我对Quartus ii 9.0都不太懂啊,能不能发个数字钟上来呢,只要是FPGA的数字钟

出0入0汤圆

发表于 2013-6-24 22:04:03 | 显示全部楼层
哈哈哈,李鸿明,你这小子,老师看见了。

出0入0汤圆

 楼主| 发表于 2013-6-24 22:57:54 | 显示全部楼层
小小怪 发表于 2013-6-24 22:04
哈哈哈,李鸿明,你这小子,老师看见了。

什么情况?

出0入0汤圆

发表于 2013-6-24 23:12:56 | 显示全部楼层
没有硬件外设如何写代码.......

出0入0汤圆

发表于 2013-6-25 09:59:15 | 显示全部楼层
LZ,上Baidu吧,这里是amo。

出0入0汤圆

 楼主| 发表于 2013-6-25 21:23:05 | 显示全部楼层
fattian8321 发表于 2013-6-25 09:59
LZ,上Baidu吧,这里是amo。

大哥,百度能找得到的话,我就不在这里发帖了

出0入0汤圆

 楼主| 发表于 2013-6-26 12:59:35 | 显示全部楼层
深海烟花 发表于 2013-6-24 23:12
没有硬件外设如何写代码.......

硬件外设已经有了:IO口随便定义,因为是用杜邦线连数码管的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-6-26 13:05:34 | 显示全部楼层
有木有实例讲解,有注释的那种
难道FPGA移植就那么难吗?我看了整个论坛,都没见一个入门级的资料

出0入0汤圆

发表于 2013-6-26 13:11:36 | 显示全部楼层
数字时钟应该是FPGA入门的程序,一般课本上都有的。在看看课本吧。

出0入0汤圆

发表于 2013-6-26 13:12:35 | 显示全部楼层
中堂大人,你好!

出0入0汤圆

发表于 2013-6-26 13:14:22 | 显示全部楼层
时钟是最简单的FPGA应用,也就是分频器+译码器,你要是看不懂《数字电路》这本书,不能用CD4000或者74LS系列搭建一个时钟的话,还是别搞FPGA了。

出0入0汤圆

 楼主| 发表于 2013-6-26 13:20:57 | 显示全部楼层
hitler 发表于 2013-6-26 13:14
时钟是最简单的FPGA应用,也就是分频器+译码器,你要是看不懂《数字电路》这本书,不能用CD4000或者74LS系 ...

对啊,我对数字电路不熟悉,我都不想搞FPGA,也不是那的料;但要实训啊,所以求助啊
但我对单片机一见钟情的

出0入0汤圆

 楼主| 发表于 2013-6-26 13:22:51 | 显示全部楼层
90999 发表于 2013-6-26 13:12
中堂大人,你好!

我可不是李鸿章啊

出0入0汤圆

发表于 2013-6-26 13:26:29 | 显示全部楼层
搞不了就别搞,VHDL比神马单片机难多了,完全不是一个层次的东西。

出0入0汤圆

发表于 2013-6-26 13:28:47 | 显示全部楼层
大学老师总爱拿时钟来忽悠学生,伤不起

出0入0汤圆

 楼主| 发表于 2013-6-26 13:29:59 | 显示全部楼层
hitler 发表于 2013-6-26 13:26
搞不了就别搞,VHDL比神马单片机难多了,完全不是一个层次的东西。

我不想搞,我是被逼的;大神发个过来咧,

出0入17汤圆

发表于 2013-6-26 13:30:32 | 显示全部楼层
http://www.pudn.com/downloads58/ ... d/detail205103.html

我当年是拿这个链接的改的,他是用LCD显示的,你改一下,把数据输出并接到IO上控制七段译码管就好

出0入0汤圆

 楼主| 发表于 2013-6-26 13:35:27 | 显示全部楼层
流氓马 发表于 2013-6-26 13:30
http://www.pudn.com/downloads58/sourcecode/embed/detail205103.html

我当年是拿这个链接的改的,他是用 ...

怎么下载不了,能不能发到我QQ邮箱:2495290476,谢了

出0入17汤圆

发表于 2013-6-26 14:04:21 | 显示全部楼层
  1. LIBRARY IEEE;
  2. USE  IEEE.STD_LOGIC_1164.all;
  3. USE  IEEE.STD_LOGIC_ARITH.all;
  4. USE  IEEE.STD_LOGIC_UNSIGNED.all;
  5. -- This code displays time in the DE2's LCD Display
  6. -- Key2  resets time
  7. ENTITY DE2_CLOCK IS
  8.         PORT(reset, clk_50Mhz                                : IN        STD_LOGIC;
  9.                  LCD_RS, LCD_E, LCD_ON, RESET_LED, SEC_LED                : OUT        STD_LOGIC;
  10.                  LCD_RW                                                : BUFFER STD_LOGIC;
  11.                  DATA_BUS                                : INOUT        STD_LOGIC_VECTOR(7 DOWNTO 0));
  12. END DE2_CLOCK;

  13. ARCHITECTURE a OF DE2_CLOCK IS
  14.         TYPE STATE_TYPE IS (HOLD, FUNC_SET, DISPLAY_ON, MODE_SET, WRITE_CHAR1,
  15.         WRITE_CHAR2,WRITE_CHAR3,WRITE_CHAR4,WRITE_CHAR5,WRITE_CHAR6,WRITE_CHAR7,
  16.         WRITE_CHAR8, WRITE_CHAR9, WRITE_CHAR10, RETURN_HOME, TOGGLE_E, RESET1, RESET2,  
  17.         RESET3, DISPLAY_OFF, DISPLAY_CLEAR);
  18.         SIGNAL state, next_command: STATE_TYPE;
  19.         SIGNAL DATA_BUS_VALUE: STD_LOGIC_VECTOR(7 DOWNTO 0);
  20.         SIGNAL CLK_COUNT_400HZ: STD_LOGIC_VECTOR(19 DOWNTO 0);
  21.         SIGNAL CLK_COUNT_10HZ: STD_LOGIC_VECTOR(7 DOWNTO 0);
  22.         SIGNAL BCD_SECD0,BCD_SECD1,BCD_MIND0,BCD_MIND1: STD_LOGIC_VECTOR(3 DOWNTO 0);
  23.         SIGNAL BCD_HRD0,BCD_HRD1,BCD_TSEC: STD_LOGIC_VECTOR(3 DOWNTO 0);
  24.         SIGNAL CLK_400HZ, CLK_10HZ : STD_LOGIC;
  25. BEGIN
  26.         LCD_ON <= '1';
  27.         RESET_LED <= NOT RESET;
  28.         SEC_LED <= BCD_SECD0(0);
  29. -- BIDIRECTIONAL TRI STATE LCD DATA BUS
  30.         DATA_BUS <= DATA_BUS_VALUE WHEN LCD_RW = '0' ELSE "ZZZZZZZZ";

  31.         PROCESS
  32.         BEGIN
  33.          WAIT UNTIL CLK_50MHZ'EVENT AND CLK_50MHZ = '1';
  34.                 IF RESET = '0' THEN
  35.                  CLK_COUNT_400HZ <= X"00000";
  36.                  CLK_400HZ <= '0';
  37.                 ELSE
  38.                                 IF CLK_COUNT_400HZ < X"0F424" THEN  
  39.                                  CLK_COUNT_400HZ <= CLK_COUNT_400HZ + 1;
  40.                                 ELSE
  41.                              CLK_COUNT_400HZ <= X"00000";
  42.                                  CLK_400HZ <= NOT CLK_400HZ;
  43.                                 END IF;
  44.                 END IF;
  45.         END PROCESS;
  46.         PROCESS (CLK_400HZ, reset)
  47.         BEGIN
  48.                 IF reset = '0' THEN
  49.                         state <= RESET1;
  50.                         DATA_BUS_VALUE <= X"38";
  51.                         next_command <= RESET2;
  52.                         LCD_E <= '1';
  53.                         LCD_RS <= '0';
  54.                         LCD_RW <= '0';

  55.                 ELSIF CLK_400HZ'EVENT AND CLK_400HZ = '1' THEN
  56. -- GENERATE 1/10 SEC CLOCK SIGNAL FOR SECOND COUNT PROCESS
  57.                         IF CLK_COUNT_10HZ < 19 THEN
  58.                                 CLK_COUNT_10HZ <= CLK_COUNT_10HZ + 1;
  59.                         ELSE
  60.                                 CLK_COUNT_10HZ <= X"00";
  61.                                 CLK_10HZ <= NOT CLK_10HZ;
  62.                         END IF;
  63. -- SEND TIME TO LCD                         
  64.                         CASE state IS
  65. -- Set Function to 8-bit transfer and 2 line display with 5x8 Font size
  66. -- see Hitachi HD44780 family data sheet for LCD command and timing details
  67.                                 WHEN RESET1 =>
  68.                                                 LCD_E <= '1';
  69.                                                 LCD_RS <= '0';
  70.                                                 LCD_RW <= '0';
  71.                                                 DATA_BUS_VALUE <= X"38";
  72.                                                 state <= TOGGLE_E;
  73.                                                 next_command <= RESET2;
  74.                                 WHEN RESET2 =>
  75.                                                 LCD_E <= '1';
  76.                                                 LCD_RS <= '0';
  77.                                                 LCD_RW <= '0';
  78.                                                 DATA_BUS_VALUE <= X"38";
  79.                                                 state <= TOGGLE_E;
  80.                                                 next_command <= RESET3;
  81.                                 WHEN RESET3 =>
  82.                                                 LCD_E <= '1';
  83.                                                 LCD_RS <= '0';
  84.                                                 LCD_RW <= '0';
  85.                                                 DATA_BUS_VALUE <= X"38";
  86.                                                 state <= TOGGLE_E;
  87.                                                 next_command <= FUNC_SET;
  88. -- EXTRA STATES ABOVE ARE NEEDED FOR RELIABLE PUSHBUTTON RESET OF LCD
  89.                                 WHEN FUNC_SET =>
  90.                                                 LCD_E <= '1';
  91.                                                 LCD_RS <= '0';
  92.                                                 LCD_RW <= '0';
  93.                                                 DATA_BUS_VALUE <= X"38";
  94.                                                 state <= TOGGLE_E;
  95.                                                 next_command <= DISPLAY_OFF;
  96. -- Turn off Display and Turn off cursor
  97.                                 WHEN DISPLAY_OFF =>
  98.                                                 LCD_E <= '1';
  99.                                                 LCD_RS <= '0';
  100.                                                 LCD_RW <= '0';
  101.                                                 DATA_BUS_VALUE <= X"08";
  102.                                                 state <= TOGGLE_E;
  103.                                                 next_command <= DISPLAY_CLEAR;
  104. -- Turn on Display and Turn off cursor
  105.                                 WHEN DISPLAY_CLEAR =>
  106.                                                 LCD_E <= '1';
  107.                                                 LCD_RS <= '0';
  108.                                                 LCD_RW <= '0';
  109.                                                 DATA_BUS_VALUE <= X"01";
  110.                                                 state <= TOGGLE_E;
  111.                                                 next_command <= DISPLAY_ON;
  112. -- Turn on Display and Turn off cursor
  113.                                 WHEN DISPLAY_ON =>
  114.                                                 LCD_E <= '1';
  115.                                                 LCD_RS <= '0';
  116.                                                 LCD_RW <= '0';
  117.                                                 DATA_BUS_VALUE <= X"0C";
  118.                                                 state <= TOGGLE_E;
  119.                                                 next_command <= MODE_SET;
  120. -- Set write mode to auto increment address and move cursor to the right
  121.                                 WHEN MODE_SET =>
  122.                                                 LCD_E <= '1';
  123.                                                 LCD_RS <= '0';
  124.                                                 LCD_RW <= '0';
  125.                                                 DATA_BUS_VALUE <= X"06";
  126.                                                 state <= TOGGLE_E;
  127.                                                 next_command <= WRITE_CHAR1;
  128. -- Write ASCII hex character in first LCD character location
  129.                                 WHEN WRITE_CHAR1 =>
  130.                                                 LCD_E <= '1';
  131.                                                 LCD_RS <= '1';
  132.                                                 LCD_RW <= '0';
  133.                                                 DATA_BUS_VALUE <= X"3" & BCD_HRD1;
  134.                                                 state <= TOGGLE_E;
  135.                                                 next_command <= WRITE_CHAR2;
  136. -- Write ASCII hex character in second LCD character location
  137.                                 WHEN WRITE_CHAR2 =>
  138.                                                 LCD_E <= '1';
  139.                                                 LCD_RS <= '1';
  140.                                                 LCD_RW <= '0';
  141.                                                 DATA_BUS_VALUE <= X"3" & BCD_HRD0;
  142.                                                 state <= TOGGLE_E;
  143.                                                 next_command <= WRITE_CHAR3;
  144. -- Write ASCII hex character in third LCD character location
  145.                                 WHEN WRITE_CHAR3 =>
  146.                                                 LCD_E <= '1';
  147.                                                 LCD_RS <= '1';
  148.                                                 LCD_RW <= '0';
  149.                                                 DATA_BUS_VALUE <= X"3A" ;
  150.                                                 state <= TOGGLE_E;
  151.                                                 next_command <= WRITE_CHAR4;
  152. -- Write ASCII hex character in fourth LCD character location
  153.                                 WHEN WRITE_CHAR4 =>
  154.                                                 LCD_E <= '1';
  155.                                                 LCD_RS <= '1';
  156.                                                 LCD_RW <= '0';
  157.                                                 DATA_BUS_VALUE <= X"3" & BCD_MIND1;
  158.                                                 state <= TOGGLE_E;
  159.                                                 next_command <= WRITE_CHAR5;
  160. -- Write ASCII hex character in fifth LCD character location
  161.                                 WHEN WRITE_CHAR5 =>
  162.                                                 LCD_E <= '1';
  163.                                                 LCD_RS <= '1';
  164.                                                 LCD_RW <= '0';
  165.                                                 DATA_BUS_VALUE <= X"3" & BCD_MIND0;
  166.                                                 state <= TOGGLE_E;
  167.                                                 next_command <= WRITE_CHAR6;
  168. -- Write ASCII hex character in sixth LCD character location
  169.                                 WHEN WRITE_CHAR6 =>
  170.                                                 LCD_E <= '1';
  171.                                                 LCD_RS <= '1';
  172.                                                 LCD_RW <= '0';
  173.                                                 DATA_BUS_VALUE <= X"3A" ;
  174.                                                 state <= TOGGLE_E;
  175.                                                 next_command <= WRITE_CHAR7;
  176. -- Write ASCII hex character in seventh LCD character location
  177.                                 WHEN WRITE_CHAR7 =>
  178.                                                 LCD_E <= '1';
  179.                                                 LCD_RS <= '1';
  180.                                                 LCD_RW <= '0';
  181.                                                 DATA_BUS_VALUE <= X"3" & BCD_SECD1;
  182.                                                 state <= TOGGLE_E;
  183.                                                 next_command <= WRITE_CHAR8;
  184. -- Write ASCII hex character in eighth LCD character location
  185.                                 WHEN WRITE_CHAR8 =>
  186.                                                 LCD_E <= '1';
  187.                                                 LCD_RS <= '1';
  188.                                                 LCD_RW <= '0';
  189.                                                 DATA_BUS_VALUE <= X"3" & BCD_SECD0;
  190.                                                 state <= TOGGLE_E;
  191.                                                 next_command <= WRITE_CHAR9;
  192.                                 WHEN WRITE_CHAR9 =>
  193.                                                 LCD_E <= '1';
  194.                                                 LCD_RS <= '1';
  195.                                                 LCD_RW <= '0';
  196.                                                 DATA_BUS_VALUE <= X"2E";
  197.                                                 state <= TOGGLE_E;
  198.                                                 next_command <= WRITE_CHAR10;
  199.                                 WHEN WRITE_CHAR10 =>
  200.                                                 LCD_E <= '1';
  201.                                                 LCD_RS <= '1';
  202.                                                 LCD_RW <= '0';
  203.                                                 DATA_BUS_VALUE <= X"3" & BCD_TSEC;
  204.                                                 state <= TOGGLE_E;
  205.                                                 next_command <= RETURN_HOME;

  206. -- Return write address to first character postion
  207.                                 WHEN RETURN_HOME =>
  208.                                                 LCD_E <= '1';
  209.                                                 LCD_RS <= '0';
  210.                                                 LCD_RW <= '0';
  211.                                                 DATA_BUS_VALUE <= X"80";
  212.                                                 state <= TOGGLE_E;
  213.                                                 next_command <= WRITE_CHAR1;
  214. -- The next two states occur at the end of each command to the LCD
  215. -- Toggle E line - falling edge loads inst/data to LCD controller
  216.                                 WHEN TOGGLE_E =>
  217.                                                 LCD_E <= '0';
  218.                                                 state <= HOLD;
  219. -- Hold LCD inst/data valid after falling edge of E line                                 
  220.                                 WHEN HOLD =>
  221.                                                 state <= next_command;
  222.                         END CASE;
  223.                 END IF;
  224.         END PROCESS;
  225.         PROCESS (Clk_10hz, reset)
  226.         BEGIN
  227.                 IF reset = '0' THEN         
  228.                         BCD_HRD1 <= X"0";                         
  229.                         BCD_HRD0 <= X"0";
  230.                         BCD_MIND1 <= X"0";
  231.                         BCD_MIND0 <= X"0";
  232.                         BCD_SECD1 <= X"0";
  233.                         BCD_SECD0 <= X"0";
  234.                         BCD_TSEC  <= X"0";

  235.                 ELSIF clk_10HZ'EVENT AND clk_10HZ = '1' THEN
  236. -- TENTHS OF SECONDS
  237.                 IF BCD_TSEC < 9 THEN
  238.                  BCD_TSEC <= BCD_TSEC + 1;
  239.                 ELSE
  240.                  BCD_TSEC <= X"0";
  241. -- SECONDS
  242.                 IF BCD_SECD0 < 9 THEN
  243.                   BCD_SECD0 <= BCD_SECD0 + 1;
  244.                 ELSE
  245. -- TENS OF SECONDS
  246.                  BCD_SECD0 <= "0000";
  247.                    IF BCD_SECD1 < 5 THEN
  248.                    BCD_SECD1 <= BCD_SECD1 + 1;
  249.                   ELSE
  250. -- MINUTES
  251.                    BCD_SECD1 <= "0000";
  252.                    IF BCD_MIND0 < 9 THEN
  253.                      BCD_MIND0 <= BCD_MIND0 + 1;
  254.                    ELSE
  255. -- TENS OF MINUTES
  256.                      BCD_MIND0 <= "0000";
  257.                      IF BCD_MIND1 < 5 THEN
  258.                BCD_MIND1 <= BCD_MIND1 + 1;
  259.                      ELSE
  260. -- HOURS
  261.                     BCD_MIND1 <= "0000";
  262.                     IF BCD_HRD0 < 9 AND NOT((BCD_HRD1 = 2) AND (BCD_HRD0 = 3))THEN
  263.                       BCD_HRD0 <= BCD_HRD0 + 1;
  264.                     ELSE
  265. -- TENS OF HOURS
  266.                       IF NOT((BCD_HRD1 = 2) AND (BCD_HRD0 = 3)) THEN
  267.                         BCD_HRD1 <= BCD_HRD1 + 1;
  268.                         BCD_HRD0 <= "0000";
  269.                       ELSE
  270. -- NEW DAY
  271.                        BCD_HRD1 <= "0000";
  272.                    BCD_HRD0 <= "0000";
  273.                  END IF;
  274.            END IF;
  275.           END IF;
  276.          END IF;
  277.         END IF;
  278.        END IF;
  279.          END IF;
  280.         END IF;
  281. END PROCESS;
  282. END a;
复制代码

出0入17汤圆

发表于 2013-6-26 14:04:58 | 显示全部楼层
我也下载不了,但是VHDL文件可以打开看

出0入0汤圆

 楼主| 发表于 2013-6-26 14:16:04 | 显示全部楼层
流氓马 发表于 2013-6-26 14:04
我也下载不了,但是VHDL文件可以打开看

非常感谢!我改下看看

出0入0汤圆

 楼主| 发表于 2013-6-27 16:47:52 | 显示全部楼层
流氓马 发表于 2013-6-26 13:30
http://www.pudn.com/downloads58/sourcecode/embed/detail205103.html

我当年是拿这个链接的改的,他是用 ...

我改了,不成功啊,改得头晕转向;你不是改了吗?贴上来咧

出0入0汤圆

发表于 2013-6-27 19:55:58 | 显示全部楼层
李鸿鸿 发表于 2013-6-24 22:57
什么情况?

我写好了,再上传我的,虽然方法繁杂,但是,就差一个要求了

出0入0汤圆

 楼主| 发表于 2013-6-27 22:40:43 | 显示全部楼层
小小怪 发表于 2013-6-27 19:55
我写好了,再上传我的,虽然方法繁杂,但是,就差一个要求了

是吗?明天要你的哦,我只要满足第一个要求

出0入0汤圆

发表于 2013-7-8 23:31:43 | 显示全部楼层
wildone 发表于 2013-6-26 13:28
大学老师总爱拿时钟来忽悠学生,伤不起

这不算忽悠,能自己用VHDL设计一个时钟,这个数字电路设计算是入门了,不过撸主显然是应付差事。

出0入0汤圆

发表于 2013-7-8 23:36:56 | 显示全部楼层
我想说的是---没实体也是可以仿真的

出0入0汤圆

发表于 2013-7-9 21:05:27 | 显示全部楼层
帮顶。。。。。。。。

出0入0汤圆

发表于 2013-12-19 18:00:07 | 显示全部楼层
厉害啊啊

出0入0汤圆

发表于 2013-12-21 00:07:02 | 显示全部楼层
小小怪 发表于 2013-6-27 19:55
我写好了,再上传我的,虽然方法繁杂,但是,就差一个要求了

大神 数字钟还有吗
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 05:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表