p93 3-7
library ieee;
use entity h_suber is
port (
x,y : in std_logic;
diff,s_out : out std_logic
end entity ;
architecture hdlarch of h_suber is
begin
process(x,y) begin
diff <=x xor y;
s_out <=not x) and y
end process;
end hdlarch
1位全减器的vhdl设计文件:
library ieee
use entity suber is
portx,y : in std_logic
sub_in : in std_logic;
diffr : out std_logic;
sub_out : out std_logic
end suber;
architecture scharch of suber is
component h_suber
port(x : in std_logic;
y : in std_logic;
diff : out std_logic;
s_out : out std_logic
end component;
signal t0,t1,t2 : std_logic;
begin
u1 : h_suber
port map(x =>x,
y =>y,
diff =>t0,
s_out =>t1);
u2 : h_suber
port map(x =>t0,
y =>sub_in,
diff =>diffr,
s_out =>t2);
sub_out <=t1 or t2
end; (2)8位减法器。
library ieee;
use entity sub8 is
porta : in std_logic_vector(7 downto 0);
b : in std_logic_vector(7 downto 0
sin : in std_logic;
sout : out std_logic
c : out std_logic_vector(7 downto 0
end sub8;
architecture hdlarch of sub8 is
component suber
port(x : in std_logic;
y : in std_logic;
sub_in : in std_logic;
diffr : out std_logic;
sub_out : out std_logic);
end component
signal stmp : std_logic_vector(8 downto 0);
begin
stmp(0) sout <=stmp(8); gensub : for i in 0 to 7 generate u1 : suber port map(x =>a(i), y =>b(i), sub_in =>stmp(i), diffr =>c(i), sub_out =>stmp(i+1)); end generate ; end; p 93 3-5 用verilog语言设计一个3-8译码器,要求分别用case语句和if_else语句各写一份,比较这两种方式。 解 case 语句: module decoder38( input [2:0]code,output reg[7:0]result always@(* begin case(code) 3'b000: result = 8'h01; 3'b001: result = 8'h02; 3'b010: result = 8'h04; 3'b011: result = 8'h08; 3'b100: result = 8'h10; 3'b101: result = 8'h20; 3'b110: result = 8'h40; 3'b111: result = 8'h80; endcase endendmodule if语句:module decoder38( input [2:0]code,output reg[7:0]result always@(* beginif(code[2]) if(code[1]) if(code[0]) result = 8'h80; elseresult = 8'h40; elseif(code[0]) result = 8'h20; elseresult = 8'h10; elseelse if(code[1]) if(code[0]) result = 8'h08; elseresult = 8'h04; elseif(code[0]) result = 8'h02; elseresult = 8'h01; elseend endmodule case语句和if 语句的比较: case语句在编译成硬件电路后,各个分支之间是平行的,优先级是相同的;if语句则具有优先级。 if加若干个else if可以组成一个与case类似的功能。 但由于if-else if是有优先级的,也就是第一个if不成立的话,才判断第二个else if 那么问题就来了,如果这个if组合里有10个else if条件,那么逻辑就需要做一个在一个时钟周期内能判断10个条件的硬件电路来,这样是不明智也是不合理的,比较容易造成时序不满足。 虽然说if有这样的缺点,但它的优点是每个else if都可以判断不同的条件,比较灵活。 一般来说,如果判断的条件只是一个向量的不同值,那么case是最合适的。 第一章。1.什么叫eda技术?及狭义定义 书p1 electronic design automation 电子设计自动化。eda的广义定义范围包括 半导体工艺设计自动化 可编程器件设计自动化 电子系统设计自动化 印刷电路板设计自动化 与测试 故障诊断自动化 形式验证自动化统称eda工程。发展历程 ... 1 1 eda技术与asic设计和fpga开发有什么关系?p3 4 答 利用eda技术进行电子系统设计的最后目标是完成专用集成电路asic的设计和实现 fpga和cpld是实现这一途径的主流器件。fpga和cpld通常也被称为可编程专用ic,或可编程asic。fpga和cpld的应用是eda技术有机... 1 1 eda技术与asic设计和fpga开发有什么关系?p3 4 答 利用eda技术进行电子系统设计的最后目标是完成专用集成电路asic的设计和实现 fpga和cpld是实现这一途径的主流器件。fpga和cpld通常也被称为可编程专用ic,或可编程asic。fpga和cpld的应用是eda技术有机...EDA课后题答案
EDA潘松课后全部答案
EDA潘松课后全部答案