求高手用EDA帮忙做一题~用VHDL语言设计12进制计数器~ 30

用VHDL语言设计12进制计数器,功能要求:可异步清零,逢12进1,计数到11产生进位信号。设计要求:编译、仿真、引脚配置、重新编译。... 用VHDL语言设计12进制计数器,
功能要求:可异步清零,逢12进1,计数到11产生进位信号。
设计要求:编译、仿真、引脚配置、重新编译。
展开
 我来答
十二小妖爱追剧
推荐于2018-03-08
知道答主
回答量:23
采纳率:100%
帮助的人:12.3万
展开全部
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_unsigned.all;
ENTITY UPCOUNTER1_10 IS
PORT(CLK,CLR,EN:IN STD_LOGIC;--时钟输入,异步清零,同步使能;
Y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--4位输出;
CO:OUT STD_LOGIC);--高位进位;
END UPCOUNTER1_10;

ARCHITECTURE ART OF UPCOUNTER1_10 IS
SIGNAL X:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(CLK,CLR,EN)
BEGIN
IF CLR='1'THEN X<="0000";
else IF clk'event and clk='1' then
IF EN='1'then x<=x+1;
if x<11 then x<=x+1;co<='0';
else x<="0000";co<='1';
end if;
END IF;
END IF;
END IF;
Y<=X;
END PROCESS;
END ART;

考虑到引脚配置,得根据你实际情况来看,我们的试验箱有好几个模式,每个模式对应的引脚配置是不同的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
意法半导体(中国)投资有限公司
2023-06-12 广告
《单片机原理及应用》是2010年9月由电子工业出版社出版的图书,作者是张友渔。本书系统全面地介绍了80C51单片机的基本原理、硬件结构、指令系统,并从应用的角度介绍了汇编语言程序设计、单片机外部电路的扩展,以及与键盘、LED显示、LCD显示... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
fangmin1990031
2011-04-23
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
library ieee;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_arith.all;

entity counter_n is
port(data : in std_logic;
load, en, clk, rst,d : in std_logic;
q : out std_logic_vector (3 downto 0));
end counter_n;

architecture behave of counter_n is
signal count : std_logic_vector (3 downto 0);
begin
process(clk, rst)
begin
if rst = '1' then
count <= “0000”;
elsif
clk’event and clk = ‘1’ then
if count=“1010”then
count <= 0;
d<=1;
elsif en = '1' then
count <= count + 1;
end if;
end if;
end process;
q <= count;
end behave;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ly20100808
2011-04-23
知道答主
回答量:18
采纳率:0%
帮助的人:9.6万
展开全部
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_unsigned.all;
ENTITY UPCOUNTER1_10 IS
PORT(
CLK,CLR,EN:IN STD_LOGIC;
Y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
CO:OUT STD_LOGIC;
);
END UPCOUNTER1_10;
ARCHITECTURE ART OF UPCOUNTER1_10 IS
BEGIN
PROCESS(CLK,CLR,EN,A)
SIGNAL X:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
IF CLR='1'THEN
X<="0000";
ELSE IF EN='1'
THEN X<=A;
ELSE IF clk'event and clk='1' then
IF X="1001"THEN
X<="0000";
ELSE X<=X+'1';
END IF;
END IF;
END IF;
END IF;
Y<=X;
END PROCESS;
END ART;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1046418595
2011-04-24
知道答主
回答量:4
采纳率:0%
帮助的人:3.3万
展开全部
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity count12 is
port(clk:in std_logic;
reset :in std_logic;
co:out std_logic;
output1: out std_logic_vector( 3 downto 0));
end entity;

architecture action of count12 is
begin
process(clk)
variable tmp:integer range 0 to 11;
begin
if(clk'event and clk='1')then
if(tmp<12)then
tmp:=tmp+1;
else
tmp:=0;
end if;
case tmp is
when 0=>output1<="0000";
when 1=>output1<="0001";
when 2=>output1<="0010";
when 3=>output1<="0011";
when 4=>output1<="0100";
when 5=>output1<="0101";
when 6=>output1<="0110";
when 7=>output1<="0111";
when 8=>output1<="1000";
when 9=>output1<="1001";
when 10=>output1<="1010";
when 11=>output1<="1011";
when others=>output1<="0000";
end case;
if(tmp=11)then
co<='1';
else
co<='0';
end if;
if(reset='1')then
output1<="0000";
tmp:=0;
end if;
end if;
end process;
end action;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式