问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VHDL 程序设计: 输入两个5位二进制数,要求在7段4位数码管上以十...

发布网友 发布时间:2023-12-28 04:51

我来回答

1个回答

热心网友 时间:2024-07-23 17:43

你要的程序应该是下面这样,分频没有做进去,逆的也没有做进去。
此程序已经经过Quartus13.0sp1翻译过了。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Zaehler is port(
clk : in std_logic;
a,b : in std_logic_vector (4 downto 0);
s0 : out std_logic_vector(6 downto 0);
s1 : out std_logic_vector(6 downto 0);
s2 : out std_logic_vector(6 downto 0);
s3 : out std_logic_vector(6 downto 0)
);
end Zaehler;

architecture logik of Zaehler is

--函数开始:将二进制数进行转化

function int_bin ( bin : std_logic_vector(4 downto 0) ) return std_logic_vector is
variable i : integer:=0;
variable bcd : std_logic_vector(7 downto 0) := (others => '0');
variable bint : std_logic_vector(4 downto 0) := bin;
begin
for i in 0 to 4 loop
bcd(7 downto 1) := bcd(6 downto 0);
bcd(0) := bint(4);
bint(4 downto 1) := bint(3 downto 0);
bint(0) :='0';

if(i < 4 and bcd(3 downto 0) > "0100") then
bcd(3 downto 0) := bcd(3 downto 0) + "0011";
end if;

if(i < 4 and bcd(7 downto 4) > "0100") then
bcd(7 downto 4) := bcd(7 downto 4) + "0011";
end if;

end loop;
return bcd;
end int_bin;
--函数结束

--结构开始

signal p: std_logic_vector(4 downto 0):= b;

begin

Clock: process(clk, a, b, p)
begin
if (clk'event and clk ='1') then
if (p <= a) then p <= p+"00001";
else p <= b;
end if;
end if;
end process Clock;

Zaehlung: process(p)

variable pbcd: std_logic_vector(7 downto 0):= (others => '0');
variable s0p: std_logic_vector(3 downto 0):= (others => '0');
variable s1p: std_logic_vector(3 downto 0):= (others => '0');
begin
pbcd := int_bin(p);
s0p:= pbcd(3 downto 0);
s1p:= pbcd(7 downto 4);
s2 <= "1000000";
s3 <= "1000000";

case s0p is

when "0000" => s0 <= "1000000";
when "0001" => s0 <= "1111001";
when "0010" => s0 <= "0100100";
when "0011" => s0 <= "0110000";
when "0100" => s0 <= "0011001";
when "0101" => s0 <= "0010010";
when "0110" => s0 <= "0000010";
when "0111" => s0 <= "1111000";
when "1000" => s0 <= "0000000";
when "1001" => s0 <= "0010000";
when others => s0 <= "0001110";
end case;

case s1p is

when "0000" => s1 <= "1000000";
when "0001" => s1 <= "1111001";
when "0010" => s1 <= "0100100";
when "0011" => s1 <= "0110000";
when "0100" => s1 <= "0011001";
when "0101" => s1 <= "0010010";
when "0110" => s1 <= "0000010";
when "0111" => s1 <= "1111000";
when "1000" => s1 <= "0000000";
when "1001" => s1 <= "0010000";
when others => s1 <= "0001110";
end case;

end process Zaehlung;
end logik;

采纳我啊将军!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
填地方专项志愿会影响本科二批录取吗? 地方专项计划成绩不好的可以报吗 国家专项地方专项影响本科填报吗 地方专项计划滑档影响本科录取吗 报地方专项计划会影响高考录取吗 地方专项计划影响后续录取吗 电脑最高配组装机配置组装电脑什么配置比较好 台式组装游戏电脑配置组装电脑什么配置比较好 打游戏主机电脑配置台式电脑主要是玩游戏什么配置最合适 组装高配置台式电脑组装电脑什么配置比较好 白鹿在腾讯播出的电视剧有哪些 农商银行还款日20号怎么算 《王牌部队》中,钟楚曦、白鹿与刘晓洁各有特色,谁才是这部剧的颜值门面... 未吃早饭影响尿常规结果吗? 12123申诉三年内不允许申诉 be made of的用法有哪些呢? 请问眼睛发炎能不能游泳? ...写一篇文章。要求⑴先把题目补充完整。你可以从“趣 C1驾驶证年审、到期换证需到当地什么地方办理?办理时需要提供哪些证件... 利普看的房子为什么便宜 老年人应该通过哪些方法来锻炼平衡感? wii的原装太鼓达人鼓棒怎么样啊? wii的太鼓达人还要买什么配件么?最近wii出什么游戏比较有意思的... 含蓄点含蓄点,什么意思?我老婆说低调点的意思,低调一点又是什么... 宁安如梦吻戏第几集出现 广州永旺梦乐城珑寓售楼热线是多少? 新乡宝龙珑寓售楼部电话是多少 ...马上 一定要用心、认真去写啊,不要有疏忽大一的字眼,加 黄埔万荟珑寓售楼热线是多少? 20号之前还款包括20号吗 白鹿正在拍摄的新剧 在福州吃一顿自助烧烤,大约十个人,会吃多少钱? 微信被盗 微信密码都被改 改怎么找回来 那个消息也拒收... 同一个手机号注册了两个微信,第一登不上了怎么办? 手机号绑定了达到限制不能绑定其他是什么意思? 手机号1 24 手机号24小时内绑定了两个被限制 请问什么时候才能重 ... 眼睛有点发红,可以游泳吗? 男朋友在检察院工作,突然被分配到给他们很大的领导开车,成了司机... 天津师范大学学科教学(思政)的333教育综合是哪几本书 棉花滴咸水时适合加啥肥料效果好? 大象是什么牌子的衣服 ...例行体检每个人都必须去吗?都体检什么项目? 唐伯虎的早年经历 微生物菌肥能抑制黄瓜死苗烂根吗?什么样的菌肥好 吴京持股电影特效公司被执,累计被执行42万,这背后的原因是什么?_百度... 滴灌,滴玩肥再滴水七小时肥能被稀释到对作物不起作用的地步吗?_百度知 ... 大连辣妹子自助烧烤火锅怎么样啊,现在多少钱一位啊,值不值得去吃一顿... 有没有人帮帮忙,我买了一款裤子,面料成分是棉94.7%再生纤维素纤维5.3%... (瑞典)弗雷德里克.巴克曼《一个叫欧维的人决定去死》2019-01-07_百度... 女儿的儿子给外婆过继应该怎么称呼?