求高手用EDA帮忙做一题~用VHDL语言设计12进制计数器~
同学,你的问题我看了下,联系不上你,百度知道不让我留QQ,看我的个人资料联系我吧,我会给你详细解答的,我这里有很多范文的,你可以参照的,记得给分哈
这是60进制:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNT10 IS
PORT (CLK,RST,EN : IN STD_LOGIC;
CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT : OUT STD_LOGIC );
END CNT10;
ARCHITECTURE behav OF CNT10 IS
BEGIN
PROCESS(CLK, RST, EN)
VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
IF RST = '1' THEN CQI := (OTHERS =>'0') ; --计数器异步复位
ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿
IF EN = '1' THEN --检测是否允许计数(同步使能)
IF CQI < 9 THEN CQI := CQI + 1; --允许计数, 检测是否小于9
ELSE CQI := (OTHERS =>'0'); --大于9,计数值清零
END IF;
END IF;
END IF;
IF CLK'EVENT AND CLK='1' THEN
IF CQI = 9 THEN COUT <= '1'; --计数大于9,输出进位信号
ELSE COUT <= '0';
END IF;
END IF;
CQ <= CQI; --将计数值向端口输出
END PROCESS;
END behav;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNT6 IS
PORT (CLK1,RST1,EN1 : IN STD_LOGIC;
CQ1: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
COUT1 : OUT STD_LOGIC );
END CNT6;
ARCHITECTURE behav OF CNT6 IS
BEGIN
PROCESS(CLK1, RST1, EN1)
VARIABLE CQI : STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
IF RST1 = '1' THEN CQI := (OTHERS =>'0') ; --计数器异步复位
ELSIF CLK1'EVENT AND CLK1='1' THEN --检测时钟上升沿
IF EN1 = '1' THEN --检测是否允许计数(同步使能)
IF CQI < 5 THEN CQI := CQI + 1; --允许计数, 检测是否小于5
ELSE CQI := (OTHERS =>'0'); --大于5,计数值清零 END IF;
END IF;
END IF;
IF CLK1'EVENT AND CLK1='1' THEN
IF CQI = 5 THEN COUT1 <= '1'; --计数大于5,输出进位信号
ELSE COUT1 <= '0';
END IF;
END IF;
CQ1 <= CQI; --将计数值向端口输出
END PROCESS;
END behav;
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY CNT60 IS
PORT ( CLK0,RST0,EN0 : IN STD_LOGIC;
COUT2: OUT STD_LOGIC;
LED1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
LED2 : OUT STD_LOGIC_VECTOR(2 DOWNTO 0) );
END ;
ARCHITECTURE one OF CNT60 IS
COMPONENT CNT10
PORT (CLK,RST,EN : IN STD_LOGIC;
CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT : OUT STD_LOGIC );
END COMPONENT ;
COMPONENT CNT6
PORT (CLK1,RST1,EN1 : IN STD_LOGIC;
CQ1: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
COUT1 : OUT STD_LOGIC );
END COMPONENT ;
SIGNAL COUT0:STD_LOGIC;
BEGIN
u1:CNT10 PORT MAP
(CLK=>CLK0,
RST=>RST0,
EN=>EN0,
COUT=>COUT0,
CQ=>LED1);
u2:CNT6 PORT MAP
(CLK1=>COUT0,
RST1=>RST0,
EN1=>EN0,
COUT1=>COUT2,
CQ1=>LED2);
END ARCHITECTURE one;
这是12进制:
LIBRARY IEEE;
use IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNT12 IS
PORT(clk9,reset,en9:IN STD_LOGIC;
daout:out STD_LOGIC_VECTOR(5 DOWNTO 0));
END ENTITY CNT12;
ARCHITECTURE fun OF CNT12 IS
SIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0);
BEGIN
daout<=count;
PROCESS(clk9,reset,en9)
BEGIN
IF(reset='1')THEN count<="000000"; --若reset=1,则异步清零
ELSIF(clk9'event and clk9='1')THEN --否则,若clk上升沿到
IF en9='1' THEN
IF(count(3 DOWNTO 0)="1001")THEN --若个位计时恰好到"1001"即
IF(count<16#11#)THEN --11进制
count<=count+7; --若到11D则
else
count<="000000"; --复0
END IF;
ELSIF (count<16#11#)THEN --若未到11D,则count进1
count<=count+1;
ELSE --否则清零
count<="000000";
END IF;
END IF; --END IF(count(3 DOWNTO 0)="1001")
END IF; --END IF(reset='1')
END PROCESS;
END fun;
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;
考虑到引脚配置,得根据你实际情况来看,我们的试验箱有好几个模式,每个模式对应的引脚配置是不同的。
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;
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;
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;
求高手用EDA帮忙做一题~用VHDL语言设计12进制计数器~
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 UPCOUNTER...
有没有EDA高手帮一下忙,把下面的程序解释一下,要详细些。每一行添加注释...
module contr_1(lod,clk,aq,qa,d);\/\/模块开始 input[7:0]aq;\/\/输入单字节aq inputclk;\/\/输入时钟信号 output reg[7:0] qa;\/\/输出8为寄存器类型 output reg[11:0]d;\/\/输出12位寄存器类型 output reg lod;\/\/输出寄存器类型 reg [1:0]qc;\/\/2为寄存器类型qc initial begin qa='h19;...
EDA高手进来,帮忙用VHDL语言写一个方波信号发生器,要求实现调频和找空...
本设计有5个模块组成,其中有:方波发生器,三角波发生器,正弦波发生器,阶梯波发生器,4选1选择器。下面是我设计的整个过程:方波发生器:实质上是一段时间输出0,一段时间输出255的数字信号,当然这有8位的通道输出。程序设计如下:--工程名:方波发生器 --功能:产生方波,是通过交替送出全0和全...
求一个EDA高手帮我设计一个四位二进制计数器带复位的 谢谢 急~~~_百 ...
library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt is port(clk ,rst,ena: in std_logic;q : out std_logic_vector(3 downto 0);cout:out std_logic);end cnt;architecture one of cnt is signal cqi : std_logic_vector(3 downto 0):="0000";...
有没有EDA高手帮一下忙,把下面的程序解释一下,要详细些。每一行添加注释...
USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;--库,程序包的使用 ENTITYSRAM IS --实体描述(SRAM为实体名)GENERIC(WIDTH:INTEGER:=8;--类属表(integer是整型,WIDTH为常数名)DEPTH:INTEGER:=128;--类比上一句即可 ADDER:INTEGER:=3);PORT(DATAIN:IN STD_LOGIC_VECTOR(7...
求高手帮忙 关于“EDA 2选1多路选择器”
module 2sel1(y,s,a,b);input a,b,s;output y;reg y;assign y=s?a:b;endmodule 代码就是这样,你自己编译一下就完了。波形图很简单,S端为1就输出a,S端为0就输出b。
EDA课程设计,用VHDL编程做出租车计费器
EDA课程设计,用VHDL编程做出租车计费器 要求:1、及格:用开关按键表示脉冲,每个脉冲代表100米,10个脉冲1公里,每公里1.4元,能够同步显示里程和费用;2、中:低于2公里5元计费,高于2公里总费用=起步费用+(里程-2公里... 要求:1、及格:用开关按键表示脉冲,每个脉冲代表100米,10个脉冲1公里,每公里1.4元,能够同步...
EDA问题,高手回答,急!
一、Multisim 全功能电路仿真系统:零件 编辑、选取、放置 电路图编辑、绘制 电路工作状况测试 电路特性分析 电路图报表输出、打印 档案转出\/入 二、Multisim 是一完整的系统设计工具, 其强大功 能包含:结合SPICE、VHDL共同仿真 电路图建立 完整的零件库 SPICE仿真 高阶RF设计功能 虚拟仪器测试及分析功能...
跪求用EDA Verilog HDL语言编写的8位电子密码锁源程序 (quartus II...
本文介绍的基于FPGA的语音密码锁电路具有显示接口,显示时可以是明文也可以是密文星号。由于FPGA具有ISP功能,当用户需要更改时,如增加口令位数和更改口令权限管理时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路,这就大大提高了设计效率。而且采用FPGA...
EDA高手进,如何画SW-PB和SW SPDT的PCB封装,加载到pcb1ilb.pcb文件,能...
1.你所说的SW封装我没怎么用过,但是要是有实物最好按实物来画一个。只要画出大概的平面外形和焊盘就可以了。2.单片机的脚距这个谁也说不准,你说得太笼统了,不好回答!所以建议你看MCU的资料来确定吧 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位输...
维西傈僳族自治县18594887605: EDA问题,求一个用VHDL(.v文件)写的实现加减乘除的十进制计算器,不要用process语句,求大神 - ?
源谭聚肌: vhdl文件的后缀是.vhd,Verilog的是.v
维西傈僳族自治县18594887605: EDA高手进来,帮忙用VHDL语言写一个可控正弦信号发生器.有完整论文更好 - ?
源谭聚肌: 你这个可以用模拟图实现的 无需写程序 给个参考你吧 本设计有5个模块组成,其中有:方波发生器,三角波发生器,正弦波发生器,阶梯波发生器,4选1选择器.下面是我设计的整个过程:方波发生器:实质上是一段时间输出0,一段时间输出...
维西傈僳族自治县18594887605: EDA技术VHDL程序填空:带进位的十进制加法器.有几个空不会填 求高手帮助.多谢多谢 - ?
源谭聚肌: SIGNAL BCDT:_____________RANGE 0 TO 15——INTEGER IF CLR='1'THEN________;——CY<='0' BCD<='0' IF BCDT/=9THEN _______________;——BCDT<=BCDT+1 END PROCESS; _____________;——BCD<=BCDT
维西傈僳族自治县18594887605: 求数字电路或者eda高手帮忙 有道题不会?
源谭聚肌: 可以加一个计数器,计数8次进行清零,依次完成8个数码管的选通,从而完成一次循环,重新计数,开始新的循环. 时钟扫描频率应该是刷新的8倍,整个刷新一次是t=0.01s,那计数已计了8次,t1=t/8,,,,,频率f1=8f
维西傈僳族自治县18594887605: 求EDA高手?
源谭聚肌:10110101序列信号发生器.vhd library IEEE; use IEEE.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity count8 is port ( r: in std_logic; clk: in STD_LOGIC; cout: out std_logic ); end count8; architecture count8_arch of count8 is signal dd: std...
维西傈僳族自治县18594887605: 求高手帮忙编一段EDA程序,数字钟的 - ?
源谭聚肌: //以下代码只包含分和秒,如果需要小时,可自行添加 module clock(clk,dig_r,seg_r); input clk; output [7:0]dig_r; output [7:0]seg_r; reg sec; reg [7:0]dig_r; reg [7:0]seg_r; reg [24:0]count; reg [15:0]hour; reg [3:0]disp_dat; always @(posedge clk) begin...
维西傈僳族自治县18594887605: 求一个EDA高手帮我设计一个四位二进制计数器带复位的 谢谢 急~~~~ - ?
源谭聚肌: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt isport(clk ,rst,ena: in std_logic;q : out std_logic_vector(3 downto 0); cout:out std_logic); end cnt; architecture one of cnt issignal cqi : std_logic_vector(3...
维西傈僳族自治县18594887605: 求高手解答:试比较(EDA技术)VHDL图形输入法和文本输入法有何优缺点??
源谭聚肌: 比如说状态机吧,若用图形输入的话,需要比较繁琐的转化,转化成基本原件的连线很是耗时,若用文本输入的话,思路比较清晰,分析起来很简单! 一般功能描述用文本输入法,逻辑描述用图形文件比较好
维西傈僳族自治县18594887605: 我现在要写一份EDA做的交通灯的实验,现在不会写报告,请各位高手指点,模型或样板都行,类似就行 - ?
源谭聚肌: (一):设计题目及要求 主干道与乡村公路十字交叉路口在现代化的农村星罗棋布.图2为某十字路口交通灯与传感器运行示意图.设计交通灯控制系统,用以管理十字路口的车辆通行.具体要求: (1)主干道车辆通行有优先权,当乡间公路...